cvShowImage显示IPL_DEPTH_32F图像

问题背景:

读入RGB图像(8bits)---->转换成灰度图像8bits)---->转换成Float型(IPL_DEPTH_32F)--->后续处理

问题描述:

1、用cvShowImage显示8bits单通道灰度图像时可以正常显示;

2、用cvShowImage显示32bits float型单通道灰度图像时就出了问题,图像只有黑白两种颜色,没有灰色的,出现了严重失真,这就是没有正确显示;

问题原因:

如果图像是32位float型,cvShowImage会把像素值乘以255然后再与[0,255]的colormap结合起来显示图像,也就是说,原来32位folat型图像中值为0的像素被显示成黑色,值大于或等于1的像素被显示成白色,参看帮助文档:

OpenCV2.4.8帮助文档

解决办法:

转换成灰度图像8bits)---->转换成Float型(IPL_DEPTH_32F)使用如下命令

cvCvtScale(gray8,gray32,1.0/255);

其中gray8是8bits灰度图像的IplImage*图像指针;

gray32是32bits float型灰度图像的IplImage*图像指针.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值