我有很多具有不同亮度值的图像。我想将图像的亮度设置为标准值,即 0,196 或 49,98。
我想要的是:
- 过度曝光的图像应该降低亮度,并且
- 曝光不足的图像,应增加亮度。
图像 1 - 标准图像,图像 2 - 过度曝光,图像 3 - 曝光不足
问题是“如何设置所有图像的曝光/亮度与标准图像相同?”
我有很多具有不同亮度值的图像。我想将图像的亮度设置为标准值,即 0,196 或 49,98。
我想要的是:
图像 1 - 标准图像,图像 2 - 过度曝光,图像 3 - 曝光不足
问题是“如何设置所有图像的曝光/亮度与标准图像相同?”
所以,我认为有两个问题,你在问。
Q1:
我想要的是:
- 过度曝光的图像应该降低亮度,并且
- 曝光不足的图像,应增加亮度。
我相信您正在寻找的是某种直方图均衡化。
如果你绘制这三个图像的直方图,它们看起来像这样:
如你看到的,
曝光不足直方图的分布更集中在较低的 bin 中,roughly [0 ~ 55]
。
过度曝光直方图的分布更集中在较高的 bin 中,roughly [55 ~ 225]
。
您的“标准”直方图的分布更集中在中间箱中,roughly [15 ~ 145]
.
您想要做的是在所有 bin 之间更平均地分配直方图。您可以尝试自己想出一个小算法,或者您可以使用内置的 MATLAB 函数,如此处adapthisteq()
所述,了解如何使用。使用不同的参数,您最终可能会得到一个直方图分布,为您生成最佳图像输出。默认情况下,该函数会尝试将直方图分布在所有 256 个 bin 上。adapthisteq
Q2:
问题是“如何设置所有图像的曝光/亮度与标准图像相同?”
如果您只想让其他两个图像的直方图看起来像您的“标准”图像,那么您可以使用此处imhistmatchn
解释的函数。老实说,我自己对这个功能没有什么经验,但你可以试试。