原文地址:http://blog.csdn.net/dingfc/article/details/7457984

图像深度是指存储每个像素所用的位数,也用于量度图像的色彩分辨率.图像深度确定彩色图像的每个像素可能有的颜色数,或者确定灰度图像的每个像素可能有的灰度级数.它决定了彩色图像中可出现的最多颜色数,或灰度图像中的最大灰度等级.比如一幅单色图像,若每个象素有8位,则最大灰度数目为2的8次方,即256.一幅彩色图像RGB3个分量的象素位数分别为4,4,2,则最大颜色数目为2的4+4+2次方,即1024,就是说像素的深度为10位,每个像素可以是1024种颜色中的一种.

例如:一幅画的尺寸是1024*768,深度为16,则它的数据量为1.5M。

计算如下:1024*768*16bit=(1024*768*16)/8字节=[(1024*768*16)/8]/1024KB={[(1024*768*16)/8]/1024}/1024MB。

Opencv 转化函数,参考opencv 2.3.1 manual Reference

 Converts one array to another with optional linear transformation.
C: void cvConvertScale(const CvArr* src, CvArr* dst, double scale=, double shift=)
#define cvCvtScale cvConvertScale
#define cvScale cvConvertScale
#define cvConvert(src, dst ) cvConvertScale((src), (dst), 1, 0 )
Parameters:
src – Source array
dst – Destination array
scale – Scale factor
shift – Value added to the scaled source array elements
scale (Double)
The value to be multipled with the pixel
shift (Double)
The value to be added to the pixel
Return Value
Image of the specific depth, val = val * scale + shift

如果 scale=1,shift=0 就不会进行比例缩放. 这是一个特殊的优化,相当于该函数的同义函数名:cvConvert 。

如果原来数组和输出数组的类型相同,这是另一种特殊情形,可以被用于比例缩放和平移矩阵或图像,此时相当于该函数的同义函数名:cvScale。

因此可以用这个函数实现不同位深之间的转换,也可以用于不同数据类型之间的转换!

下面转一段别人总结的深度显示范围。
测试double型:0.0--1.0之间                          IPL_DEPTH_64F

测试float型:0.0--1.0之间                             IPL_DEPTH_32F

测试long型:0--65535之间                            IPL_DEPTH_32S

测试short int型:-32768--32767之间                 IPL_DEPTH_16S

测试unsigned short int型:0--65535之间             IPL_DEPTH_16U

测试char型:-128--127之间                           IPL_DEPTH_8S

测试unsigned char型:0--255之间                    IPL_DEPTH_8U

这个时候如果需要保存图像,请记住要先转换到IPL_DEPTH_8U的深度。因为只有8位单通道或者3通道(通道顺序为'BGR')才可以使用cvSaveImage保存。下

最新文章

  1. SQL Server数据库常用函数
  2. 《javascript高级程序设计》第三章学习笔记
  3. java 复制文件
  4. c++垃圾回收代码练习 引用计数
  5. (转)Android属性设置android:noHistory="true"
  6. ISO13485给企业带来的益处
  7. linux之centos安装xampp
  8. centos ppp拨号
  9. ASP.NET页面周期
  10. Compare the value of entity field.
  11. Nio得知3——该示范基地:多路复用器模式
  12. spark、storm与Hadoop
  13. 树莓派小车By 树莓派爱好者ITJoker(通过python socket通信实现树莓派视频小车)(一)
  14. JavaScript 基础六 'use strict'严格模式下的规则
  15. Lua5.1 升级 Lua5.3 升级 小结
  16. [kali] 安装完kali之后允许远程ssh
  17. 用iframe嵌入了一个微信公众号平台文章的URL
  18. java线程实现的四种方式
  19. VS团队资源管理器(VS自带git)使用说明_使用VS自带git推送到远程存储库
  20. Flume-NG源码阅读之FileChannel

热门文章

  1. matplotlib imshow
  2. CF438E The Child and Binary Tree(生成函数,NTT)
  3. win32 窗口缩放时出现闪屏
  4. bug6 项目检出JRE问题(Unbound classpath container: 'JRE System Library [JavaSE-1.7]' in project 'idweb')
  5. 线程的加入.join()
  6. springboot的跨域
  7. (大数 求余) Large Division Light OJ 1214
  8. vue资源
  9. 【1】存在大于1s的FullGC
  10. TCP粘包,拆包及解决方法