OpenCV3 通道和位深以及对应的Vec的理解含义整理

矩阵数据类型:

CV_(S|U|F)C

bit_depth

比特数---代表8bite,16bites,32bites,64bites---举个例子吧--比如说,如

      如果你现在创建了一个存储--灰度图片的Mat对象,这个图像的大小为宽100,高100,那么,现在这张

      灰度图片中有10000个像素点,它每一个像素点在内存空间所占的空间大小是8bite,8位--所以它对

      应的就是CV_8

S|U|F CV_8U 8位无符号整数(0..255) unsigned char(uchar)

CV_8S 8位有符号整数(-128..127) char

CV_16U 16位无符号整数(0..65535) unsigned short(ushort)

CV_16S 16位有符号整数(-32768..32767) short

CV_32S 32位有符号整数(-2147483648..2147483647) int

CV_32F 32位浮点数(-FLT_MAX..FLT_MAX,INF,NAN) float

CV_64F 64位浮点数(-DBL_MAX..DBL_MAX,INF,NAN) double

注:INF 无穷大;NAN 未定义;

C

代表一张图片的通道数,比如:

         1--灰度图片--grayImg---是--单通道图像

         2--RGB彩色图像---------是--3通道图像

         3--带Alph通道的RGB图像--是--4通道图像

 

与Vec的对照关系(CV_8S没有对应的符号)

CV_8U(uchar)  
CV_8UC1 (uchar)  CV_8UC2 (Vec2b)  CV_8UC3 (Vec3b)  CV_8UC4(Vec4b) 

CV_8S(char)   
CV_8SC1 (1通道)  CV_8SC2 (2通道)   CV_8SC3 (3通道)  CV_8SC4 (4通道)   

CV_16U  (ushort)
CV_16UC1 (ushort)  CV_16UC2 (Vec2w)   CV_16UC3 (Vec3w)   CV_16UC4 (Vec4w)   

CV_16S  (short)
CV_16SC1(short)   CV_16SC2(Vec2s)   CV_16SC3(Vec3s)   CV_16SC4(Vec4s)   

CV_32S (int)
CV_32SC1(int)   CV_32SC2(Vec2i)    CV_32SC3(Vec3i)  CV_32SC4(Vec4i)   

CV_32F (float)
CV_32FC1(float)   CV_32FC2(Vec2f)  CV_32FC3(Vec3f)   CV_32FC4(Vec4f)  

CV_64F(double)  
CV_64FC1(double)   CV_64FC2(Vec2d)  CV_64FC3(Vec3d)  CV_64FC4(Vec4d) 

Vec类型的说明

uchar类型(分别为2元素,3元素,4元素):   8位
typedef Vec cv::Vec2b     
typedef Vec cv::Vec3b 
typedef Vec cv::Vec4b

char类型
Vec 
at(y,x)       不过只能访问单通道的矩阵
ptr(y)[x])    可以访问任何位置的矩阵点的值

short类型                            都是16位的形式,区别在于有没有符号
typedef Vec cv::Vec2s     
typedef Vec cv::Vec3s     
typedef Vec cv::Vec4s     
typedef Vec cv::Vec2w
typedef Vec cv::Vec3w
typedef Vec cv::Vec4w

int类型:                            都是32位     
typedef Vec cv::Vec2i       typedef Vec cv::Vec3i
typedef Vec cv::Vec4i       typedef Vec cv::Vec6i
typedef Vec cv::Vec8i

float类型:                          同样都是32位
typedef Vec cv::Vec2f    
typedef Vec cv::Vec3f 
typedef Vec cv::Vec4f     
typedef Vec cv::Vec6f


double类型:                         都是64位
typedef Vec cv::Vec2d        typedef Vec cv::Vec3d
typedef Vec cv::Vec4d        typedef Vec cv::Vec6d

 

你可能感兴趣的:(C++,OpenCV)