matlab imshow 透明度,MATLAB中的imshow(A,[])

本文解析MATLAB中imshow(A,[])的功能,通过将图像灰度值映射到0-255范围,增强图像细节显示。并探讨了Python中如何实现类似效果,涉及归一化操作。展示了该技巧在聚类图像对比中的应用实例。
摘要由CSDN通过智能技术生成

在MATLAB中,imshow(A) 默认显示的是0~255,imshow(A,[]) 显示的是min(A)~max(A)。

文档中对于imshow(A,[])的解释IMSHOW(I,[LOW HIGH]) displays the grayscale image I, specifying the display range for I in [LOW HIGH]. The value LOW (and any value less than LOW) displays as black, the value HIGH (and any value greater than HIGH) displays as white. Values in between are displayed as intermediate shades of gray, using the default number of gray levels. If you use an empty matrix ([]) for [LOW HIGH], IMSHOW uses [min(I(:)) max(I(:))]; that is, the minimum value in I is displayed as black, and the maximum value is displayed as white.

所以,imshow(A,[])在MATLAB中的原理就是b=uint((a-min(a(:)))./(max(a(:))-min(a(:)))*255);

这样做的直接意义就是使得显示的图像的临近像素点的梯度变大,即各像素点间区分度变大,这样就能更加明显地区分出差异效果。

例如,图片A的灰度值都在20以下,但确实又有灰度变化,如果你直接imshow,那么看起来几乎都是黑的。而采用imshow(A,[])后会从最小到最大拉伸显示。

如图1所示显示是对Lena图进行聚类之后的结果,上面的是没有拉升显示的,下面的进行了拉升显示的。可以明显看出拉升显示后的图像的亮度和对比度较原图有明显变化。

在Python中如何翻译imshow(A, [])呢?I_stretch = ((I-I.min())/(I.max()-I.min())*255).astype(uint8)

可以看出,这其实就是一个归一化的操作。

作者水平有限,暂时就写到这里。更深入的思考,留待下一次更新。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值