C++定义函数指针变量作为形参
笔者定义了一个函数用于读取相机中存储的图像
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
对象。