20

私の元の質問

RGBピクセルをグレースケール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に違うのですか? また、なぜそれが「間違っている」のですか?

回答やその他の研究に基づく進行中の調査結果

どの輝度係数を使用するかは、議論の対象になっているようです。さまざまな組み合わせとグレースケール アルゴリズムによって、異なる結果が得られます。以下は、TV 規格などの分野で使用されるプリセットの一部です。

  • 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 人の主観的調査について詳しく説明しています。

ただし、画像をグレースケールに変換する場合、「最高の」芸術的効果を達成するために、これらの事前定義された係数を使用するのではなく、特定の画像に最適な出力を生成するために各チャネルからの寄与を調整することはほぼ確実です。

4

4 に答える 4

10

これらの変換係数は存在しますが、それらを使用することに縛られるものは何もありません。各ピクセルの合計強度が変わらない限り、各チャネルからの寄与は 0 から 100% の範囲で何でもかまいません。

画像をグレースケールに変換する写真家は、チャネル ミキサーを使用して各チャネル (RGB または CMYK) のレベルを調整します。画像には多くの赤と緑があるため、(意図によっては) これらのチャネルを青よりもグレー レベルの強度でより高度に表現することが望ましい場合があります。

これが、画像の「科学的な」変換とバンドの「芸術的な」組み合わせを区別するものです。

追加の考慮事項は、各バンドの値のダイナミック レンジであり、それらをグレースケール イメージに保持しようとします。たとえば、シャドウやハイライトをブーストするには、ブルー バンドの寄与を増やす必要がある場合があります。

于 2011-03-15T13:29:51.697 に答える
5

ここでのトピックに関する興味深い記事....「人間の目は明るさを色で線形に検出しないため」.

http://www.scantips.com/lumin.html

于 2011-03-15T12:41:32.607 に答える
3

Color FAQから、これらの係数は古い CRT テクノロジーに由来するものであり、今日のモニターにはうまく適応していないようです。

係数 0.299、0.587、および 0.114 は、1953 年に NTSC テレビが導入された当時の蛍光体を備えたモニターの輝度を適切に計算しました。これらの係数は、以下のセクション 11 で説明するビデオ輝度の計算にはまだ適しています。ただし、これらの係数は正確に計算されません。現代のモニターの輝度。

しかし、適切な変換係数が見つかりませんでした。

RGB からモノクロへの変換も参照してください。

于 2011-03-15T12:40:47.070 に答える
3

s = 0HSL/HSV で使用して RGB に変換するR = G = Bと になるので、 を行うのと同じr_old * 1/3 + g_old * 1/3 + b_old * 1/3です。

その理由を理解するには、ウィキペディアのHSV->RGB 変換について説明しているページをご覧ください。彩度sは 0 になるのでC、 0 にXなります。あなたはR_1,G_1,B_1いることになり、最終的なRGB値に(0,0,0)追加して=になります。HSL についても同様で、結果は= ( ) になります。m(m,m,m)(V,V,V)(m,m,m)L,L,L

編集:OK、上記は完全な答えではないことを理解しましたが、それは良い出発点です。RGB 値は、 または のいずれかですべて同じになりますが、Lとが最初Vにどのように計算されたかによって異なります。Wikipediaを参照してください。変換に使用したプログラム/数式は、ソリューションまたは他の 2 つ (hexcone/bi-hexcone) のいずれかを使用したようです。LV1/3 * R + 1/3 * G + 1/3 * B

結局のところ、HSL/HSV を使用するということは、どちらの式を先に使用するかを決定する必要があることを意味し、後で RGB グレースケール値に変換すると、最後のコンポーネントが分離されるだけです。

于 2011-03-15T12:44:23.527 に答える