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 に答える