IplImage, Mat, CvMat之间转换
来源:互联网 发布:域名注册软件 编辑:程序博客网 时间:2024/05/19 19:12
1、CvMat之间的复制
//注意:深拷贝 - 单独分配空间,两者相互独立 CvMat* a; CvMat* b = cvCloneMat(a); //copy a to b
2、Mat之间的复制
//注意:浅拷贝 - 不复制数据只创建矩阵头,数据共享(更改a,b,c的任意一个都会对另外2个产生同样的作用)Mat a;Mat b = a; //a "copy" to bMat c(a); //a "copy" to c//注意:深拷贝Mat a;Mat b = a.clone(); //a copy to bMat c;a.copyTo(c); //a copy to c
3、CvMat转Mat
//使用Mat的构造函数:Mat::Mat(const CvMat* m, bool copyData=false); 默认情况下copyData为falseCvMat* a;//注意:以下三种效果一致,均为浅拷贝Mat b(a); //a "copy" to bMat b(a, false); //a "copy" to bMat b = a; //a "copy" to b//注意:当将参数copyData设为true后,则为深拷贝(复制整个图像数据)Mat b = Mat(a, true); //a copy to b
4、Mat转CvMat
//注意:浅拷贝Mat a;CvMat b = a; //a "copy" to b//注意:深拷贝Mat a;CvMat *b;CvMat temp = a; //转化为CvMat类型,而不是复制数据cvCopy(&temp, b); //真正复制数据 cvCopy使用前要先开辟内存空间
==========IplImage与上述二者间的转化和拷贝===========
1、IplImage之间的复制
这个不赘述了,就是cvCopy与cvCloneImage使用区别,贴张网上的图:
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);
4、IplImage转CvMat
//法一:cvGetMat函数IplImage* img;CvMat temp;CvMat* mat = cvGetMat(img, &temp); //深拷贝//法二:cvConvert函数CvMat *mat = cvCreateMat(img->height, img->width, CV_64FC3); //注意height和width的顺序cvConvert(img, mat); //深拷贝
5、CvMat转IplImage
//法一:cvGetImage函数CvMat M;IplImage* img = cvCreateImageHeader(M.size(), M.depth(), M.channels());cvGetImage(&M, img); //深拷贝:函数返回img//也可写成CvMat M;IplImage* img = cvGetImage(&M, cvCreateImageHeader(M.size(), M.depth(), M.channels()));//法二:cvConvert函数CvMat M;IplImage* img = cvCreateImage(M.size(), M.depth(), M.channels());cvConvert(&M, img); //深拷贝
0 0
- IplImage, Mat, CvMat之间转换
- Mat|CvMat|IplImage|Byte|之间的转换
- CvMat, Mat, IplImage之间的互相转换
- CvMat、Mat、IplImage之间的转换
- CvMat、Mat、IplImage之间的转换详解
- cvmat、IplImage、Mat之间的转换
- CvMat、Mat、IplImage之间的转换详解
- CvMat、Mat、IplImage之间的转换 ***** **
- CvMat、 CvArr、Mat、IplImage和Mat之间的相互转换
- OpenCv中cv::Mat和IplImage,CvMat之间的转换
- CvMat、IplImage和Mat之间的相互转换(精华)
- Mat ,IplImage, CvMat 之间的转换的总结
- OpenCv中cv::Mat和IplImage,CvMat之间的转换
- CvArr、Mat、CvMat、IplImage、BYTE之间的转换
- opencv中Mat与IplImage,CVMat类型之间转换
- CvMat、Mat、IplImage之间的转换详解及实例
- OpenCV中Mat与IplImage,CVMat类型之间转换
- opencv中Mat与IplImage,CVMat类型之间转换
- 计算两个中文字符串相似度——编辑距离算法
- gfirefly 学习之ubuntu 15 python 配置python (2)
- android 网络编程(二、IO流)
- LeetCode Kth Smallest Element in a BST DFS
- 名词
- IplImage, Mat, CvMat之间转换
- 之前项目中用到Spring+Quartz实现定时任务的配置方法
- IOS开发----UISearchBar,搜索框的使用
- 【转】asp调用C#编写的DLL发送邮件
- [转载]关于window下rNode.js的本地包路径过长,导致一些功能无法使用
- 使用AIDL实现进程间的通信
- 定位线程Segment fault (SIGSEGV)的方法
- Head First PMP – 4 – 项目整合管理(Project Integration Management)
- 修改 EditText 中的光标位置