OpenCV的影像格式(Mat)

it2022-05-05  196

Mat是OpenCV指定的资料形态,代表的是矩阵(Martrix)前三个字母,影像其实也可以 看成某个二维阵列,所以在OpenCV2.0里不论矩阵计算或是影像处理的格式,都是以mat类别进行处理,并有想断的成员变数和函数方便使用,使用时不用考虑内存管理,这也是OpenCV 1.0和2.0不同之处,这边介绍常用的Mat类别成员和成员函数,包括如何得到影像资讯、创建影像、复制影像、改变位元深度和操作像素强度。

影像资讯

 Mat最基本有长、宽、像素形态、像素深度、通道数等资讯,以下介绍的成员变数或成员函数,让我们得到这些资讯.

rows            影像的列数,也就是影像高

cols             影像的栏数,也就是影像的宽

int Mat::channels()const       返回OpenCV通道数函数 1为灰阶图像 3为彩色图像

int Mat::depth()    const         返回OpenCV像素深度

------------------------------------------------------------------------------------------------------------------------------------

CV_8U                   位元深度为8,U代表无负号

CV_8S                  位元深度为8,S代表有负号

CV_16U                位元深度为16,U代表无负号

CV_16S                  位元深度为16,S代表有负号 CV_32F                  浮点数

-----------------------------------------------------------------------------------------------------------------------------------

 int Mat::type()const   OpenCV像素形态:

形态和深度主要差别在形态有通道资讯

 

CV_8U                   位元深度为8,U代表无负号,通道数为1

CV_8S                  位元深度为8,S代表有负号,通道数为1

CV_16U                位元深度为16,U代表无负号,通道数为1

CV_32F                  浮点数,通道数为1

CV_8UC3             位元深度为8,无负号,通道数为3

 

Size   Mat::size()const             OpenCV影像尺寸  返回的影像尺寸Size(cols,rows),(宽、高)

 

 

 


最新回复(0)