今まで、B チャンネル再建法補正ツール Ver. 5.5 に向けて、試作や実験を繰り返していました。この間色々と実験して気づいたことをメモっておきたいと思います。
■一般的な写真の場合、全ての色を混ぜるとニュートラルグレーになる
これは、通常の画像処理ソフトで自動ホワイトバランスを取るときに取られている仮定 (前提) です。自動ホワイトバランスは通常、すべての色を混ぜた時にニュートラルグレーになるように色を調整しています。
問題はなぜそのような仮定が採られるか、ということですが、一般的な写真では、RGB の画像は非常に似ており、ヒストグラムもおおむね似ています。
例えば以下の写真ですが...
R, G, B でレベルの差はありますが、ヒストグラムのパターンは似ています。山のピークはほぼ一致しています。この画像の場合、R-G 間の相関係数は 0.97, R-B 間も 0.97, G-B 間は 0.94 でした。G のレベルが一番高く、B のレベルが一番低いのでこのような結果が出ています。とは言え、いずれも相関係数は 0.9 を越え、R, G, B 相互にかなり似ているということが分かります。我々の色の認識は、チャンネル間のわずかな違いで認識しているのです。
このように R, G, B がかなり似ているため、R, G, B を全て混ぜるとニュートラルグレーになるという仮定が採られるのです。もちろんニュートラルグレーに近くなったとしても完全にニュートラルグレーになるとは限りません。その場合、画像処理ソフトは、画像中のホワイトポイントもしくは、ホワイトポイントとブラックポイントの2カ所に基づきホワイトバランスを計算する機能も備えています。因みに上の画像の平均色を取ってみたところ以下の色になりました。
完全なニュートラルグレーではありませんが、近い色になっています(R: 52.6, G: 55.4, B: 49.7 但し最大値を 100 とする)。
しかし、これは多様な色が様々に含まれている写真 (特に風景写真) に当てはまる経験的法則ですが、特定の色を持った人工物が画面の大きな部分を占めていたりすると、この経験則は当てはまりません。その場合、自動ホワイトバランス調整を適用しても、おかしいと感じられることになります。
なお、一般的な画像処理ソフトで自動的にホワイトバランスを取ると、おそらく R, G, B カーブをリニアに動かしてバランスを取っているものと思われます。この時、リニアRGB 空間で自動ホワイトバランスを取るのと知覚的TRCがかかったRGB空間で自動ホワイトバランスを取るのとでは、違った結果が得られると思います。リニアなRGB 空間でリニアにカーブを動かしてホワイトバランスを取ることは、知覚的RGB空間においては曲線的にカーブを動かしていることになりますので...
最近 GIMP の自動ホワイトバランスがかなり良くなったように感じますが、ひょっとするとリニアなRGB空間でホワイトバランスを取るように変更されたのかもしれません...
■黄色の強さ、鮮やかさは R チャンネルの値に比例する
これは光のRGB三原色の原理を考えれば当然の原理です。B 値が低く、R, G 値が高いと黄色く見え、かつ B 値と R, G 値の差が大きければ大きいほど、黄色の彩度が高くなりますので、黄色味が R チャンネル (および G チャンネル) の値に比例するのは当然です。
■ B値の高さと黄色味は反比例する
逆に考えると、B 値が高い場合は黄色くない場合が多いはずです。因みに R, G 値が高く、かつ B 値も比較的高いと、薄めのレモンイエローになりますが (下図)、
これは、花などを除いては自然界にはあまり見られない色です。
R, G 値が中程度に高く、B 値がやや高めの場合も比較的多くないように思います。B チャンネル再建法ツール Ver. 5.5 では、この傾向を利用して、黄変に伴って、元々なかったはずの不自然な緑が強調されるのをなるべく防ぐアルゴリズムを考えました。
■ R - G の差が大きいほど、B 値が下がる傾向にある
ネガフィルムをスキャンした時、微妙に色が冴えない、色がすっきりしない、薄汚いと感じる場合があると思います。こう感じる場合は大概画像が全般的にマゼンタがかっています。このマゼンタかぶりの量が少ない場合は、そもそもなぜ色が冴えないのかすらよく分からない場合すらもありますが、大抵 G チャンネルをちょっと引き上げると色がすっきりしてくるので原因が分かります。
空の青はごくわずかにマゼンタ味が入っているのがナチュラルですし、また花の色がマゼンタ~紫である場合もありますが、それ以外では、自然な風景ではマゼンタというのはかなり不自然な色であると言えます。
このマゼンタ味は、RGB 値的に言うと、R 値と G 値の差が開いていることで発生します。このような現象が発生する場合とは、1. そもそも G 値が本来あるべき値より低くなっている場合、および、2. R 値と G 値の差が開いているのは適切であるが、B 値が不適切である、の二つの可能性が考えられます。この後者の場合、B 値は大概本来の値より高いためです。これは下図を見ていただければわかります。
つまり、そのような場合は、マゼンタ~紫になるのが分かります。この場合、B 値を下げるとどうなるでしょうか。
マゼンタはオレンジに、紫は褐色になるのが分かります。こちらの色の方が一般的な風景写真で多く分布しているのが自然です。
さらに、以上から、3. G 値が本来の値より低くかつ B 値も本来の値より高い場合、も考えられます。
ともあれ、G - R 値の差がありかつ B 値が高いというのは、経験的に多くの場合不自然なケースです。特にシャドウ域でこれは特に当てはまる経験則と言えるでしょう。B チャンネル再建法 Ver. 5.4 で追加した褐色補正レイヤーはこの経験則を利用して、G - R 値の差に比例して B 値を引き下げるということを行うことで、マゼンタ (ピンク) になった褐色 (肌色) を復元することを試みています。
■純色は、自然界には存在しない
純色とは、ある特定のチャンネルの値が 100% で他のチャンネルが 0 % である色です。例えば、R 100, G 0, B 0 なら純赤で、R 100, G 100, B 0 なら純黄です。このような色はまず存在しません。仮に物体を純色に塗ったものを撮影したとしても光線状態によって純色から離れるのが普通です。ただ、カメラで写したときにセンサーデータ上では純色になる場合があります。ただ、これは人間の視覚とは異なります。それを調整するために darktable および ART のシグモイドモジュールに原色調整機能が付加されています。
---------------
[参考記事]