Opencv Mat数据结构学习

本文详细介绍了OpenCV中的Mat数据结构,包括其定义、基本属性、矩阵操作和内存管理。Mat用于存储多维矩阵,动态管理内存,替代了旧的lplimage结构。文章讲解了如何声明、赋值、显示图像,并强调了创建独立数据空间的重要性。此外,还阐述了step属性在确定元素内存位置中的作用。
摘要由CSDN通过智能技术生成

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_(位数)+(数据类型)+(通道个数࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值