色を科学する <番外編>CIE L*a*b*を自分で計算してみよう!
「色を科学する その⑪」でお話ししたCIE 1976 L*a*b*色空間(CIELAB)のExcelでの実際の計算方法です。
アクセス状況を見ると、最近「XYZを自分で計算してみよう!」が一番人気なので、CIE L*a*b*でもニーズがあるかと思い、書いてみました。
L*a*b*値の計算式
CIELABの計算式をおさらいすると↓です。
ここで、XwYWZwはそれぞれ、完全拡散反射面のXYZです。完全拡散反射面とは、入射した光を余すことなくすべての方向に均等に拡散反射する理想的な反射物体(実際には存在しない)で、すべての波長において反射率が1(100%)となります。
簡単に言うと「完全な白」です。したがって、完全拡散反射面の色=照明光自体の色です(詳しくは、「XYZを自分で計算してみよう!」の有料エリアで)。
具体的には、使用、または、想定しているイルミナント(照明光)に応じ、下記のようなデータを使います。これはCIEやJISで規定されています。また、Yが100になるよう正規化(相対化)されています。
「その⑪」でも書きましたが、CIELABをはじめとする均等色空間は、物体色を対象とするので、XYZの絶対値には意味はなく、(輝度=cd/m^2の単位を持たない)白のYを100となるよう正規化したXYZを用います。
各イルミナントによって、XwYwZwがかなり違いますね。色温度が低いAでは、青に「近い」Zが相対的に低く、逆に、色温度が高いD65やCはZが相対的に高くなっています。
ここで、大事なことは、XYZを算出、または、測定した時と同じイルミナントを使う、ということです。分光反射率からXYZを算出する際、D50の分光データを使っていたのに、L*,a*,b*を計算するときのXwYwZwにD65の値を使う、のはNGです。何やっているかわからなくなるので。
さらにいうと、視野角(2度視野/10度視野)も統一しないといけません。
暗い色に対する補正式
上記、L*,a*,b*値の計算式は、XYZそれぞれの完全拡散反射面との比(光源色でいう輝度率みたいなもの) X/Xw, Y/Yw, Z/Zwがそれぞれ0.008856より大きい場合のみです。
例えば、Y/Yw<=0.008856の場合の、L*の式は下記のようになります。
となり、つまり、1/3乗が、
下記、線形の式に置き換わります。
よって、数学的に書くと、CIELABのL*,a*,b*値の計算式は下記のようになります。
なぜ、暗い色に対する補正式が必要なのか?それは、下記式にY=0を代入するとわかります。
ここから先は
¥ 100
この記事が参加している募集
よろしければサポートお願いします。いただいたサポートは今後の記事執筆の活動費に使わせていただきます。