opencv数据类型转换:
1、
IplImage pImg= IplImage(imgMat); //imgMat是Mat类型的数据
CvMat cvMat = imgMat;2、
//CvMat-> IplImage
IplImage* img = cvCreateImage(cvGetSize(mat),8,1);
cvGetImage(matI,img);
cvSaveImage("rice1.bmp",img);
3、
//IplImage -> Mat
IplImage* pImg = cvLoadImage("lena.jpg");
Mat img(pImg,0); // 0是不複製影像,也就是pImg與img的data共用同個記憶體位置,header各自有
4、
//Mat->CvArr
Mat img;
const CvArr* s=(CvArr*)&img;
//上面就可以了,CvArr是Mat的虚基类,所有直接强制转换就可以了
5、mat到IplImage*
cv::mat gray;
IplImage *pImg=&IplImage(gray);
6、今天在opencv300下将Iplimage*转cv::Mat一直报错(cv::Mat colored(frame_copy,false);),没有这种构造函数,最后群里朋友给出解答
IplImage *frame_copy;
cv::Mat colored = cv::cvarrToMat(frame_copy);
最后补充一句:CvArr *a其实就相当于void *a