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