OK, awake and refreshed
To Calculate CIE L,a,b,C,h
The Actual formula's are below.
VB Code:
L=116(Y/Yn)^1/3-16 'for Y/Yn > 0.008856
L=903.3(Y/Yn) 'for Y/Yn <=0.008856
a=500[f(X/Xn)-f(Y/Yn)]
b=200[f(Y/Yn)-f(Z/Zn)]
C=(a^2+b^2)^1/2 'pythagoras
h= arctangent(b/a)
' for X/Xn,Y/Yn,Z/Zn > 0.008856
f(X/Xn)=(X/Xn)^1/3
f(Y/Yn)=(Y/Yn)^1/3
f(Z/Zn)=(Z/Zn)^1/3
' for X/Xn,Y/Yn,Z/Zn <= 0.008856
f(X/Xn)=7.787(X/Xn)+16/116
f(Y/Yn)=7.787(Y/Yn)+16/116
f(Z/Zn)=7.787(Z/Zn)+16/116
The values X,Y,Z are the tristimulus values of the colour.
They are calculated by Multipling the 31 reflectance points with the standard observer weightings and the power distribution of the light source. Most of this is already done in the D6510.ILL file I posted earlier. ( first column for X, second for Y, third for Z.)
ie: Calculate X
Column1 D6510.ILL( for X)
0.137*Reflectance Point1
0.676*Reflectance Point2
1.603...etc
2.451
3.418
3.699
3.064
1.933
0.802
0.156
0.039
0.347
1.070
2.170
3.397
4.732
6.070
7.311
8.291
8.634
8.672
7.930
6.446
4.669
3.095
1.859
1.056
0.570
0.274
0.121
0.058*Reflectance Point31
X= sum of these calculations 'Depending on how you have your reflectance values you may need to divide by 100, so 1= 100% reflectance.
Xn,Yn,Zn are simply the tristimulus values of the normalised illuminant. ( the sum of each column in D6510.ILL )
in this case Xn=94.81, Yn=100.00 , Zn=107.304
So thats pretty much it, once you have X,Y,Z it is just a matter of passing through the equations at the top.
If you step through the code in the ModXYZ and ModLab modules you should be able to get an idea.
A couple of important notes..
These values are the 'Absolute' L, a, b for that colour in colour space.
Therefore they cannot be compared to L,a,b values using different conditions.
They can only be compared with Lab values calculated using D65 ( simulated daylight )
and a 10 degree observer.
Also different spectrophotometers have different geometries whcih will also affect readings. So, although colour difference equations will hold true because they are relative. Absolute L,a,b values will not.
Hope this helps.
Let me know if you have any problems.