質問

に変換する時、RGBからグレースケール、その特定のウエイトをチャネルのR、G、Bべき適用されます。これらのウェイト:0.2989,0.5870,0.1140.

その理由は異なる人間の知覚/感性に向けてこれら三つの色をします。ということもありとも言えるこれらの値のハッシュコードを計算するNTSC信号です。

しかし、私のバランスをとりながお薦めする。えられます。

またこれらの前の質問: こちらのこちらの.

役に立ちましたか?

解決

質問内の具体的な数値は CCIR 601 からのものです (以下の Wikipedia リンクを参照)。

RGB->グレースケールを微妙に異なる数値/異なる方法で変換すると、 通常のコンピューター画面では、大きな違いはまったく見られません 通常の照明条件下で、試してみてください。

色全般に関するその他のリンクは次のとおりです。

ウィキペディア ルマ

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

コリン・ウェア著『情報視覚化』、isbn 1-55860-819-2 のカラーに関する第 4 章。Ware in へのこの長いリンク Books.google.comうまくいくかもしれないし、うまくいかないかもしれない

ケンブリッジカラー :優れた、よく書かれている "チュートリアルは、どのように取得し、解釈し、デジタル写真を処理する 手順よりもコンセプトを重視するビジュアル指向のアプローチを使用」

「リニア」RGBと「ノンリニア」RGBに遭遇した場合、 これは、これに関する私自身への古いメモの一部です。繰り返しますが、実際には大きな違いは見られません。


RGB -> ^ガンマ -> Y -> L*

色彩科学では、html rgb( 10%, 20%, 30% )、 は「非線形」と呼ばれ、 ガンマ補正済み。「線形」値は次のように定義されます。

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

ここで、多くの PC ではガンマは 2.2 です。通常の R G B は R' G' B' (R' = Rlin ^ (1/gamma)) と表記されることもあります。 (純粋主義者は舌打ちする)しかし、ここでは「.

CRTディスプレイの明るさはRGBlin = RGB ^ガンマに比例します。 したがって、CRTの50%グレーはかなり暗いです。.5 ^ 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

「...知覚の均一性を目指しており、人間の明るさの認識と非常に一致しています。」 ウィキペディア ラボ用色空間

他のヒント

私はこの出版物は、以前同様の質問に対する回答の中で参照することを発見しました。それは非常に便利です。

http://cadik.posvete.cz/color_to_gray_evaluation/する

これは、異なる結果とグレースケール画像を生成するために、異なる方法の「トン」を示しています!

RGBをグレースケールに変換するためにC言語でHERESにいくつかのコード。 階調変換にRGBのために使われる実際の加重は0.3R + 0.6G + 0.11Bです。 これらの重みは、あなたが一緒にプレイすることができますので、絶対的に重要なアレント。 私はそれら0.25R + 0.5G + 0.25Bてきました。それは少し暗いイメージを生成します。

注:次のコードは、XRGB 32ビットピクセルフォーマットを想定

unsigned int *pntrBWImage=(unsigned int*)..data pointer..;  //assumes 4*width*height bytes with 32 bits i.e. 4 bytes per pixel
unsigned int fourBytes;
        unsigned char r,g,b;
        for (int index=0;index<width*height;index++)
        {
            fourBytes=pntrBWImage[index];//caches 4 bytes at a time
            r=(fourBytes>>16);
            g=(fourBytes>>8);
            b=fourBytes;

            I_Out[index] = (r >>2)+ (g>>1) + (b>>2); //This runs in 0.00065s on my pc and produces slightly darker results
            //I_Out[index]=((unsigned int)(r+g+b))/3;     //This runs in 0.0011s on my pc and produces a pure average
        }

のための色よくある質問をチェックこれに関する情報。これらの値は、我々のディスプレイに使用RGB値の標準化から来ます。彼らは、元のNTSC規格ではなく、現代のモニターのために使用している値であり、実際として、色のFAQによると、使用している値は、古くなっています。

ここでは、これらの番号(または同様のもの)を得た方法についての論文です

<のhref = "https://web.archive.org/web/20160303201512/http://www.cis.rit.edu/mcsl/research/broadbent/CIE1931_RGB.pdf" のrel = "nofollowをnoreferrer" > https://web.archive.org/web/20160303201512/http://www.cis.rit.edu/mcsl/research/broadbent/CIE1931_RGB.pdf の

えられます。

の"源"の係数を掲載しているのNTSC仕様を見ることができるで Rec601特性のテレビ.

究極のソース"は、CIE1931年頃の実験に人間の色との認識を示した。のスペクトル応答の人間のビジョンは一様ではありません。実験への重み付け三刺激値との認識を示した。当社のL、M、S円錐1 に敏感な光の波長を特定して"赤"、"緑"、"ブルー"(それぞれの場所である三刺激色に由来しています。●2

の線形光3 スペクトルの価格下落を過大に評価のためのsRGB(Rec709)は次のとおりです。

Rlin *0.2126+Glin *0.7152+Blin *0.0722=Y

これらのsRGBとRec709colorspaces、を代表するコンピュータモニター(sRGB)またはハイビジョンモニター(Rec709)についての詳細は、ITUのための書類 Rec709 とも BT.2380-2(10/2018)

脚注 (1)コーンの色を検出細胞の眼の網膜.
(2)しかし、選ばれた三刺激の波長ではないの"ピーク"の各コーン型の代わりに三刺激値を選ぶようになると刺激が特定のコーン型を大幅に上も、すなわち分離の難しい。
(3)必要なリニアライズおsRGB価値をつける前に測した。いについて 他の答えます。

これらの値は、特に色盲ている人々のために、人から人へと変わります。

は、すべてこれは本当に必要な、人間の知覚やCRT、LCDが変化することになる対が、R G Bの強度は、なぜL = (R + G + B)/3及びL、L、Lに新しいRGBを設定していませんか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top