opecncv不同深度图像的转换(IPL_DEPTH_8U和IPL_DEPTH_32F)

原创 2016年05月30日 23:01:45
由于在很多的图片使用过程中会经常使用到各种转换,总结如下
opencv的IplImage结构中有这么一个成员:depth。
其取值如下:
枚举值
用%d输出 二进制
IPL_DEPTH_8U : 8 : 0x0000 0008
IPL_DEPTH_8S :-2147483640 : 0xffff fff8
IPL_DEPTH_16U : 16 : 0x0000 0010
IPL_DEPTH_16S : -2147483632 : 0xffff fff0
IPL_DEPTH_32S : -2147483616 : 0xffff ffe0
IPL_DEPTH_32F : 32 : 0x0000 0020
IPL_DEPTH_64F : 64 : 0x0000 0040


从文件或摄像头直接读取的图像一般都是8U的,
当有特殊计算需求时可以用cvScale() 或cvCvtScale() 转换。
保存时必须转换回8U!
不同的深度其取值范围不一样:
0.0--1.0之间——IPL_DEPTH_64F
0.0--1.0之间——IPL_DEPTH_32F
0--65535之间——IPL_DEPTH_32S
-32768--32767之间——IPL_DEPTH_16S
0--65535之间——IPL_DEPTH_16U
-128--127之间——IPL_DEPTH_8S
0--255之间——IPL_DEPTH_8U


不同深度图像的转换:
要注意范围
比如IPL_DEPTH_8U 转到 IPL_DEPTH_32U——cvConvertScale(pImg8, pImg32, 1.0/255, 0); 要除255
反过来IPL_DEPTH_32F 到 IPL_DEPTH_8U——cvConverScale(pImg32, pImg8, 255, 0);    要乘以255

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

OpenCV不同图像深度类型的理解

最近利用OpenCV函数库的时候,常常遇到不同深度的图像的转换、显示和保存问题。在网上查阅了很多文章,发现很多说的不够清楚。在此说下自己的理解。

cvShowImage显示IPL_DEPTH_32F图像

问题背景: 读入RGB图像(8bits)---->转换成灰度图像(8bits)---->转换成Float型(IPL_DEPTH_32F)--->后续处理 问题描述: 1、用cvShowImage显示8...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

OpenCV对不同图像深度的处理

在处理一些需要图像相加运算的操作时,通常定义    IplImage* dst = cvCreateImage(cvGetSize(img),IPL_DEPTH_64F,img->nChannels)...
  • loop_k
  • loop_k
  • 2010-03-21 14:08
  • 10845

图像深度(Image Depth)

图像深度是指存储每个像素所用的位数,他也是用来度量图像的色彩分辨率的。他确定了彩色图像的每个像素可能有的色彩数,或者确定灰度图像的每个像素可能有的灰度级数。他决定了色彩图像中可能出现的最多的色彩数,或...

在HTM中如何获取不同视点的彩色或深度图像(Layer)的模式信息

对于单通道视频而言,在HM中获取相邻PU的模式信息,这个已经可以很方便的获得,详见http://blog.csdn.net/yangxiao_xiang/article/details/8478283...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)