CvMat、Mat、IplImage之间的转换 ***** **

来源:互联网 发布:三菱plc模拟量编程实例 编辑:程序博客网 时间:2024/06/05 14:34


CvMat、Mat、IplImage之间的转换详解及实例

IplImage <--->Mat的转换 (1)将IplImage----- > Mat类型Mat::Mat(const IplImage* img, bool copyData=false);默认情况下,新的Mat类型与原来的IplImage类型共享图像数据,转换只是创建一个Mat矩阵头。当将参数copyData设为true后,就会复制整个图像数据。例:IplImage*iplImg = cvLoadImage("greatwave.jpg", 1);Matmtx(iplImg); // IplImage* ->Mat 共享数据// or : Mat mtx = iplImg; 或者是:Mat mtx(iplImg,0); // 0是不复制影像,也就是iplImg的data共用同个记意位置,header各自有(2)将Mat类型转换-----> IplImage类型同样只是创建图像头,而没有复制数据。例:IplImage ipl_img = img; // Mat -> IplImage


CvMat,Mat和IplImage之间的转化和拷贝  ****** **


2、IplImage转Mat
//使用Mat的构造函数:Mat::Mat(const IplImage* img, bool copyData=false);    默认情况下copyData为falseIplImage* srcImg = cvLoadImage("Lena.jpg");//注意:以下三种效果一致,均为浅拷贝Mat M(srcImg);Mat M(srcImg, false);Mat M = srcImg;//注意:当将参数copyData设为true后,则为深拷贝(复制整个图像数据)Mat M(srcImg, true);

3、Mat转IplImage
//注意:浅拷贝 - 同样只是创建图像头,而没有复制数据Mat M;IplImage img = M;IplImage img = IplImage(M);//深拷贝cv::Mat img2;IplImage imgTmp = img2;IplImage *input = cvCloneImage(&imgTmp);



http://www.cnblogs.com/Key-Ky/p/4150531.html 

原创粉丝点击