OpenCV中imshow函数的使用

函数功能:在指定窗口中显示图像。

函数原型:void imshow(const string& winname, InputArray mat);

如果窗口是使用cv::WINDOW_AUTOSIZE标志创建的,则图像显示为其原始大小,但仍受屏幕分辨率的限制。否则,图像将按比例缩放以适合窗口。该函数可以缩放图像,取决于其深度:

-如果图像是8位无符号的,它将按原样显示。
-如果图像是16位无符号或32位整数,像素就除以256。也就是说,值范围[0,255*256]被映射到[0,255]。
-如果图像是32位或64位浮点数,像素值将乘以255。也就是说,值范围[0,1]被映射到[0,255]。
 

 

总结如下:

1.imshow可以直接显示8位无符号整型图像,像素值范围位(0,255)。

2.imshow可以直接显示16位无符号或32位整数,但是像素需要除以256。也就是说,值范围[0,255*256]被映射到[0,255]。

3.imshow也是可以直接正常显示浮点型图像(32位或64位)的,当inshow函数遇到浮点型图像时,像素值将乘以255。

也就是说,值范围[0,1]被映射到[0,255],然后就能正常显示了(这个过程是内部自动完成的)。前提是浮点型图像(即像素值范围为(0,1)),而不是随意取值范围浮点型矩阵。若是浮点型的不在(0,1)范围,则要归一化范围为(0,1),或者直接转为8位无符号整型(如:用normalize函数归一 化为 0,255)范围后,再用convertScaleAbs函数将归一化后的图线性变换成8位无符号整型)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值