• ベストアンサー

RGBを三刺激値に変換(?)

3CCDカメラで各R,G,Bごとに画像を出力してRの画像、Gの画像、Bの画像、 を取得しました。 そこで、画素の濃度のMaxが255で、各画像の同じ座標の 画素が例えばRの画像:100、Gの画像:200、Bの画像:50、だったとします。この値を、三刺激値のXYZで表現するにはどうしたら良いでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
noname#17230
noname#17230
回答No.2

ご質問者さんも他の回答者さんも、大いなる勘違いがあるようですね。 > この値を、三刺激値のXYZで表現するにはどうしたら良いでしょうか。 できませんよ。そんなこと。 ご質問のRGBの値は、色彩分析で言うところのきちんと定義通りに 測定・規格化されたRGBの強度になど全くなっていません。なので、 直接XYZ三刺激値に換算することなんぞできません。 それは、単に24bitカラーでの8bit分解能でデジタル色を合成する 元データです。それがビデオカード経由でCRTディスプレイやカラー プリンタに出力されて初めて「色」になるわけですが、普遍的な(世界 標準の)きちんとしたカラーマッチングが成されていない限り、不偏な 「色表現」にはなり得ません。分かりますよね? すなわち、同じ(R,G,B)=(100,200,50)であっても、出力系が 異なれば「違う色」になる、これではXYZ三刺激値なんぞには変換 できる訳などありません。

gasgas01
質問者

補足

回答ありがとうございます。 光源など測定時の条件を定義どうりに測定を行った結果ならば #1でかかれている変換式で変換できるのでしょうか。 また、色を計測する時の条件はなにで規格化されていて どのような条件になっているのでしょうか。

その他の回答 (2)

  • c80s3xxx
  • ベストアンサー率49% (1634/3294)
回答No.3

カメラの撮像系からその後の信号処理を経て0-255のデジタル値を得るまでの,全体を通しての入出力特性を測定しない限り,話がはじまりません. 撮影条件等以前の問題です.

  • ma-tang
  • ベストアンサー率56% (31/55)
回答No.1

RGB→XYZ変換式を使用するのが一般的です。 変換式は、 X = 0.412453*R + 0.35758*G + 0.180423*B Y = 0.212671*R + 0.71516*G + 0.072169*B Z = 0.019334*R + 0.119193*G + 0.950227*B です。 この式のR,G,Bそれぞれに画素値を代入すれば求められます。 記入ミスがあるかもしれないので、 http://image-d.isp.jp/commentary/color_cformula/XYZ.html で確認してみてください。 他にも「RGB XYZ 変換」等と検索すると参考サイトが多数みつかると思いますよ。 出力したR,G,B各画像の全てのピクセルに対してXYZ値を求めたいのであれば、膨大な計算量になるので、RGB→XYZ変換のプラグラムを組む必要があります。

gasgas01
質問者

お礼

ありがとうございます。変換式参考にさせていただきます