先日、既存の画像編集ソフトではなぜ不均等な黄変画像の修正が困難であることが多いのかについて論じました。今回は逆に B チャンネル再建法では黄変の補正が困難なケースについて見てみたいと思います。
Pixls.us のオンラインディスカッションを見ていたら、以下のような、強く黄色被りした画像の補正に関する議論がありました。オリジナルの画像は、香港にお住いの st. raw 氏が投稿したものです。
なお、Pixls.us の Play Raw フォーラムに投稿された画像は CC-BY-SA 4.0 で扱われるのが前提になりますので、当記事でも引用させていただきます。
この中で最もうまく補正されているように見えた画像は以下のものでした。
discuss.pixls.us 「補正」を行った、yteaot 氏は、補正したのではなく、色を再創造したのだと指摘しています。
そこで、私もこのオリジナル画像をダウンロードしてBチャンネル再建法を掛けてみるとどうなるか調べてみましたが、結果は冴えません。結局 Bチャンネルの代わりに G チャンネルを代入したような結果しか得られません。もっともこの画像は不均等黄変ではなく、均等に黄変していますが。
このファイルをRGB分解するとBチャンネルがほぼ真っ黒。つまり B チャンネル情報がほぼ完全に欠落しています。
このような画像は、筆者の B チャンネル再建法でもうまく復元できません。B チャンネル情報が欠落した画像に適用すると、アルゴリズム上、B チャンネルに G チャンネル情報をほぼそのまま代入したのに等しい結果になってしまうためです。不完全ながらも、B チャンネル情報が残っているとなんとかなるのですが。
yteaot氏の補正ファイルに設定ファイルが添付されていたので、どのように darktable で色を再創造しているのか見てみると、カラーバランスモジュール (現在は非推奨、後継はカラーバランスRGB) で彩度を大幅に落とし、次に、カラーゾーンの彩度を赤以外を大きく落としたようです。
そして、カラールックアップテーブル + マスクをつかって、各色相ごとに着色したようです。まず森の緑。
次に水面。
左下と、白い埠頭の先のレタッチ
フィルミック による調整、回転、切り取り調整をおこなったようです。
このように、チャンネル情報が不完全でも残っていれば、Bチャンネル再建法が適用できますが、一つのチャンネル情報が、ほぼ消えているとあとはマニュアルの着色しか手段がありません。そして、このような着色に darktable のカラールックアップテーブル・モジュールが使える、ということのようです。
また、yteaot 氏は黄色味を弱めるために彩度を大幅に落としましたが、黄色味を落とすには次のような方法もあります*1。
1. オリジナルレイヤーを複製する
2. 複製したレイヤーを平均値で塗りつぶす
なお、GIMP上で簡単に平均色で塗りつぶすには、先日指摘したように、オプションのプラグイン・スクリプトの導入が必要になります。
3. 塗潰した色を反転する
3. 塗潰したレイヤーをカラーモードにする (GIMP ではLCh カラー モード)
このカラーモードとは、上のレイヤーの彩度+色相情報と下のレイヤーの明度情報を合わせて表示するモードです。ただここではLCH色空間を使いますので、彩度はクロマを使います。不透明度100%の段階では藤色の明暗画像になります。
4. 塗潰したレイヤーの不透明度を落とし黄色味を落とす
不透明度を落としていくことで、下の画像の下の色相と上の平均色を反転した色相が混合します。これにより全体的に黄色被りが見られた画像に対し、反転した平均色を混ぜていくことで、色被りを中和していくことになります。
さらにこの画像のホワイトバランスをとったものを、着色のベースにしても良いように思われます。
なお、平均色を反転して元の画像に被せていますが、単に黄色の補色の青を被せたらどうかと思ってやってみたところ、きつくて不自然な結果になります。やはり平均色を反転させて補色化したものが、自然に見えるようです。この方法は、極端な色被りを中和させる方法として結構良いかもしれません。
因みに、B の代わりに G チャンネルを代入すると以下のような結果になります。
似ていますが、より緑っぽくなっています。この画像ファイルに B チャンネル再建法を適用すると、上の図に酷似します。
このように鋭い黄色が広い範囲に広がっている画像は、その部分で B チャンネル情報が欠落している可能性があるので、B チャンネル再建法でも、うまくいかない可能性が高いです。このような場合は、マニュアルで色塗りするしかありません。その際使えるのが、Darktable のカラールックアップモジュールということになるかと思います。
ただ見た目ほどチャンネル情報が欠落していない場合もあるので (結構人間の目は錯覚しますので)、そのような場合は意外にうまくいきます。心配な場合はチャンネル分解を一度行ってみて、B チャンネルにどの程度情報が残っているのか確認するのが確実です。
ちなみに、上の手法で GIMP で調整した後、ART のカラー/トーン補正 を使って着色をしてみた結果が以下です。この程度なら、darktable のカラールックアップテーブルを使わなくても、ART のマスク編集とカラー/トーン補正を組み合わせて、十分着色が可能でした。考えてみればカラールックアップテーブルは類似色指定のようなものですので。
上で引用したベスト補正例に非常に似ますが、黄色味を中和させた後、要は水面の色の B 値を上昇させ、森の緑の B 値を下降させ、砂浜の明度を上げ、服の赤の彩度を上昇させ、あと全体的に彩度を上昇させることでこんな感じになります。
色塗りは必要ですが、黄色味を中和させる方法さえ分かれば、あとは不均等黄変よりもはるかに簡単です。色塗りするときも元の色の彩度をあまり低下させず、それをベースに調整することを考えたほうが良好な結果が得られるように思います。全面的な色被りを中和させる方法として、平均色を反転させカラーとしてミックスするという方法は結構使えそうです。
---------
[この記事には続編があります]
*1:この手法については、以下の記事を参照しました。