//派生关系CvArr -> CvMat -> Ipllmage,相互之间可以强制转换,其方法主要有cvLoadImage(),cvShowImage(),cvSaveImage()
//Mat是一套专注矩阵的方法,其主要函数有imread(),imshow(),imwrite()
读入图片格式为Mat格式,代码略。
Mat frame;
//Mat==>IplImage
IplImage* frame1 = &IplImage(frame);
IplImage* frame1d = cvCloneImage(frame1);//IplImage深拷贝
cvShowImage("IplImage", frame1d);
//IplImage==>Mat
Mat frame2 = cvarrToMat(frame1);
Mat frame2d = frame2.clone();//Mat深拷贝
imshow("CvarrToMat", frame2d);
//Mat==>IplImage==>CvArr
IplImage frame3 = IplImage(frame2);//中间需要IplImage转接一下
CvArr* arr = (CvArr*)&frame3;
cvShowImage("CvArr", arr);
//CvArr==> CvMat==> Ipllmage
cvShowImage("CvArr==>CvMat", (CvMat*)arr);
cvShowImage("CvArr==>CvMat==>IplImage", (IplImage*)((CvMat*)arr));
cvShowImage("CvArr==>IplImage", (IplImage*)arr);
以下内容来自:https://blog.csdn.net/wuxiaoyao12/article/details/7305848
// IplImage*==> BYTE*
BYTE* data= img->imageData;
//BYTE*==> IplImage*
img= cvCreateImageHeader(cvSize(width,height),depth,channels);
cvSetData(img,data,step);
//首先由cvCreateImageHeader()创建IplImage图像头,制定图像的尺寸,深度和通道数;
//然后由cvSetData()根据BYTE*图像数据指针设置IplImage图像头的数据数据,
//其中step指定该IplImage图像每行占的字节数,对于1通道的IPL_DEPTH_8U图像,step可以等于width。