豪鬼メモ

一瞬千撃

モノクロ写真はカラーフィルタを当てるのが楽しい

モノクロ写真の醍醐味のひとつは、表現意図に応じた露出設定や加工をすることで被写体の陰影を引き立てられることにある。そして後処理でコントラストを上げると印象的な画像に仕上がることが多いという話を前回の記事に書いた。今回は、カラーフィルタの選択についてちょっと探ってみたい。

白と黒の間の輝度の濃淡だけで全てを表現するモノクロ写真なのに、カラーフィルタを適用するとドラスティックに印象が変わるという逆説的なところが、ちょっとしたエンジニアリング魂を揺さぶらないだろうか。白黒フィルムで撮影するのであれば撮影時につけた物理的なカラーフィルタの効果やフィルムの感光スペクトルの特性を後から変えることはできないが、デジタルのカラー画像をグレースケールに変換する過程においては、無限の種類のフィルタを後処理で適用しながら、表現意図に応じた最適な効果のものを選択できる。しかもフィルムの場合はフィルタによって減光率が変わるので露出の調整が面倒になるらしいが(やったことないので詳しく知らないけど)、後処理でやるならそういった調整は全く必要ない。カラー写真がうまくとれていさえすれば、そのポテンシャルを生かしたモノクロ画像が得られる。


カラー画像をグレースケールに変換するにあたっては、各ピクセルにおいて、RGBの各チャンネルの輝度を入力として最終的な輝度を出力する関数を適用することになる。以下のような関数がよく使われる。

  • Average : RGBの重みなしの算術平均。0.333 * R + 0.333 * G + 0.333 * B。明度とも言う。
  • Rec 601 Luminance : ITUによるビデオのための規格。0.298 * R + 0.586 * G + 0.114 * B。Photoshop等で輝度と言われたらこのこと。
  • Rec 709 Luminance : ITUによるHDTVのための規格。0.212 * R + 0.715 * G + 0.07 * B。ImageMagickで輝度と言われたらこのこと。
  • Brightness : RGBの最大値。max(R, G, B)
  • Lightness : RGBの最大値とRGBの最小値の算術平均。(max(R, G, B) + min(R, G, B)) / 2
  • RMS : RGBの二乗平均平方根。sqrt((R^2 + G^2 + B^2) / 3.0)
  • 任意の重み付け平均 : 任意のカラーフィルタを適用したような効果が得られる。(x * R + y * G + z * B) / (x + y + z)

RGBの各チャンネルは網膜にある赤緑青のそれぞれに感度を持つ錐体細胞への刺激を再現すべくデジタル化して記録したものであるが、その情報をどう組み合わせて輝度すなわち明るさとして認識するかは、各人の脳内の情報処理過程による。つまり、人によって、あるいは気分や環境や目的によって変わり、どれが正解とか最適とかいうことはない。Rec 609やRec 708は人々が一般的に感じる明るさの認識方法としてモデル化されたもので、それらでは緑の情報が大きな役割を果たし、青の情報はあまり使われていないということがわかる。実際のところ、自分も、R=0%,G=100%,B=0%の緑色R=0%,G=0%,B=100%の青色よりも明るく感じる。

本題に入る。グレースケール化の関数を使い分けることでどのような違いが出るのかを確認していきたい。まずは元絵はこれ。赤と緑と青が全て出てくるような写真を選んだ。
f:id:fridaynight:20160207001753j:plain

Average。GIMPフォトショップなどの彩度の調整機能で彩度をゼロにすると、Averageと同様の効果がある。中央の赤いTシャツが背景の青いバギーがカラーでの印象より明るいのに気づく。中間的な輝度に寄りやすいので、眠い絵になりがちとも言われる。
f:id:fridaynight:20160207001804j:plain

Rec 601 Luminance。実際の印象に近いらしい。バギーとTシャツがAverageより暗くなる一方、茂みの緑は明るくなっているのがわかる。Averageとの違いわかりにくいかもしれないが、各々の画像を別タブで開いて切り替えると違いがよくわかる。明らかにこちらの方が立体感がある。
f:id:fridaynight:20160207001825j:plain

Rec 709 Luminance。これも実際の印象に近いらしい。Rec 601よりもさらに緑の比率が高く、バギーとTシャツがより暗くなっている。個人的にはRec 601の方が直感に近い気がするが、メリハリのある絵を得たい場合にはこれかな。
f:id:fridaynight:20160207001835j:plain

Brightness。RGBの最大値を取るのだから、必然的にやたら明るくなる。使い道あるのかこれ。
f:id:fridaynight:20160207001848j:plain

Lightness。RGBの最大値と最小値の平均なので、Averageよりもさらに安定して中間的な輝度に寄る。
f:id:fridaynight:20160207001859j:plain

RMS。二乗平均平方根なので、彩度が高いとやや明るくなるという性質があるはず。ちょっと明るめの絵を作りたい時にはこれかな。
f:id:fridaynight:20160207001910j:plain

任意のカラーフィルタの効果も考えてみよう。Averageと同様にRGBの各チャンネルの入力に対して1:1:1の比率で加算するセンサーがあるとしたら、フィルタの効果を再現するグレースケール化係数は以下のようになる。

  • レッドフィルタ(#ff2222) = 0.7894 * R + 0.1052 * G + 0.1052 * B
  • オレンジフィルタ(#ff8822) = 0.6000 * R + 0.3200 * G + 0.080 * B
  • イエローフィルタ(#ffff22) = 0.4687 * R + 0.4687 * G + 0.0625 * B
  • グリーンフィルタ(#22ff22) = 0.1052 * R + 0.7894 * G + 0.1052 * B
  • ブルーフィルタ(#2222ff) = 0.1052 * R + 0.1052 * G + 0.7894 * B
  • パープルフィルタ(#cc22ff) = 0.4137 * R + 0.0689 * G + 0.5172 * B

しかし、この仮定にはあまり意味がない。1:1:1という比率に合理性はないし、そもそもセンサーの特性や現像時に適用したホワイトバランスによってRGBの値が変わってしまうからだ。実在の白黒フィルムを想定するにしても、それはRGBの3チェンネルを混ぜているのではなく、連続的なスペクトルに対する感光特性を持つのであって、3つの係数だけで簡単にモデル化することはできない。ネオパンSSの感光分布曲線を見ても複雑な形をしていることがわかる。フィルムにしてもデジタルセンサーにしても感光特性は様々なので、フィルタの効果を考えるには先にセンサーとその設定を固定しないといけない。

フィルムの特性を目指すことに意味はないので、デジカメのユースケースに絞って考えてみる。現像されたカラー写真に対してREC 601のグレースケール変換をかけたものをベースとして、同じ設定でカラーフィルタと露光時間のみを変えたとしたらどうなるかをシミュレートするのだ。まず、基準となる感光スペクトルの特性を、REC 601モデルを単純化して、R:G:B= 3.0:5.5:1.5とする。ちなみにこれは、仮に1:1:1で感光するセンサーがあるとしたら、それに#8bff46色のフィルタをかけるのに相当する。このREC 601センサーを基準として、様々な色のカラーフィルタをかけた効果を得るべく、二つのフィルタを掛け合わせてから、RGBの合計が1.0になるように調整する。右端の16進値は掛け合わせたRGBの最大値をFFにした場合のフィルタ色であり、1:1:1センサーにその色のフィルタをかけたものと同等であることを示す。

  • レッドフィルタ(#ff2222) * REC601センサー = 0.7627 * R + 0.1864 * G + 0.0508 * B = #ff3e11フィルタ * 1:1:1センサー
  • オレンジフィルタ(#ff8822) * REC601センサー = 0.4891 * R + 0.4782 * G + 0.0326 * B = #fff911フィルタ * 1:1:1センサー
  • イエローフィルタ(#ffff22) * REC601センサー = 0.3448 * R + 0.6321 * G + 0.0229 * B = #8bff09フィルタ * 1:1:1センサー
  • グリーンフィルタ(#22ff22) * REC601センサー = 0.0655 * R + 0.9016 * G + 0.0327 * B = #13ff09フィルタ * 1:1:1センサー
  • ブルーフィルタ(#2222ff) * REC601センサー = 0.1518 * R + 0.2784 * G + 0.5696 * B = #447dffフィルタ* 1:1:1センサー
  • パープルフィルタ(#cc22ff) * REC601センサー = 0.5179 * R + 0.1582 * G + 0.3237 * B = #ff4e9fフィルタ* 1:1:1センサー

上記の各フィルタの効き具合を見ていこう。比較のために、カラー画像とRec601を再掲する。
f:id:fridaynight:20160207004312j:plain
f:id:fridaynight:20160207004323j:plain

レッドフィルタ。当然ながら、赤いTシャツがやたら明るくなる。風景写真においては赤いものが画面の多くを占めることは稀なので、結果的にコントラストを高める効果があると言われているが、効きすぎて不自然になることも多いらしい。
f:id:fridaynight:20160207005602j:plain

オレンジフィルタ。肌を明るくしたい場合にとても使えると思う。
f:id:fridaynight:20160207005725j:plain

イエローフィルタ。レッドやオレンジより控えめな効果だが、コントラストをちょっと高める傾向にあるらしい。モノクロ写真撮影の常用フィルタとかいう呼び声も。
f:id:fridaynight:20160207005952j:plain

グリーンフィルタ。赤を抑えるので唇の濃さを強調するとか。明るめに映った顔の凹凸をはっきりさせたい場合にも使える気がする。背景の緑が明るくなって人物の顔が暗くなってしまうので、少なくともこの写真には向いていない。
f:id:fridaynight:20160207010051j:plain

ブルーフィルタ。あまり使い道がない。怪異的な絵にしたい場合とかかな。
f:id:fridaynight:20160207010240j:plain

青空のある風景の例も効果がわかりやすいかも。原画はこんな感じ。虹の形の変化にも注目。
f:id:fridaynight:20160207091513j:plain

Rec 601 Luminance。誇張のない自然な表現である。
f:id:fridaynight:20160207091848j:plain

レッドフィルタ。空が暗くなって、空に上がる水しぶきとの対比が見やすくなったが、ちょっと現実離れした感じになってしまった。
f:id:fridaynight:20160209013855j:plain

オレンジフィルタ。レッドより効果が薄くなったが、まだやりすぎ感がある。
f:id:fridaynight:20160209013919j:plain

イエローフィルタ。水しぶきを強調しつつ自然な感じを維持するという点では、これがベストバランスかも。
f:id:fridaynight:20160209013943j:plain

グリーンフィルタ。逆に水しぶきが見にくくなっている。
f:id:fridaynight:20160209014008j:plain

ブルーフィルタ。大昔の写真は青波長にしか感光しなかったらしいのだが、そんな大昔の雰囲気が出るのかも。
f:id:fridaynight:20160209014037j:plain

個人的には、Rec 601かRec 709で多くの事例はOKだが、人物の肌を明るくしたくなる場合にはオレンジフィルタを使って、風景ではイエローフィルタを使って、人物の肌が明るすぎてのっぺりしている事例ではグリーンフィルタを使うといった使い分けをするかな。以下に、自分の練習のために、コントラストアップとフィルタを同時適用した例をいくつか挙げてみる。

シャボテン公園。背景のサボテンの緑より主要被写体である子供の顔を明るくしたいので、オレンジフィルタを適用。
f:id:fridaynight:20160207071242j:plain
f:id:fridaynight:20160209015113j:plain

浅草寺。これも前景の子供の顔を明るくしたいが、背景の赤提灯は明るくしたくないので、イエローフィルタを適用。
f:id:fridaynight:20160207094728j:plain
f:id:fridaynight:20160207093918j:plain

与論島。これも前景の子供の顔を明るくしたいが、背景の海が暗くなりすぎると変なので、イエローフィルタを適用。
f:id:fridaynight:20160207095238j:plain
f:id:fridaynight:20160207095348j:plain

代々木公園のバラ園。バラの赤を背景の白や葉っぱの緑と好対照にするには、Rec 709がちょうどよかった。カラーフィルタは濃い赤への影響が凄まじいので、どれを使ってもうまくいかなかった。
f:id:fridaynight:20160207102237j:plain
f:id:fridaynight:20160207102745j:plain

自宅。顔の露出が中間的だったので、グリーンフィルタをかけてさらに陰影を強調することができた。
f:id:fridaynight:20160207103434j:plain
f:id:fridaynight:20160207103445j:plain

おばあちゃん家の干し芋。子供の顔を明るくしたいので、オレンジフィルタを適用。
f:id:fridaynight:20160208025425j:plain
f:id:fridaynight:20150321151328j:plain

うーん。楽しいけど難しい。いや、変換するのは簡単なんだけど、元のカラー写真を超える強い印象をモノクロで作り出すのが一筋縄ではないということだ。いろいろ遊んでみて、モノクロ写真は奥が深いということだけはわかった。カラーフィルタを使いこなすにはもうちょい修行が必要だな。撮影時にいろいろフィルタをためせる方が勉強になりそうなので、そういう意味ではやっぱりPEN-Fとか欲しくなるなぁ。

OLYMPUS ミラーレス一眼 PEN-F Body SLV

OLYMPUS ミラーレス一眼 PEN-F Body SLV