本文主要是介绍Opencv Mat数据结构学习,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1,定义:
Mat用来存储多维矩阵的数组,能够动态的管理内存,代替了之前c语言写的lplimage这个存储结构。矩阵数据结构分为两部分,一部分是数据头,存储着矩阵首地址,存储方式,大小等信息,这部分大小固定;二部分是数据部分,都是像素值,根据图像深度不同,像素值取值范围不同。
2,基本属性:
data:就是数组内的每一个元素,data本身是一个指针, 指向矩阵数据。
dims:矩阵的维数,3*4*5的矩阵就是三维矩阵,dims=3
rows:矩阵行数
cols:矩阵列数
channels:图像通道数。所谓通道,通俗的讲就是一个元素由几个数字表示。比如在RGB颜色空间中,一个像素由(0,0,255)类似于这样的值构成,这个图像就是三通道的。再比如灰度图,灰度图的灰度由0~255之间的数字表示,所以是单通道,也有三通道的灰度图,只不过三个通道的数值相等。
type:他是一系列数值,表示了矩阵中元素的类型、通道个数。但是不直接使用数值来表示type,而是使用命名规则。如CV_(位数)+(数据类型)+(通道个数
这篇关于Opencv Mat数据结构学习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!