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

由于在很多的图片使用过程中会经常使用到各种转换,总结如下
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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值