理論的には、カラー画像を白黒に変換する適切な方法は、輝度
チャンネルを使用することです。輝度とは、特定の色に対して私たちの目がどれほど敏感であるか、つまり、どのくらい「明るい」かを示す尺度です。残念ながら、GimpはB&Wに変換する多くの方法を提供していますが、適切な方法ではありません。:-(
これは、さまざまな方法を比較するために使用したテスト画像です。あなたはそれをダウンロードして自分で見ることができます:
左側の三角形は、原色R、G、Bを含む平面のカラーキューブを通る断面です。線形 -RGB空間で断面を作成し、
それをsRGBにガンマエンコードしました
。右側の三角形は、以前の「適切な」白黒レンダリング、つまりガンマエンコードされた輝度です。この画像を白黒に変換すると、次のようになります。
- 緑は青より明るい色ですが、多くの変換方法はこれを認識せず、すべての原色を同じ明度でレンダリングします
- デサチュレート/ライトネスにはこの問題があり(すべてのプライマリに同じ重み)、さらに三角形にいくつかの人工的な線が生成されます
- 彩度を下げる/平均すると、すべての原色に等しく重み付けされますが、画像はより滑らかになります。彩度の低い色よりも彩度の高い色を暗くする傾向があるだけです
- 彩度/明度はかなり近づきますが、彩度の高い青と赤は暗くレンダリングされます。技術的には、これは
輝度チャンネルです。つまり、ガンマのデコード/エンコードを忘れることを除いて「正しい」ものです
- グレースケールへの変換は、彩度を下げる/明度と同じです
- 飽和した色がある場合、単一のR、G、またはBチャネルを維持すると本当に奇妙に見える
- HSVからのVチャネルはすべてのプライマリを白としてレンダリングしますが、これは非常に不自然です
- LABからのLチャネルは、グレーを維持しないため、ひどいです(明るすぎる)
- ITU R709からのYチャネルは、デサチュレート/輝度と同じ輝度です
- ITU R470のYチャネルも一種の輝度ですが、sRGBの重みとは異なるR、G、Bの重みを使用します。実際には、これが最も自然なレンダリングだと思います。
さて、これが最も「自然な」レンダリングを得るための理論です。実際には、代わりに、手元の画像により適したレンダリングを使用することをお勧めします。たとえば、チャンネルミキサーの赤をオーバーウェイトにして、肌の色調を明るく滑らかにしたり、青空と白い雲のコントラストを上げたりすることができます。私の個人的な結論は:
- 画像に強く飽和した色がない場合、どの方法でも妥当なレンダリングを提供し、LABからLを節約する必要があります。私はそれからあまり気にせず、それらのいずれかを使用し、おそらくグレースケールに変換するか、彩度/明度(同じです)に変換します
- 飽和色があり、最も自然なレンダリングが必要な場合は、ITU R470のYチャネルを使用します
- さらに制御したい場合は、チャネルミキサーを使用し、およそ(1/3 R、1/2 G、1/6 B)から始めて、好みに合わせて調整します。
- いずれにせよ、変換の直後に曲線ツールを使用して画像を編集し、心地よいコントラストと明るさを得ます。