CvMat, Mat, IplImage之间的互相转换

CvMat, Mat, IplImage之间的互相转换

复制代码
IpIImage -> CvMat
/cvGetMat/
CvMat matheader;
CvMat * mat = cvGetMat(img, &matheader);
/cvConvert/
CvMat * mat = cvCreateMat(img->height, img->width, CV_64FC3);
cvConvert(img, mat)

IplImage -> Mat
Mat::Mat(const IplImage* img, bool copyData=false);/default copyData=false,与原来的IplImage共享数据,只是创建一个矩阵头/
例子:
IplImage* iplImg = cvLoadImage(“greatwave.jpg”, 1);
Mat mtx(iplImg); /* IplImage * -> Mat,共享数据; or : Mat mtx = iplImg;*/

Mat -> IplImage
Mat M
IplImage iplimage = M; /只创建图像头,不复制数据/

CvMat -> Mat
Mat::Mat(const CvMat* m, bool copyData=false); /类似IplImage -> Mat,可选择是否复制数据/

Mat -> CvMat
例子(假设Mat类型的imgMat图像数据存在):
CvMat cvMat = imgMat;/*Mat -> CvMat, 类似转换到IplImage,不复制数据只创建矩阵头
复制代码

猜你喜欢

转载自blog.csdn.net/weixin_43758551/article/details/84849261