opencv参考手册之mat类详解1

opencv参考手册之mat类详解1

ID:35201935

大小:118.50 KB

页数:25页

时间:2019-03-21

opencv参考手册之mat类详解1_第1页
opencv参考手册之mat类详解1_第2页
opencv参考手册之mat类详解1_第3页
opencv参考手册之mat类详解1_第4页
opencv参考手册之mat类详解1_第5页
资源描述:

《opencv参考手册之mat类详解1》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、OpenCV参考手册之Mat类详解1(2012-07-1319:27:42)转载▼标签:opencvmat杂谈类Mat导言OpenCVc++n维稠密数组类类CV_EXPORTSMat{public://……很多的方法......intflags;(Note:目前还不知道flags做什么用的)//!数组的维数,>=2intdims;//!行和列的数量或(-1,-1)此时数组已超过2维introws,cols;//!指向数据的指针uchar*data;//!指针的引用计数器;//阵列指向用户分配的数据时,当指针为NULLint*refcount;//其他成员...};

2、Mat类表示一个n维的密集数值单通道或多通道数组。它可以用于存储实数或复数值的向量和矩阵、灰度或彩色图像、体素、向量场、点云、张量、直方图(尽管较高维的直方图存储在SparseMat可能更好)。M数组的数据布局是由阵列M.step[]定义的,使元素的地址(i0,。。。。iM.dims-1),其中0<=ik

3、M.data+M.step[0]*i+M.step[1]*j请注意,M.step[i]>=M.step[i+1](事实上,M.step[i]>=M.step[i+1]*M.size[i+1])。这意味着2维矩阵是按行存储的,3维矩阵是由平面存储,以此类推。M.step[M.dims-1]是最小的而且总是等于元素大小M.elemSize()。因此,Mat中的数据布局完全兼容OpenCV1.x中CvMat、IplImage、CvMatND类型。它也和标准工具包和SDK,如Numpy(ndarray),Win32(独立设备位图)等主流的密集数组类型相兼容,也就是说,与任

4、何使用步进(或步长)来计算像素位置的阵列相兼容。由于这种兼容性,使用户分配的数据创建Mat头以及用OpenCV函数实时处理该头成为可能。有很多不同的方法,创建一个Mat的对象。下面列出了最常见的选项:使用create(nrows,ncols,type)方法或类似的Mat(nrows,ncols,type[,fillValue])构造函数。一个新的指定了大小和类型的数组被分配。type和cvCreateMat方法中的type参数具有相同的含义。例如,CV_8UC1是指一个8位单通道阵列,CV_32FC2指2通道(复)浮点阵列,以此类推。//创建一个用1+3j填充的7

5、x7复矩阵。MatM(7,7,CV_32FC2,Scalar(1,3));//现在将M转换为100x60的CV_8UC(15)的矩阵。//旧内容将会被释放M.create(100,60,CV_8UC(15));这一章导言中指出,当当前的数组与指定的数组的形状或类型create()分配唯一的新数组时的形状或类型。创建多维数组://创建100x100x1008位数组intsz[]={100,100,100};Mat.bigCube(3,sz,CV_8U,Scalar::all(0));它将维度数(=1)传递给Mat的构造函数,但列数设置为1时,创建数组将是2维的。因此

6、,Mat::dims始终是>=2的(该数组为空时,也可以是0)。使用的复制构造函数或赋值运算符可以是一个数组或右侧的表达式(请参阅下图)。正像在导言中指出的,数组赋值运算复杂度是O(1)因为当你需要它的时候,它仅复制头和增加引用计数。Mat::clone()方法可用于获取全(深)的副本数组。为另一个数组的一部分构建头。它可以是单个行、单个列,几个行,几个列,矩形区域(代数中称为较小值)的数组或对角线。这种操作也是复杂度为O(1),因为,新头引用相同的数据。实际上,您可以使用此特性修改该数组的一部分例如://第5行,乘以3,加到第3行,M.row(3)=M.row(

7、3)+M.row(5)*3;//现在将第7列复制到第1列//M.col(1)=M.col(7);//这个不能实现。MatM1=M.col(1);M.col(7).copyTo(M1);//创建一种新的320x240图像Matimg(Size(320,240),CV_8UC3);//选择ROI(regionofinterest)Matroi(img,Rect(10,10,100,100));//填充(0,255,0)的ROI(这是RGB空间中的绿色);//320x240原始图像将被修改。roi=Scalar(0,255,0);由于额外的datastart和datae

8、nd的成员

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。