【问题标题】:method for adaptive exposure (gain) based on scene brightness /darkness, or "auto levels"基于场景亮度/暗度或“自动级别”的自适应曝光(增益)方法
【发布时间】:2011-05-05 00:19:48
【问题描述】:

我有几个曝光和伽马函数,但我没有想出一个有效的公式来根据亮度调整曝光。我想做的只是照亮较暗的区域。

我已经通过低通(阈值)实现了这一点,但这不是最好的方法。我真的很想让曝光控制根据亮度提高曝光,因此较暗的区域获得最大的增益,而较亮的区域则最少。这可能就像 Photoshop 和其他图像处理应用程序中的“自动级别”。

【问题讨论】:

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


    【解决方案1】:

    您必须使用分段函数来做到这一点,其中复合映射是连续的、单调的并且最好是可微的。实现这一点的一个好方法是在控制点之间使用样条插值。

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

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

    【讨论】:

    • 谢谢。我正在寻找一种非常快速的方法。我没有对所有值进行平均,而是在考虑值
    • @akaru:那样不行,因为图像中的像素不是相互独立的。如果您在色调映射中进行调整,则图像中所有像素的映射必须相等(值得注意的例外:伪 HDR 色调映射图片,它违反了此规则)。同样对每个像素进行条件测试最终会比对图像进行一些统计然后在整个事物上应用完全相同的函数和参数要慢; CPU 的代码执行路径预测器喜欢这样的东西——另一方面,条件是性能的巨大障碍。
    • 我绝对理解你关于条件的观点,这就是我试图通过乘以一定的线性量来避免的。我实际上正在寻找一种伪 HDR 类型的算法;)
    • @akaru:到目前为止,我还没有什么好的方法可以自动化伪 HDR 色调映射。我自己做了一些伪 HDR,发现这更像是一种艺术而非技术挑战。
    猜你喜欢
    • 1970-01-01
    • 2013-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-29
    相关资源
    最近更新 更多