认识OpenCV中的数据类型:Mat容器-Mat类介绍

1、Mat类的介绍

什么是Mat类,以及Mat类能存储什么数据?

OpenCV里用于存储矩阵数据的类型,与C++中的int double等数据类型一样,例如:

133   141   147   153   171

128   152   133   132   154

152   187   136   127   145

也就是说OpenCV存储时是以一个矩阵类型的数据将图像的每个像素存储的!

自己理解:其实Mat类就是一个保存图像像素值的一个数据类型,他有自己的数据的结构。你包括抠图等等其实也就是截取这个Mat内部对应的像素点的信息,然后构成一个新的Mat对象,也就是一个新的图像了。

Mat类由矩阵头和数据两部分组成:

矩阵头:中包含了尺寸(640*480)、行数、列数(与尺寸是对应的)、数据类型、(这个mat类里存的是int 还是 double类型的数据)、通道数(2x3x4的图像)、引用次数等信息等(例如Mat a Mat b 两个数据对象公用的是一个mat数据图像 img,那么当删除img时他们两个引用的就是空的。还可以避免我在删除 a的img时 由于b还在引用,却给删了。)

数据部分:就是数据了。

2、Mat能存储什么样的数据类型呢?

cv::Mat_<_Tp> //自定义的类型

cv::Mat_<_Double> //

cv::Mat_<_Float> //

cv::Mat_<_uchar> //

cv::Mat_<_unsigned char> //

3、Mat类如何创建:三种常见的创建方式

第一种:

cv::Mat::Mat(int rows,/*构造矩阵的行数*/

                    int cols,/*矩阵的列数*/

                     int type /*矩阵中存储的数据类型此处除了CV_8UCI CV_64FC4等从1到4通道外,还                                    提供了更多通道的参数,通过CV_8UC(n)中的n来构建多通道矩阵,其中                               最大可以取到5

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神 匠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值