opencv图像的深度及取值范围
来源:互联网 发布:手机淘宝同城在哪里找 编辑:程序博客网 时间:2024/06/05 08:34
图像的位深度及其取值范围:src.depth()
Mat类型:
矩阵数据类型:
—— CV_<bit_depth>(S|U|F)C<number_of_channels>
S= 符号整型 U=无符号整形 F=浮点型
如:CV_8UC1 表示一个8位无符号整型单通道矩阵
CV_32FC2 表示一个32位浮点型双通道矩阵
还有其他一些格式如下:
CV_8UC1
CV_8UC2
CV_8UC3
CV_8UC4
CV_32SC1
CV_32SC2
CV_32SC3
CV_32SC4
depth图像元素的位深度可以是下面的其中之一:
IPLimage类型:
位深度 取值范围
IPL_DEPTH_8U - 无符号8位整型 0——255
IPL_DEPTH_8S - 有符号8位整型 -127——127
IPL_DEPTH_16U - 无符号8位整型 0——65535
IPL_DEPTH_16S - 有符号8位整型 -32768——32767
IPL_DEPTH_32S - 有符号8位整型 0——65535
IPL_DEPTH_32F - 无符号8位整型 0.0——1.0
IPL_DEPTH_64F - 有符号8位整型 0.0——1.0
如上,给出图像的位深度及其取值范围后,我们不难理解,要转换位深度本质上就是对原深度下的数据做线性变换,使原位深度下的最小值和最大值分别对应转换后位深度下的最小值和最大值。实现上述线性变换,我们可以用OpenCV库函数cvConvertScale。
cvConvertScale函数简介:
cvConvertScale( const CvArr* src, CvArr* dst,double scale CV_DEFAULT(1),double shiftCV_DEFAULT(0) );
功能:使用线性变换转换数组
参数说明: src 输入数组,dst 输出数组,scale 比例因子,shift 偏移量。
对应的线性变换公式:dst(I)=src(I)*scale +(shift,shift,...).
比如将IPL_DEPTH_8U 转换成 IPL_DEPTH_32U,我们需要用线性变换将[0 255] 映射为 [0 1]。不难求出线性变换的参数scale=1/255, shift=0。
所以:要实现不同位深度间数据的转换,首先我们需要知道不同位深度对应数据的取值范围,然后计算出关于两取值范围上下限的线性变换,最后将图像数据和线性变换参数代入函数cvConvertScale()。
- opencv图像的深度及取值范围
- Opencv中的HSV取值范围
- Opencv中的HSV取值范围
- MYSQL中支持的数据类型及取值范围
- 位数及有无符号的取值范围
- JAVA_double取值范围及MAX_VALUE和MIN_VALUE的总结
- 枚举的取值范围
- int的取值范围
- int的取值范围
- x的取值范围
- x的取值范围
- 整数的取值范围
- long的取值范围
- 数据类型的取值范围
- int的取值范围
- 数据类型的取值范围
- Java数据类型及对应取值范围
- Java数据类型及对应取值范围
- 动态代理
- Hdu 1241 Oil Deposits DFS算法
- 水平居中/按钮点击变色
- 简单基础树状数组求逆序数 POJ2299
- js实现点击按钮复制文本框中的内容
- opencv图像的深度及取值范围
- java数组的使用(四步,初学)
- JavaScript-数据类型转换实例
- Python 包
- Jquery操作select
- Chapter 3 介绍几种“坐标空间”
- 计算机网络--网络层IP地址
- 数组用for遍历,for(int score:scores)
- 【剑指offer】面试题50(1):第一个只出现一次的字符