Question
Using D65 illuminant
and a 2° observer
, what are the values of sRGB red
, green
, blue
, cyan
, magenta
, and yellow
in CIE L*ab
color space?
Here are the coordinates of my white point:
95.047, 100, 108.883
Problem
I tried a dozen different tools (both free and paid, like Photoshop), and noticed not a single one can agree on what red
(and the other colors) is in CIE Lab, even when using the same illuminant, observer, and white point.
What I tried
I made a benchmark using different tools. Here is a sample using the following online tools:
┌───┬─────────────┬────────────────────────┬───────────────────────┬─────────────────────┐
│ │ Rgb │ Lab (aspose.app) │ Lab (colorizer.org) │ Lab (nixsensor.com) │
├───┼─────────────┼────────────────────────┼───────────────────────┼─────────────────────┤
│ R │ 255, 0, 0 │ 54.291, 64.644, 55.913 │ 53.23, 80.11, 67.22 │ 53.24 80.09 67.20 │
│ G │ 0, 255, 0 │ 87.819, -63.417, 64.79 │ 87.74, -86.18, 83.18 │ 87.73 -86.18 83.18 │
│ B │ 0, 0, 255 │ 29.568, 54.63, -89.624 │ 32.3, 79.2, -107.86 │ 32.30 79.19 -107.86 │
│ C │ 0, 255, 255 │ 90.666, -40.526, -11.9 │ 91.12, -48.08, -14.14 │ 91.11 -48.09 -14.13 │
│ M │ 255, 0, 255 │ 60.169, 74.832, -48.40 │ 60.32, 98.25, -60.84 │ 60.32 98.23 -60.82 │
│ Y │ 255, 255, 0 │ 97.607, -12.6, 74.715 │ 97.14, -21.56, 94.48 │ 97.14 -21.55 94.48 │
└───┴─────────────┴────────────────────────┴───────────────────────┴─────────────────────┘
These results seem somewhat similar in the L
channel, but the a
and b
values are inconsistent from one tool to the other.
Looking at the source from cielab.io, I can see they use the exact same illuminant, observer, and white point as I do.
const STD_ILL_D65: XYZ = { x: 0.950489, y: 1, z: 1.08884 };
So what is going on here?
Why can’t I find anywhere a standard definition of red, green, blue, etc in CIE Lab using D65 illuminant and 2° observer?
2
Answers
According to the sRGB specification, the XYZ coordinates of the
sRGB
primaries areUsing the equations from Bruce Lindbloom, we can interpolate these coordinates to the
CIE L*a*b*
color space.Assuming
L
is in range[0, 100]
,a
is in range[-128, 127]
, andb
is in range[-128, 127]
, the coordinates of sRGB red, green, and blue inCIE L*a*b*
usingD65 illuminant
and2° observer
areYour question has unfortunately an infinite amount of answers because they are an infinite amount of RGB spaces (thus the infinite quantity of primaries and secondaries).
You need to specify which RGB space your values are encoded with, ideally which gamut, whitepoint and colour component transfer function, Then, with that, you can obtain a single answer.