1

Erik Reinhard らの論文を読んでいます。「デジタル画像の写真トーン再現」と呼ばれ、こちらにもあります。

http://www.cs.utah.edu/~reinhard/cdrom/

この式 #4 があります。

Ld(x,y) = L(x,y)(1 + L(x,y)/L_white^2) / (1 + L(x,y))

「[If] L_white 値がシーン内の最大輝度 L_max に設定されている...」

作成者によるソース コードとさまざまな実装もオンラインにあります。

私の質問は、上記の式には、それがどのように、何から派生したのか理解できない変形が 1 つあります。たとえば、Luxrender のソース コードを見てみましょう。

http://src.luxrender.net/lux/rev/f48943145d29#l3.77

scale[i] = ( post_scale * (1.0f + lum*recip_Y_white2) / (1.0f + lum) ); //* maxDisplayY;

この論文では言及されていない新しい変数「pre_scale」、「post_scale」、「burn」があります。また、L_white (= Y_white) の計算方法も大きく異なります。

const float Y_white = pre_scale * alpha * burn;

そのようなアルゴリズムを導出する方法を誰かに説明してもらえますか? 論文に基づいていると思いますが、方法がわかりません...

4

1 に答える 1

1

その論文では、式 (4) は「3.1 初期輝度マッピング」セクションにあります。それは最終的な変換ではありません。セクション「3.2 自動覆い焼きと燃焼」がburn変数の起源です。燃焼の場合は > 1、回避の場合は < 1 になります。コードを読んでいないので、内部の任意の輝度値を実際の色空間に変換するpre_scaleと思います。post_scale

于 2012-11-29T16:20:26.647 に答える