1. ホーム
  2. image-processing

[解決済み] RGBからグレースケール/強度への変換

2022-05-16 16:11:47

質問

RGBからグレースケールに変換する際、R、G、Bの各チャンネルに特定の重みを適用する必要があると言われています。その重みとは 0.2989, 0.5870, 0.1140.

この理由は、この3つの色に対する人間の知覚・感性が異なるためと言われています。また、これらはNTSC信号を計算するために使用される値であると言われることもあります。

しかし、これに関する良い参考文献がウェブ上に見つかりませんでした。これらの値の出典は何でしょうか。

これらの以前の質問も参照してください。 ここで はこちら .

どのように解決するのですか?

問題文中の具体的な数値は、CCIR601のものです( ウィキペディアの記事 ).

RGB -> グレースケールを、微妙に異なる数値・異なる方法で変換した場合。 通常の照明条件下で、通常のコンピュータの画面上では、まったくと言っていいほど違いがわかりません。

色に関する一般的なリンクをいくつか紹介します。

ウィキペディア ルーマ

ブルース・リンドブルーム の優れたウェブサイト

Colin Ware著「Information Visualization」(ISBN 1-55860-819-2) の第4章「色」について。 のWareへのこの長いリンクは books.google.com にある Ware 氏への長いリンクは、機能するかしないかわかりません。

ケンブリッジカラー : 優れた、よく書かれた デジタル写真をどのように取得し、解釈し、処理するかについてのチュートリアルです。 手順よりもコンセプトを重視した視覚的なアプローチによる、優れたチュートリアルです。

線形と非線形の RGB に遭遇した場合。 これは、この件に関する古いメモの一部です。 繰り返しになりますが、実際には大きな違いは見られません。


### RGB -> ^gamma -> Y -> L* です。

色彩学では、html rgb( 10%、20%、30% )のように一般的なRGB値を は、quot;Nonlinear" または ガンマ補正 . 線形(Linear)値とは、次のように定義されます。

Rlin = R^gamma,  Glin = G^gamma,  Blin = B^gamma

ここで、γは多くのPCで2.2です。 通常のR G BはR' G' B' (R' = Rlin ^ (1/γ))と書かれることもある。 (と書かれることもありますが(純粋な人は舌打ちします)、ここでは「.」を削除します。

CRTディスプレイの明るさは、RGBlin = RGB ^ ガンマに比例します。 したがって、CRT の 50% グレーはかなり暗く、0.5 ^ 2.2 = 最大輝度の 22% となります (液晶ディスプレイはもっと複雑で、2.2 = 最大輝度の 22% です)。 (LCDディスプレイはもっと複雑です。 さらに、一部のグラフィック カードではガンマを補正します)。

という明るさの尺度を得るには L* を得るには、まずRGBを まず、R G B を 255 で割って、次のように計算します。

Y = .2126 * R^gamma + .7152 * G^gamma + .0722 * B^gamma

これは Y で、XYZ色空間における色彩の指標となるものです。 (実際の計算式は正確には x^gamma ではありませんが、近いものです。 最初のパスでは x^gamma を使ってください)。

最後に

L* = 116 * Y ^ 1/3 - 16

知覚的な均一性を追求し、人間の明るさの知覚と密接に一致します。 ウィキペディア Lab色空間