rawpyでPython現像その11(highlight mode)

python

 rawpyの現像関数、postprocessの引数であるhighlight_modeに関して、値の意味を確認していきます。

 postprocessに関しての詳細はこちら

 いろいろ実験はしてみたのですが、正直今回のパラメータは最後まで意味がよくわかりませんでした。いろいろ試した結果だけ載せておきます。

highlight mode

 ハイライトモード。HighlightModeは、Clip, Ignore, Blend, Reconstruct, ReconstructDefault の5種類存在する。

 この指定にはenumがあるようで、

rawpy.HighlightMode.Clip
rawpy.HighlightMode.Ignore
rawpy.HighlightMode.Blend
rawpy.HighlightMode.ReconstructDefault
rawpy.HighlightMode.Reconstruct = bound method HighlightMode.Reconstruct of enum 'HighlightMode'

 それぞれが何を意味するのか詳細の説明が見当たりませんでした。

 ハイライトをどうにかするとしかわかりません。全く持って詳細分かりません。本家librawのドキュメントを参照してみます。

int highlight;
0-9: Highlight mode (0=clip, 1=unclip, 2=blend, 3+=rebuild).

 やはり謎です。文言からすると、ハイライト(最大値)をなにがしかするというモードでしょうか?clipということは最大値にクリッピングする。って意味だろうか?ignore(unclip)だとそれを無視する?ということは値が回り込む?blendとは何をブレンドするんだろう。

 やはり謎です。3以降はさらに謎です。実験してみるしかありません。

実験

 各モードで現像してみます。シンプルな設定で、自動明るさ補正を掛けたものです。clip, ignore, blendの3種類の現像をした結果のヒストグラムを表示させます。

clip ignore blend

 左から、highlight mode = clip, ignore, blendに設定したヒストグラムです。

 ignoreには大きな違いがあります。ignoreにすることで暗い方向にシフトしました。ignoreに関しては自動明るさ補正が全く効いていないようです。閾値設定の1%の画素飽和が起こっていないように見えます。ただ傾向は不明。

 clipとblend(左端と右端)も完全一致はしていませんが、傾向が似ていることが分かります。

 続いて、自動明るさ補正をOFF(no_auto_bright = True)にした結果が以下

clip ignore blend

 並びは先ほどと同じように、左から、clip, ignore, blendに設定したヒストグラムです。

 今回の写真ではREDが一部最大値に飽和していて、highlight mode がclipにおいて、自動明るさ補正のOFF / ONでヒストグラムの形状はそれほど変化しませんでした。また、ignoreはそれこそ自動明るさ補正がONと時とまるで同じに見えます。

 今度はblendの傾向が少し違います。自動明るさ補正がONの時はclipと似た傾向を示していましたが、今回はどちらかというとignoreと近い傾向を示しています。

 これも近いというだけで、同じではありません。重ねてみると、

ignore and blend

 このようにハイライト部でblendの方は値が折り返っているように見えます。greenも最大値を取る画素がなくなっているように見えます。

 ignoreに関しても、自動明るさ補正が無視されるだけで、通常の明るさ補正は効いています。謎です。

 露出補正(exposure shift)を1段下げた(0.5)したうえで、clip設定したヒストグラムと、ignoreのヒストグラムを比べてみます。

 左がclipの設定のまま露出補正を1段暗くしたもの、右が露出設定はそのままで、highlight mode = ignoreに設定したもの。

 ガンマ2.2が効いているので、線形性は見られませんが、どうもclipされる最大値までの傾向は似ています。ignoreすると明るさが半分になっている。ということでしょうか。

 併せて、0:clip, 1:ignore, 2:blend の先の3,4,5,6,7,8まで試しましたが、3~8に関しては無変化でした。微妙にignoreとは違いましたが似た感じでした。

まとめ

 正直よくわかりません。ignoreにすると、デフォルトのclipに対して明るさが半分くらいになります。誰か教えてください。

 注意点としては、非デフォルトのignoreにすると自動明るさ補正(auto bright)が全然効果なしです。

 またblendに設定すると自動明るさ補正OFFでハイライトの折り返しのような現象が出ます。極ハイライトに色被りのような影響が出ています。

 今後はこのパラメータいじらないと思います…。

python現像
スポンサーリンク
キャンプ工学

コメント

タイトルとURLをコピーしました