1.Mat对象和IplIamge对象
- Mat对象是OpenCV2.0之后引进的图像数据结构、自动分配内存、不存在内存泄漏的问题,是面向对象的数据结构。分为两个部分:头部和数据部分。
- IplIamge是从2001年OpenCV发布之后就一直存在,是C语言风格的数据结构,需要开发者自己分配与管理内存、对大的程序使用它容易导致内存泄漏问题。
2.Mat对象构造函数
Mat对象有以下6种构建方法:
-
Mat(int rows,int cols,int type)
(常用)
-
Mat(Size size,int type)
(常用)
Mat(int rows,int cols,int type,const Scalar &s)
Mat(Size size,int type,const Scalar &s)
Mat(int ndims,const int* sizes,int type)
Mat(int ndims,const int* sizes,int type,const Scalar &s)
2.1.图像的其他构造方法
方法一:
img.create(size,type)
,但是.create
不能赋值,赋值需要用img=Scalar(0,0,0)
。
方法二:
Mat::eye(3,3,type)
构造一个3行3列(即3*3)的图像,并且对角线上每个像素点的第一个通道赋值为1,其余均为0,对如上语句,如果type为3通道图像的话,得到的图像数组矩阵见下:
类似的还有:
-
Mat::ones()
:每个像素的第一个通道为1,其余通道为0。
-
Mat::zeros()
:每个像素的每个通道都为0。
3.部分复制和完全复制
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)