基于场景亮度/暗度或“自动电平”的自适应曝光(增益)方法

时间:2011-05-04 15:33:17

标签: iphone image-processing opengl-es opengl-es-2.0

我有几个曝光和伽玛功能,但我没有想出一个有效的公式来根据亮度调整曝光。我想做的是让更暗的地区变亮。

我通过低通(阈值)实现了这个,但这不是最好的方法。我真的很想让曝光控制根据亮度提升曝光度,因此较暗的区域获得最多的增益和更亮的区域。这可能类似于Photoshop和其他图像处理应用程序中的“自动级别”。

1 个答案:

答案 0 :(得分:0)

你必须通过使用分段函数来实现这一点,其中复合作用映射是连续的,单调的并且最好是可微分的。实现此目的的一种好方法是在控制点之间使用样条插值。

线性标识映射具有控制点(0,0),(1,1)。在线性之间和之下引入控制点,如(0.5,0.4),就像降低伽马值一样。使用多个中间控制点可以非常精确地控制映射,但是对于简单的曝光控制,最好线性化原始值(典型图像具有大约2.4的预应用伽玛,尽管像sRGB这样的颜色空间使事情复杂化),然后调整偏移和增益,可能通过在基于样条曲线的映射中设置第一个和最后一个控制点。然后使用中间控制点或应用gamma。

自动化过程有点棘手,但一个好方法是确定直方图,然后执行具有偏移和平均宽度参数的高斯分布的最小二乘拟合。这些参数的倒数给出了要执行的调整。典型图片的直方图绝不会像高斯图,但假设大部分图像内容都是中值,这是有道理的。