0

我有很多具有不同亮度值的图像。我想将图像的亮度设置为标准值,即 0,196 或 49,98。

我想要的是:

  • 过度曝光的图像应该降低亮度,并且
  • 曝光不足的图像,应增加亮度。

标准图像过度接触 曝光不足

图像 1 - 标准图像,图像 2 - 过度曝光,图像 3 - 曝光不足

问题是“如何设置所有图像的曝光/亮度与标准图像相同?”

4

1 回答 1

1

所以,我认为有两个问题,你在问。

Q1:

我想要的是:

  • 过度曝光的图像应该降低亮度,并且
  • 曝光不足的图像,应增加亮度。

我相信您正在寻找的是某种直方图均衡化

如果你绘制这三个图像的直方图,它们看起来像这样:

直方图

如你看到的,

  • 曝光不足直方图的分布更集中在较低的 bin 中,roughly [0 ~ 55]

  • 过度曝光直方图的分布更集中在较高的 bin 中,roughly [55 ~ 225]

  • 的“标准”直方图的分布更集中在中间箱中,roughly [15 ~ 145].

您想要做的是在所有 bin 之间更平均地分配直方图。您可以尝试自己想出一个小算法,或者您可以使用内置的 MATLAB 函数,如此adapthisteq()所述,了解如何使用。使用不同的参数,您最终可能会得到一个直方图分布,为您生成最佳图像输出。默认情况下,该函数会尝试将直方图分布在所有 256 个 bin 上。adapthisteq

Q2:

问题是“如何设置所有图像的曝光/亮度与标准图像相同?”

如果您只想让其他两个图像的直方图看起来像的“标准”图像,那么您可以使用此处imhistmatchn解释的函数。老实说,我自己对这个功能没有什么经验,但你可以试试。

于 2019-01-21T09:20:26.403 回答