2015年8月25日火曜日

ColorChecker

ColorCheckerの色の値を正確に知るための調査。
その為には 「分光反射率」 と 「光源の分光分布」 と 「XYZ等色関数」 を得る必要がある。

このページからたどれば大体必要なものは得られそう。
ColorChecker - Wikipedia https://en.wikipedia.org/wiki/ColorChecker

XYZ等色関数

波長の分布からXYZ色に変換するための各波長ごとのウェイトのこと
  • CIEが定めたCIE_RGBの原色を使った加法混色であらゆる色を表そうとするとこの組み合わせでは彩度が足りなくて再現できない色が在り、その場合は足りない分は負の値とするRGB等色関数ができたが、もっと扱いやすいようにこれを変形させて負の値が無いXYZ表色系が作られた。この等色関数がXYZ等色関数。
  • CIE 1931(2°視野) と CIE 1964(10°視野) があるがほとんどCIE 1931(2°視野)が使用されていると思われる。
  • 一般的には波長に対する等色関数の範囲は380-730で扱われていると思われるが広範囲のものでは360-830nmもある。
  • CIEが定めたRGB原色は1931年当時入手しやすかった水銀の輝線スペクトルから選ばれた。
    • R = 700.0nm 可視域最長のキリのよい波長
    • G = 546.1nm 水銀の輝線スペクトルより
    • B = 435.8nm 水銀の輝線スペクトルより

XYZ等色関数についての補足

  • RGB等色関数とマイナス値。
    • XYZ等色関数の基となっているのがRGB等色関数
    • 等色実験によリファレンスの純色と比べてRGBの加法混色では彩度が足りなかったところが負の値となる。
    • 白いところほど大きな負の値になっている。
  • 下記の色は波長をCIE_RGB変換したもの。(γ=2.2の補正。また青が飽和しないよう1.96で割っている)

    • これは波長のエネルギーはすべて同じとしたときの見え方。
    • 近紫外線より大きな波長から徐々に紫が見えてきて、青、緑、黄緑、黄色、橙、赤に感じた後は近赤外線になるにつれて見えなくなってくる。
    • 1050 nmの赤外線が見えるという話や子供で310nmの紫外線が見えるという話もあるhttps://en.wikipedia.org/wiki/Light#cite_note-Sliney1976-10
  • 上記の画像で左側があまり紫に見えないのはモニタの色空間がCIE_RGBとは違うから。sRGBの色に変換したのがこれ
CIE 1931 observer
  • 2度視野等色関数ともいう
  • 視角約 1°∼約 4°の視野に関して扱う

CIE 1964 observer
  • 10度視野等色関数ともいう
  • 視角 4°以上に対して扱うもの

少しマイナーな等色関数

  • modified by Judd (1951)
  • modified by Judd (1951) and Vos (1978)
CIE1931等色関数の勧告後、Judd,Vosにより V(λ) の修正が提案され、それに伴ってCIE1931等色関数にも修正が必要になると考えられた。また、StilesとBurchによる等色関数の測定においても、被験者の等色関数データの平均とCIE等色関数には有意な差があることが報告された。しかし、CIEは、これらの差は標準を変更するほどの違いではないとして、現在でも2°視野用にCIE1931等色関数が国際標準として利用されている。
via:六原色ディスプレイを用いた等色実験

XYZ等色関数のリファレンス

CIE - INTERNATIONAL COMMISSION ON ILLUMINATION
http://www.cie.co.at/index.php/LEFTMENUE/index.php?i_ca_id=298
380nm-780nm 5nm step

JIS Z 8781-1:2012 測色−第1部:CIE測色標準観測者の等色関数
http://kikakurui.com/z8/Z8781-1-2012-01.html
360-830nm 1nm step

File Exchange - MATLAB Central
http://www.mathworks.com/matlabcentral/fileexchange/7021-spectral-and-xyz-color-functions/content/colorMatchFcn.m
Judd (1951) and Vos もある。一個下のリンクをリファレンスにしている↓

Colour matching functions
http://cvrl.ioo.ucl.ac.uk/cmfs.htm
各種等色関数を出力してくれる

色空間の変換 (1)
http://w3.kcua.ac.jp/~fujiwara/infosci/colorspace/colorspace1.html
RGB座標からXYZ座標への変換の説明が記載

Derivation of the 1931 Standard Observer
http://www.cis.rit.edu/mcsl/research/1931.php CIE1931_RGB_v2.xls
RGB等色関数のテーブルが記載。上のグラフで使用したもの。

分光反射率

可視光領域の各波長に対して反射した割合の分布を表したもの
分布量が右側に集中していれば赤い物、右ほど青、中間なら緑色、全波長を均等に強く反射すれば白、弱ければ黒といった具合

主に下の2つのデータが使われていると思う。

Noboru Ohta (1997) 

http://www.cis.rit.edu/research/mcsl2/online/CIE/MacbethColorChecker.xls
 もとはコロナ社大田登出版の書籍に掲載されているものらしい。
 5nmステップ、範囲は380nm-780nmの範囲

BabelColor Avg

http://www.babelcolor.com/download/ColorChecker_RGB_and_spectra.xls
 BabelColorというところが計測した平均値が使われている。時期的にはこちらのほうが新しい。
 10nmステップ、範囲は380nm-730nm

Noboru Ohta (1997) とBabelColor Avgの比較

分光反射のプロットと分光反射から得られるxyY,RGBがどの程度の差があるのか知りたかったので比較した。
  • 等色関数はCIE 1931 observer
  • ステップは分光反射、等色関数、ともに5nm
  • 光源を無視したxyY。(全波長でエネルギーが均一なE光源ともいえる)
  • RGBは8bit表示での比較。(xyYからCEI_RGBに変換後ガンマ2.2の補正をしたもの)



光源の分光分布

光源の各波長に対してどのくらい強度があるかの分布

下の図は5nmステップの分光分布データから求めたXYZ値とsRGB色を表したもの。
illuminant A illuminant C

illuminant D50黒体輻射 5000K

illuminant D65黒体輻射 6500K

illuminant Eilluminant F7
↑nikqさんのツイートにより間違いが指摘されていたので修正しました。6500Kの画像が5500Kのものになっていました

黒体輻射

黒体とは真っ黒な物体であり、可視光以外から見ても黒いためすべての波長を吸収する理想の物体のこと。
黒体を加熱するとそれに伴った電磁波が発生し、この黒体の温度(ケルビン)と発生する電磁波の各波長の強度の関係はプランクの法則によってわかる

鉄が熱せられて赤くなり、もっと熱すると白くなるのも似た現象。
白熱灯のフィラメントが高温になるほど赤味が少なくなるのも同じ。
太陽の色も温度が関係しているし、星が青白いものは高温だから

0Kが絶対零度で摂氏-273.15℃のこと。人体も赤外線を放射している。

黒体輻射6500KとD65は照明としては似た結果になるが、スペクトルではD65はガタガタしている。
これは大気による吸収が原因で特定の波長が吸収されるため。

温度と分光放射輝度
 下記は両軸を対数として特定の温度の分光放射輝度をプロットしたグラフ
 273kは摂氏0℃、373Kは摂氏100℃。(もちろん可視光としては見えない)


ウィーンの変位則
 電磁波のピークの波長は λ=2897/T [μm] として求められる
 例えば6000Kの場合は λ = 2897 / 6000 = 0.48 となり、480nmの可視光がピークとなる。
 人体の場合は λ = 2897 / (36+273) = 9.375 となり 9.4μmの赤外線がピークとなる

標準光源などのリファレンス

CIE - INTERNATIONAL COMMISSION ON ILLUMINATION
http://www.cie.co.at/index.php/LEFTMENUE/index.php?i_ca_id=298
A光源、D65光源のテーブルが記載。

http://ww3.isaco.ir/PERSIAN/mohandesi/STANDARD/SAPCO%201/JIS/Z8701.pdf
C光源のテーブルが掲載。もうリンクが切れているみたい。(色彩科学ハンドブックにも同じものがある)

Appendix 5: Relative Spectral Power Distributions of Illuminants - Measuring Colour - Hunt - Wiley Online Library
http://onlinelibrary.wiley.com/doi/10.1002/9781119975595.app5/pdf
A,B,C,D系,F系,黒体輻射のすべてを網羅している。


ColorCheckerの値

上記で得た分光反射率と光源の分光分布を掛け合わせたものをXYZ等色関数のウェイトで足し合わせればXYZ色空間の色が求められる
RGBに変換する場合はXYZからリニアなR'G'B'に変換したあとγ補正を行い最終的なRGBとする

BabelColorを参考に同じ値になるか確かめた

↓リファレンス
http://www.babelcolor.com/main_level/Tutorials.htm
ColorChecker_RGB_and_spectra.xls
このエクセルのタブ「RGB_8_bit」のTabel1 Babelcolor Avg. の値をリファレンスとした

XYZの値

分光反射のデータは[BabelColor Avg]を使い[D65光源]を当て、[CIE 1931 observer]の等色関数を使用。


白いラインが光源を受けた後の分光反射で数値はXYZ値。
塗られている色はXYZ空間のガンマ2.2の補正したもの。

RGBの値

XYZから各色空間用の変換行列でR'G'B'に変換し、仕様のガンマ補正をかける。

上から[sRGB]、 [AdobeRGB]、 [ProPhotRGB]




BabelColorの値。

via:ColorChecker_RGB_and_spectra.xls 一部を切り出したもの
ほとんど一緒の結果となった。(一部の値で1/255の誤差がある)

0 件のコメント:

コメントを投稿