图像像素的类型转换与归一化
在计算机中,图像的默认存储格式是8位,在OpenCV中,可以将图像的数据类型进行转换,也可以将数据的取值空间进行转换,即将0-255的范围压缩为0-1的范围内,称为归一化。
数据类型的转化和归一化的关系
实际上数据类型转换是为归一化做准备的,试想一下,将一个整形的数据(0-255)压缩为0-1的范围,那么势必会出现变成浮点数,而这个时候如果数据的类型还是整形,那么小数点后的内容就会被省略,归一化就无法完成了,数据类型的转换就是为了这种情况准备的。
以下是Mat的数据类型和常规类型对照
Mat_<uchar>---------CV_8U
Mat<char>-----------CV_8S
Nat_<short>---------CV_16S
Mat_<ushort>--------CV_16U
Mat_<int>-----------CV_32S
Mat_<float>----------CV_32F
Mat_<double>--------CV_64F
CV_8U 8位无符号整数 (0…..255)
CV_8S 8 位符号整数 (-128…..127)
CV_16U 16 位无符号整数 (0……65535)
CV_16S 16 位符号整数 (-32768…..32767)
CV_32S 32 位符号整数 (-2147483648……2147483647)
CV_32F 32 位浮点数 (-FLT_MAX ………FLT_MAX,INF,NAN)