Белая точка CIE 1931 не в x=1/3
, y=1/3
, а белый цвет не x=1/3
, y=1/3
, Y = 1/3
.
Согласно Википедии :
Координаты цветового пространства CIE 1931 для D65 равны
х = 0,31271
у = 0,32902
Поскольку D65 представляет белый свет, его координаты также являются белой точкой, соответствующей коррелированной цветовой температуре 6504 К. Рек. 709, используемый в системах HDTV, усекает координаты CIE 1931 до x = 0,3127, y = 0,329.
Значение x = 1/3, y = 1/3 отличается:
Свет с плоским спектром мощности по длине волны (равной мощности в каждом интервале 1 нм) соответствует точке (x, y) = (1/3, 1/3).
Важно: D65 не является «плоским спектром мощности» .
В компьютерных системах (ПК) используется цветовой формат sRGB .
В sRGB цветовые компоненты находятся после гамма (в отличие от CIE 1931, который применяет линейную кривую).
В цветовом пространстве xyY x, y - цветность, а Y - яркость.
x=0.31271
, y=0.32902
- это цветность без яркости и применяется серая цветность.
Для белого цвета используйте Y = 1
Rec. 709, используемый в системах HDTV, усекает координаты CIE 1931 до x = 0,3127, y = 0,329
Позволяет вычислить sRGB x=0.3127
, y=0.329
, Y = 1
:
X = (Y/y)*x = 0.95046
Y = 1
Z = Y/y*(1-x-y) = 1.0891
Rlinear 3.240600 -1.537200 -0.498600 X 0.99984
Glinear = -0.968900 1.875800 0.041500 * Y = 1.00010
Blinear 0.055700 -0.204000 1.057000 Z 1.00007
Предположим, что результат 1, 1, 1
.
На последнем этапе применяется гамма для преобразования "линейного sRGB" в sRGB.
Поскольку все значения равны 1, результат равен sRGB = 1, 1, 1
.
Мы можем повторить вычисление для Y = 0.2
, и в результате получим Linear sRGB = 0.2, 0.2, 0.2
.
Применить гамму:
gamma(u) = 1.055*u^(1/2.4) - 0.055
для u > 0.0031308
1.055*0.2^(1/2.4) - 0.055 = 0.48453
Так что sRGB = 0.48453, 0.48453, 0.48453
.
Для преобразования в стандартный диапазон [0, 255] (один байт на канал цвета) нам нужно масштабировать до 255 и округлить результат: RGB888 = 124, 124, 124
.