资源描述:
《opencv3.2中mat对象常用函数属性总结》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、.OPenCV3.2中Mat对象常用函数属性总结Mat对象是OpenCV2.0之后引进的图像数据结构,它能自动分配内存、不存在内存泄漏的问题,是面向对象的数据结构。分了两个部分,头部与数据部分。在使用Mat对象时,有以下四个要点需要注意:1、输出图像的内存是自动分配的2、使用OpenCV的C++接口,不需要考虑内存分配问题3、赋值操作和拷贝构造函数只会复制头部分4、使用clone与copyTo两个函数实现数据完全复制下面我们就具体介绍一下公共成员函数和公共属性。公共成员函数:1、cv::Mat::Mat(introws,intcols,inttype)参
2、数:rows2D数组中的行数cols2D数组中的列数。type数组类型。使用CV_8UC1,…,CV_64FC4创建1-页.4通道矩阵,或CV_8UC(n),…,CV_64FC(n)创建多通道(向上到CV_CN_MAX通道)矩阵。2、cv::Mat::Mat(Sizesize,inttype)参数:size2D数组大小:Size(cols,rows)。在Size()构造函数中,行数和列数以相反的顺序排列。type数组类型。使用CV_8UC1,…,CV_64FC4创建1-4通道矩阵,或CV_8UC(n),…,CV_64FC(n)创建多通道(向上到CV_CN
3、_MAX通道)矩阵。3、cv::Mat::Mat(introws,intcols,inttype,constScalar&s)参数:rows2D数组中的行数。cols2D数组中的列数。type数组类型。使用CV_8UC1,…,CV_64FC4创建1-4通道矩阵,或CV_8UC(n),…,CV_64FC(n)创建多通道(向上到CV_CN_MAX通道)矩阵。s初始化每个矩阵元素的可选值。在构建后将所有矩阵元素设置为特定值,使用赋值运算符Mat::operator=(constScalar&value)。4、cv::Mat::Mat(Sizesize,页.in
4、ttype,constScalar&s)参数:size二维数组的大小:Size(cols,rows).在Size()构造函数中,行数和列数以相反的顺序排列。type数组类型。使用CV_8UC1,…,CV_64FC4创建1-4通道矩阵,或CV_8UC(n),…,CV_64FC(n)创建多通道(向上到CV_CN_MAX通道)矩阵。s初始化每个矩阵元素的可选值。在构建后将所有矩阵元素设置为特定值,使用赋值操作符Mat::operator=(constScalar&value).5、cv::Mat::Mat(intndims,constint*sizes,int
5、type)参数:ndims数组维数。sizes指定n维数组形状的整数数组。type数组类型。使用CV_8UC1,…,CV_64FC4创建1-4通道矩阵,或CV_8UC(n),…,CV_64FC(n)创建多通道(向上到CV_CN_MAX通道)矩阵。6、cv::Mat::Mat(intndims,constint*sizes,inttype,页.constScalar&s)参数:ndims数组维数。sizes指定n维数组形状的整数数组。type数组类型。使用CV_8UC1,…,CV_64FC4创建1-4通道矩阵,或CV_8UC(n),…,CV_64FC(n)
6、创建多通道(向上到CV_CN_MAX通道)矩阵。s初始化每个矩阵元素的可选值。在构建后将所有矩阵元素设置为特定值,使用赋值操作符Mat::operator=(constScalar&value).7、cv::Mat::Mat(constMat&m)参数:m被分配给被构造的矩阵的数组(作为一个整体或部分)。没有数据被这些构造函数复制。而是指向m数据或它的子数组的头指针被构造并与之关联。如果有引用计数器的话,计数器是递增的。因此,当您使用这样的构造函数修改生成的矩阵时,您也会修改相应的m元素。如果你想要一个独立的子数组拷贝,使用Mat::clone().8、
7、cv::Mat::Mat(constMat&m,constRange&rowRange,constRange&colRange=Range::all())参数:m页.被分配给被构造的矩阵的数组(作为一个整体或部分)。没有数据被这些构造函数复制。而是指向m数据或它的子数组的头指针被构造并与之关联。如果有引用计数器的话,计数器是递增的。因此,当您使用这样的构造函数修改生成的矩阵时,您也会修改相应的m元素。如果你想要一个独立的子数组拷贝,使用Mat::clone().RowRange要取的m的行范围。通常,范围开始是包含的,范围结束是除外的。使用Range::
8、all()获取所有行。colRange要取m的列范围。使用Range::all(