IplImage是opencv中c语言的图像类型,是表示一个图像的结构体,也是从OpenCV1.0到Opencv2.0.0之前的常用图像类型;
自OpenCV2.0.0以后,引进了Mat类型,Mat使用更为方便,cv::Mat是opencv中C++语言的图像类型。
1. cv::Mat -> IplImage
方法一:
cv::Mat matimg = cv::imread ("fog.jpg");
double nWid = Input.cols;
double nHei = Input.rows;
IplImage* iplimg= cvCreateImage(cvSize(nWid, nHei), IPL_DEPTH_8U, 3);
*iplimg = IplImage(matimg);
方法二:
*iplimg = IplImage(matimg);
IplImage iplimg(matimg);
注意: 第一种方法需通过cvCreateImage函数创建内存图像,创建后,还要通过cvReleaseImage等函数释放内存,第二种方法不需要,原因没太细究
2. IplImage -> cv::Mat
IplImage* iplimg = cvLoadImage("fog.jpg");
cv::Mat matimg;
matimg = cv::Mat(iplimg,false);
false,是浅拷贝,true是深拷贝。