Greyscaleがそのように機能するのはなぜですか?
質問
私の元の質問
RGBピクセルをGreyScale RGBに変換するために、それを読みましたが、使用する必要があります
r_new = g_new = b_new = r_old * 0.3 + g_old * 0.59 + b_old * 0.11
私もそれを読んで理解しています g
人間の目は緑に対してより敏感であるため、重量が高くなります。それを実装すると、結果は、Gimpのような画像エディターの画像を「グレイススケール」に設定することから得られるのと同じであるとわかりました。
これを読む前に、ピクセルをグレースケールに変換するために、それをHSLまたはHSVに変換し、飽和をゼロに設定することを想像しました(したがって、すべての色を削除します)。しかし、これを行ったとき、色も欠いていたとしても、まったく異なる画像出力が得られました。
どうやって s = 0
私が読んだ「正しい」方法とはまったく異なり、なぜ「正しくない」のですか?
回答やその他の研究に基づいた継続的な調査結果
使用する輝度係数は、いくつかの議論の主題であると思われます。さまざまな組み合わせとトゥグリースケールアルゴリズムの結果は異なります。以下は、テレビ標準などの領域で使用されるプリセットです。
- itu-r bt.601(ntsc?)によって定義される係数は
0.299r + 0.587g + 0.114b
- ITU-R Bt.709(新しい)で定義される係数は
0.2126r + 0.7152g + 0.0722b
- 等しい3分の1の係数、
(1/3)(rgb)
, 、に相当しますs = 0
これ 科学記事 さまざまなグレースケールのテクニックとさまざまな画像の結果に加えて、119人の主観的調査を詳述しています。
ただし、画像をグレースケールに変換して「最高の」芸術効果を実現する場合、ほぼ確実にこれらの事前定義係数を使用するのではなく、各チャネルからの寄与を調整して特定の画像に最適な出力を生成します。
解決
これらの変換係数は存在しますが、それらを使用することにあなたを拘束するものはありません。各ピクセルの総強度が変更されていない限り、各チャネルからの寄与は0〜100%の範囲である可能性があります。
画像をグレースケールに変換する写真家は、チャネルミキサーを使用して各チャネル(RGBまたはCMYK)のレベルを調整します。あなたのイメージには、多くの赤と緑があるので、青よりもグレーレベルの強度でそれらのチャネルをより高く表現することが望ましいかもしれません(あなたの意図に応じて)。
これは、イメージの「科学的な」変換とバンドの「芸術的な」組み合わせを区別するものです。
追加の考慮事項は、各バンドのダイナミックな値の範囲であり、グレースケールの画像にそれらを保存しようとしています。たとえば、シャドウやハイライトを強化するには、ブルーバンドの寄与を増やす必要がある場合があります。
他のヒント
ここでのトピックに関する興味深い記事....「人間の目は色で明るさを直線的に検出しないからです」。
これらの係数は古いCRTテクノロジーから来ているように見え、今日のモニター、 カラーFAQ:
1953年のNTSCテレビの導入で現代的なリンを備えたモニターの係数0.299、0.587、および0.114適切に計算された輝度。現代モニターの輝き。
ただし、適切な変換係数が見つかりませんでした。
参照してください RGBからモノクロの変換
使用 s = 0
HSL/HSVで、RGBに変換すると R = G = B
, 、そうするのと同じです r_old * 1/3 + g_old * 1/3 + b_old * 1/3
.
理由を理解するには、を見てください ウィキペディアページ これは、変換HSV-> RGBを説明しています。飽和 s
0になるので、 C
と X
また、そうなるでしょう。あなたは終わるでしょう R_1,G_1,B_1
であること (0,0,0)
そして、追加します m
結果として生じる最終的なRGB値に (m,m,m)
= (V,V,V)
. 。 HSLについても同じですが、結果はそうです (m,m,m)
= (L,L,L
).
編集:わかりました、上記は完全な答えではありませんが、良い出発点です。 RGB値も同じです L
また V
, 、しかし、それはまだどのように依存します L
と V
もともと計算されたのは、再び参照してください ウィキペディア. 。使用した変換に使用したプログラム/式のようです 1/3 * R + 1/3 * G + 1/3 * B
ソリューションまたは他の2つのいずれか(ヘクスコン/バイエクスコン)。
したがって、結局のところ、HSL/HSVを使用すると、以前に使用する式を決定し、後でRGB Grayscale値への変換が最後のコンポーネントを分離する必要があることを意味します。