CvMat,Mat和IplImage之间的转化和拷贝
来源:互联网 发布:网络行为管理 编辑:程序博客网 时间:2024/05/16 17:41
转载地址:http://blog.csdn.net/holybin/article/details/17711013
在OpenCV中Mat、CvMat和IplImage类型都可以代表和显示图像。IplImage由CvMat派生,而CvMat由CvArr派生即CvArr -> CvMat -> IplImage,Mat类型则是C++版本的矩阵类型(CvArr用作函数的参数,无论传入的是CvMat或IplImage,内部都是按CvMat处理)。
其中Mat类型侧重于计算,数学性较高,OpenCV对Mat类型的计算也进行了优化;而CvMat和IplImage类型更侧重于"图像",OpenCV对其中的图像操作(缩放、单通道提取、图像阈值操作等)进行了优化。很多时候需要三种类型的相互转化,这里简要介绍一下。
========================CvMat和Mat间的转化和拷贝========================
1、CvMat之间的复制
2、Mat之间的复制
3、CvMat转Mat4、Mat转CvMat
1、IplImage之间的复制
这个不赘述了,就是cvCopy与cvCloneImage使用区别,贴张网上的图:
2、IplImage转Mat
4、IplImage转CvMat
5、CvMat转IplImage
最后注意:
1、Mat类型是自动内存管理,不需要显式释放(当然也可以手动调用release()方法强制Mat矩阵数据释放);而CvMat则需要调用cvReleaseMat(&cvmat)来释放,IplImage需要调用cvReleaseImage(&iplimage)来释放。2、建立CvMat矩阵时,第一个参数为行数,第二个参数为列数:
CvMat* cvCreateMat( int rows, int cols, int type );
3、建立IplImage图像时,CvSize第一个参数为宽度,即列数;第二个参数为高度,即行数:
IplImage* cvCreateImage(CvSize size, int depth, int channels );
CvSize cvSize( int width, int height );
4、IplImage内部buffer每行是按4字节对齐的,CvMat没有这个限制。
0 0
- CvMat,Mat和IplImage之间的转化和拷贝
- CvMat,Mat和IplImage之间的转化和拷贝
- CvMat,Mat和IplImage之间的转化和拷贝
- CvMat,Mat和IplImage之间的转化和拷贝
- CvMat,Mat和IplImage之间的转化和拷贝
- 转: CvMat,Mat和IplImage之间的转化和拷贝
- CvMat , Mat和IplImage之间的转化和拷贝
- CvMat,Mat和IplImage之间的转化和拷贝
- CvMat,Mat和IplImage之间的转化和拷贝
- CvMat,Mat和IplImage之间的转化和拷贝
- CvMat,Mat和IplImage之间的转化和拷贝
- CvMat,Mat和IplImage之间的转化和拷贝
- CvMat,Mat和IplImage之间的转化和拷贝
- CvMat,Mat和IplImage之间的转化和拷贝
- CvMat,Mat和IplImage之间的转化和拷贝
- CvMat,Mat和IplImage之间的转化和拷贝
- CvMat,Mat和IplImage之间的转化和拷贝
- CvMat,Mat和IplImage之间的转化和拷贝
- 网络基础简述
- 51nod - 1019 逆序数(归并排序or线段树)
- MBProgressHUD防止show的时候阻塞用户交互
- 高并发系统设计
- Redis简介
- CvMat,Mat和IplImage之间的转化和拷贝
- 用css构建一个三角形
- spark实践
- 【Java基础】比较运算符compareTo()、equals()、==之间的区别与应用总结
- 程序员日常——后台和前端的友谊小船,说翻就翻
- 逃离迷宫(bfs)
- 【HDU5735 2016 Multi-University Training Contest 2B】【暴力做法 + 折半法】Born Slippy 祖先链的最大运算权值
- JavaEE程序猿的免费午餐③
- 华为在线训练(3)