解決
質問内の具体的な数値は 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を設定していませんか?