opencv中Mat的属性

类似CV_8UC1是Mat的类型,其定义为type = CV_(位数)+(数据类型)+(通道数)。

CV_8UC1=0   CV_8UC2=8     CV_8UC3=16   CV_8UC4=24  ————depth:0
CV_8SC1=1    CV_8SC2=9      CV_8SC3=17    CV_8SC4=25  ————depth:1
CV_16UC1=2   CV_16UC2=10   CV_16UC3=18   CV_16UC4=26  ————depth:2
CV_16SC1=3   CV_16SC2=11   CV_16SC3=19   CV_16SC4=27  ————depth:3
CV_32SC1=4   CV_32SC2=12   CV_32SC3=20   CV_32SC4=28  ————depth:4
CV_32FC1=5   CV_32FC2=13   CV_32FC3=21   CV_32FC4=29  ————depth:5
CV_64FC1=6   CV_64FC2=14   CV_64FC3=22   CV_64FC4=30  ————depth:6

这里U(unsigned integer)表示的是无符号整数,S(signed integer)是有符号整数,F(float)是浮点数。 
例如:CV_16UC2,表示的是元素类型是一个16位的无符号整数,通道为2. 
C1,C2,C3,C4则表示通道数是1,2,3,4 

elemSize 
矩阵一个元素占用的字节数,例如:type是CV_16SC3,那么elemSize = 3 * 16 / 8 = 6 bytes

elemSize1 
矩阵元素一个通道占用的字节数,例如:type是CV_16CS3,那么elemSize1 = 16  / 8 = 2 bytes = elemSize / channels

data  uchar型的指针。Mat类分为了两个部分:矩阵头和指向矩阵数据部分的指针,data就是指向矩阵数据的指针。

猜你喜欢

转载自www.cnblogs.com/walker-lin/p/11099857.html