笔者定义了一个函数用于读取相机中存储的图像
int ReadBuffer(cv::Mat &image,bool saveFlag,QByteArray imageName){//省略若干语句cv::Mat getImage;getImage = cv::Mat(stImageInfo.nHeight,stImageInfo.nWidth,CV_8UC1,pDate);getImage.copyTo(image);getImage.release();
}
调用该函数:
cv::Mat *imagePtr = NULL;
CMvCamera *cameraPtr = NULL;
cameraPtr->ReadBuffer(*imagePtr,false,"");
当 ReadBuffer 函数执行完毕后,imagePtr 所指向的 cv::Mat 对象将包含getImage 的内容,之后在使用imagePtr变量时,如imagePtr ->col,相当于取图像getImage变量的列。
getImage.copyTo(image); 将 getImage 的内容复制到通过引用传递进来的 image 参数中。由于 image 是通过 *imagePtr 传递的,这意味着复制操作实际上是在修改 imagePtr 所指向的 cv::Mat 对象。
