CvMat,Mat和IplImage之间的转化和拷贝
来源:互联网 发布:咖啡机推荐 知乎 编辑:程序博客网 时间:2024/06/16 04:06
在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之间的转化和拷贝
- 360安全卫士hookport.sys简单逆向——基础
- HTML中对VALUE属性的理解
- POJ 1991 Turning in Homework 区间DP
- LocalDB的使用详解
- <统计学习方法>5 逻辑斯蒂回归与最大熵模型
- CvMat,Mat和IplImage之间的转化和拷贝
- 嵌入式Linux驱动笔记(十二)------通俗易懂式分析了解spi框架
- 多个数组间元素排列组合问题求解(Java实现) 标签: 递归排列组合循环
- python 深拷贝&浅拷贝
- HDU 1869 六度分离 floyd
- StringMVC面试题
- windows、ubuntu双系统下修改默认启动项
- Java SE8:Lambda快速入门
- 求最大子序列之和问题