0

我正在查看Timothy Lottes的演示文稿,他在其中导出了一个通用色调映射器(幻灯片 37 及以下)。

尽管很好地解释了不同参数的目的,但我发现很难正确调整它们。我写了一个简单的脚本来比较不同的色调映射器,并且很难找到通用色调映射器的合理设置。

一般来说,我无法让曲线的肩部表现得与其他运营商相当。也许这是我的实现中的一个错误(原始源代码在幻灯片中)。

def generic(x):
    a = 1.2 # contrast
    d = 1.1 # shoulder

    mid_in = 1
    mid_out = 0.18

    hdr_max = 16

    # It seems to work better when omitting the minus
    b = (-math.pow(mid_in, a) + math.pow(hdr_max, a) * mid_out) / (math.pow(math.pow(hdr_max, a), d) - math.pow(math.pow(mid_in, a), d) * mid_out)

    c = (math.pow(math.pow(hdr_max, a), d) * math.pow(mid_in, a) - math.pow(hdr_max, a) * math.pow(math.pow(mid_in, a), d) * mid_out) / (math.pow(math.pow(hdr_max, a), d) - math.pow(math.pow(mid_in, a), d) * mid_out)

    z = math.pow(x, a)
    y = z / (math.pow(z, d) * b + c)

    return y

有没有人偶然尝试过这个?

4

1 回答 1

0

显然幻灯片中显示的代码存在问题。Bart Wronski 在他的博客文章的评论部分给出了一些更正的代码。我还更新了 github 项目以反映这一点。

于 2016-09-20T07:33:23.193 回答