OpenCV中IplImage和Mat间的相互转换

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenCV中IplImage和Mat间的相互转换相关的知识,希望对你有一定的参考价值。

OpenCV中做图像处理经常用到IplImage和Mat间的相互转换。

首先,cv::Mat是opencv2.0中的数据类型;IplImage是opencv1.0中的类型,两种类型并不相同。

1. IplImage -> cv::Mat
IplImage* pImg = cvLoadImage("lena.jpg");
cv::Mat img(pImg,0); //第二个参数控制是否复制图像,0是不复制图像,也就是pImg和img的data共用内存,header各自有

 

2. cv::Mat -> IplImage
IplImage* pImg = cvLoadImage("lena.jpg");
cv::Mat img(pImg,0); //img拿到pImg的data


IplImage qImg;
qImg = IplImage(img); //不复制图像,所以qImg.imageData就是指向pImg->imageData
or

IplImage *qImg;
qImg = &IplImage(img); //不复制图像,所以qImg.imageData就是指向pImg->imageData

以上是关于OpenCV中IplImage和Mat间的相互转换的主要内容,如果未能解决你的问题,请参考以下文章