opencv数据类型转换

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

你可能感兴趣的:(opencv_tips,opencv,cvMat)