Mat 类函数小结

Mat 类构造函数参数列表

参数含义
ndims数组的维数
rows2维数组的行数
cols2维数组的列数
size2维数组的尺寸Size(cols,rows).在Size)构造函数中行数和列数在顺序上为反转过来的
sizes指定n维数组形状的整数数组
type数组的类型。使用CV8UC1,.…,创建1-4通道的矩阵,CV_64FC4或CV8UC(n),……,CV_64FC(n)可以创建多通道(高达CV_MAX_CN通道)矩阵
s一个可选的初始化每个矩阵元素的参数。要在矩阵建成后将所有元素设置为特定值可以用Mat的赋值运算符Mat:operator=(constScala&value)
data指向用户数据的指针。矩阵构造函数传入data和step参数不分配矩阵数据。相反,它们只是初始化矩阵头指向指定的数据,这意味着没有数据的复制。此操作是很高效的,可以用来处理使用OpenCV函数的外部数据。外部数据不会自动释放,所以你应该小心处理它。step-每个矩阵行占用的字节数。如果任何值应包括每行末尾的填充字节。如果缺少此参数(设置为AUTOSTEP),假定没有填充和实际的步长用cols*elemSize0计算。请参阅Mat::elemSize()
steps多维数组(最后一步始终设置为元素大小)的情况下的ndims-1个步长的数组。如果没有指定的话,该矩阵假定为连续
M分配给构造出来的矩阵的阵列(作为一个整体或部分)。这些构造函数没有复制数据。相反,指向m的数据或它的子数组的头被构造并被关联到m上。引用计数器中无论如何都将递增。所以,当您修改矩阵的时候,自然而然就使用了这种构造函数,您还修改m中的对应元素。如果你想要独立的子数组的副本,请使用Mat:clone()
img指向老版本的lplmage图像结构的指针。默认情况下,原始图像和新矩阵之间共享数据。但当copyData被设置时,完整的图像数据副本就创建起来了
vec矩阵的元素构成的STL向量。矩阵可以取出单独一列并且该列上的行数和矢量元素的数目相同。矩阵的类型匹配的向量元素的类型。构造函数可以处理任意的有正确声明的DataType类型。这意味着矢量元素不支持的混合型结构,它们必须是数据(numbers)原始数字或单型数值元组。对应的构造函数是显式的。由于STL向量不会自动转换为Mat 实例,您应显式编写Mat(vec)。除非您将数据复制到矩阵(copyData=true),没有新的元素被添加到向量中,因为这样可能会造成矢量数据重新分配,并且因此使得矩阵的数据指针无效
copyData指定STL向量或旧型CvMat 或lpllmage是应复制到(true)新构造的矩阵中还是(false)与之共享基础数据的标志,复制数据时,使用Mat引用计数机制管理所分配的缓冲区。虽然数据共享的引用计数为NULL,但是分配数据必须在矩阵被析构之后才可以释放
rowRange矩阵阵列m之行数的取值范围。另外,可以使用Range:all()来取所有的行
colRangeM列数的取值范围。使用Range:all()来取所有的列
ranges表示M沿每个维度选定的区域的数组
expr矩阵表达式。具体请参见上文“矩阵表达式”一节的内容

Mat类成员函数

Mat类成员函数作用
Mat::operator =提供矩阵赋值操作
Mat::row创建一个指定行数的矩阵头
Mat::col创建一个指定列数的矩阵头
Mat::rowRange创建指定行跨度(span)的矩阵头
Mat::colRange创建指定列跨度的矩阵头
Mat::diag提取或创建矩阵对角线
Mat::clone创建一个数组及其基础数据的完整副本
Mat::copyTo把矩阵复制到另一个矩阵中
Mat::convertTo在缩放或不缩放的情况下转换为另一种数据类型
Mat::asignTo提供了一种convertTo的功能形式
Mat::setTo将阵列中所有的或部分的元素设置为指定的值
Mat::reshape在无需复制数据的前提下改变2D矩阵的形状和通道数或其中之一
Mat::t通过矩阵表达式(matrix expression)实现矩阵的转置
Mat::inv反转矩阵
Mat:mul执行两个矩阵按元素相乘或这两个矩阵的除法
Mat::cross计算3元素向量的一个叉乘积
Mat::dot计算两向量的点乘
Mat::zeros返回指定的大小和类型的零数组
Mat::ones返回一个指定的大小和类型的全为1的数组
Mat::eye返回一个恒等指定大小和类型矩阵
Mat::create分配新的阵列数据
Mat:addref计数器参考
Mat::release在必要的情况下,递减引用计数并释放该矩阵
Mat::resize更改矩阵的行数
Mat::reserve保留一定数量的行空间
Mat::push_back将元素添加到矩阵的底部
Mat::pop_back从底部的列表中删除元素
Mat::locateROI父矩阵内定位矩阵头
Mat::adjustROl调整子阵大小及其在父矩阵中的位置
Mat::operator()提取矩形子阵
Mat::operator CvMat创建矩阵CvMat头
Mat::operator Ipllmage创建Ipllmage矩阵头
Mat::isContinuous返回矩阵是否连续
Mat::elemSize返回矩阵元素大小(以字节为单位)
Mat::type返回一个矩阵元素的类型
Mat::depth返回一个矩阵元素的深度
Mat::channels返回矩阵通道的数目
Mat::stepl返回矩阵归一化的一步
Mat::size返回一个矩阵大小
Mat::empty如果数组中没有元素,则返回true
Mat::at返回对指定数组元素的引用
Mat::begin返回矩阵迭代器,并将其设置为第一个矩阵元素
Mat::end返回矩阵迭代器,并将其设置在最后一个元素之后(after-last)
Mat::ptr返回指定矩阵行的指针
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值