gpt4 book ai didi

python - 最小最大图像直方图拉伸(stretch)

转载 作者:太空宇宙 更新时间:2023-11-04 04:35:08 27 4
gpt4 key购买 nike

我在将图像的直方图拟合到特定范围以获得更好的对比度时遇到问题。

首先,我使用的所有数据从输入图像+直方图开始到我的输出图像+直方图到我想要的输出+直方图:

My input image

Histogram of input image

My output image

The histogram from my output image

I want it to look like this (looks a lot smoother)

Histogram of the output image that I want

我使用的程序中的方法描述只是说“将黑色映射到最小强度,将白色映射到最大强度”。

下面是做映射的代码:

for y in range(0, h):
for x in range(0, w):
image[y,x] = (((image[y,x] - smallest) / diff) * 65535)

在此代码中最小的是原始图像中的最小强度,并区分最大和最小强度之间的差异。

我需要做什么,才能最终获得更平滑的直方图?

感谢您的帮助!

最佳答案

如果 image 是整数类型,那么 (image[y,x] - smallest)/diff) 是一个较小的整数——这个操作向下取整结果,有效地量化了输入的灰度级。

为防止这种情况发生,请按如下方式预先计算乘数:

scale = 65535 / diff
image[y,x] = (image[y,x] - smallest) * scale

或者,在计算映射之前将像素值转换为 float ,然后转换回整数以将其存储回 image 数组。

关于python - 最小最大图像直方图拉伸(stretch),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51893602/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com