如何为多张图像设置相同的亮度?

时间:2019-01-21 05:19:34

标签: matlab image-processing histogram rgb luminance

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

我想要的是:

  • 亮度过度曝光的图像应降低,并且
  • 曝光不足的图像,应提高亮度。

Standar image Over-exposure under-exposure

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

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

1 个答案:

答案 0 :(得分:1)

所以,我想您有两个问题。

第一季度:

  

我想要的是:

     
      
  • 应将亮度过度曝光的图像降低,并且
  •   
  • 曝光不足的图像,应提高亮度。
  •   

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

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

histograms

如您所见,

  • 曝光不足的直方图的分布更多地集中在下部区域roughly [0 ~ 55]中。

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

  • “标准”直方图的分布更加集中在两个区间roughly [15 ~ 145]之间。

您想要做的是将直方图更均匀地分布在所有垃圾箱中。您可以尝试提出自己的一些算法,也可以使用内置的MATLAB函数adapthisteq()(如here所述)进行使用。使用不同的参数,最终可能会得到直方图分布,从而为您提供最佳的图像输出。默认情况下,函数adapthisteq会尝试在所有256个bin上分布直方图。

第二季度:

  

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

如果只希望其他两张图像的直方图看起来像您的“标准”图像,则可以使用here中所述的imhistmatchn函数。老实说,我本人对此功能经验很少,但是您可以尝试一下。