我的图像大小为144 * 2209,动态范围很大(从-1108到984)。
我想要显示此图像,因此需要将此范围设置为0到255,为此我需要对图像进行标准化。
问题在于:当这么大的动态范围变得紧凑时,归一化后的像素值变得彼此非常接近,使得图像不会显示出来。
可以采取哪些措施来解决这个问题?
以下是IMAGE的链接。
答案 0 :(得分:2)
您可以使用线性变换来更改原始图像的动态范围,但请注意您将修改图像的信息。
为此,对于Matlab中的8位范围,只需使用以下代码段:
bins = pow2(8); % = range
lin_eq_img = round( (bins - 1) * (img - min_img) / (max_img - min_img) );
只是一些评论:
编辑:
16位均衡版本将“保持您的阴影更清晰”(不丢失细节),但是,当然,渲染图像将占用更多空间。这是一个比较:
我强烈建议您在2 ^ 16强度值范围内执行直方图归一化,以避免细节丢失。