Mat 是OpenCV和C++的接口矩阵类,ImlImage是opencv和C语言的接口的结构体。
下面介绍的Mat和IplImage相互转换方法:
//1: IplImage—>Mat
//1.1:浅拷贝:
IplImage* pBinary = cvLoadImage("1.jpg", 0);
Mat Img;
Img = cvarrToMat(pBinary);
//1.2:深拷贝
//先进行数据头的复制(浅拷贝),再在Mat里创建一个新的Mat对象,然后进行数据的复制。
IplImage* pBinary = cvLoadImage("1", 0);
Mat ImgTemp;
ImgTemp = cvarrToMat(pBinary);
Mat Img = ImgTemp.clone();
//2: Mat—>IplImage
//2.1:浅拷贝:
Mat src = imread("1.jpg");
IplImage* dst = &IplImage(src);
//2.2:深拷贝
//深拷贝只要再加一次复制数据:
Mat src = imread("1.jpg");
IplImage* dst = &IplImage(src);
IplImage *output = cvCloneImage(dst);