Почему цвета на диаграмме цветности CIE xyY 1931 года белые? - PullRequest
2 голосов
/ 19 июня 2019

Когда мы смотрим на диаграмму цветности CIE 1931 года, представленную в плоскости xy пространства xyY, она отображает белый цвета (или близко к белому) в точках яркости, таких как точка D65, выделенная здесь E .

1931 cie chromaticity diagram

Но почему это так? Точка для D65 должна быть представлена ​​в x = 0.33, y = 0.33. Учитывая формулу Y = 1 - x - y, не означает ли это, что Y равен 0,34?

Коррелят sRGB или xyY при 0.33,0.33,0.34 равен 158.4182, 155.5676, 176.8565 в соответствии с каждым преобразователем , который я нашел. Это светло-коричневый цвет, а не почти белый, который можно увидеть на каждой диаграмме цветности 1931 года.

Кажется, мне нужно масштабировать Y, чтобы получить правильное значение яркости для каждого канала.

Используя формулу Y = 1 - x - y, моя диаграмма выглядит как приглушенная диаграмма:

Wrong chromaticity diagram

Что я не понимаю?

Редактировать

Установка Y = 1, и диаграмма выглядит лучше, как показано ниже.

enter image description here

Редактировать

Теперь выглядит следующим образом.

enter image description here

Ответы [ 2 ]

1 голос
/ 20 июня 2019

Существует некоторая неточность в интерпретации диаграмм цветности.

CIE xyY - это 3D фигуры. Часто мы видим только проекции (часто это не пересекающаяся плоскость, а просто проекция).

Одной из распространенных проекций является «аддитивная» диаграмма цветности xy. Вы можете заметить это, потому что у него желтый на границе, а белый где-то около центра. В такой проекции вы показываете максимальный Y с учетом цветности x, y.

Общим является также «вычитающая» диаграмма, как и ваша вторая. Нет желтого, нет белого. Эта диаграмма содержит только субтрактивную смесь основных цветов, поэтому более яркие цвета - это основные цвета, и между ними темнеет.

Примечание: обычно диаграмма цветности также расширяется и из гаммы, поэтому основные цвета больше не являются настоящими основными цветами, и белый не может быть белым, а желтый может быть обрезан, как ваши диаграммы. Вы можете сначала попробовать треугольник между праймериз, а затем расширить. Проще отладить.

Белый будет только сверху 3D фигуры. В первом случае вы берете внешнюю поверхность гаммы, поэтому вы получаете белый цвет. Во втором случае вы получаете плоскость внутри фигуры, поэтому вы никогда не будете белыми. Но это все еще диаграмма цветности xy.

В вашем случае, я думаю, вы обрезали значения цвета ( Примечание 1 ), что неверно: при обрезке вы не получите правильные значения цветности (при отсечении можно удалить определенное значение цвет, поэтому соотношение между каналами не поддерживается). Следует использовать числа с плавающей запятой или большее число для расчетов, прежде чем нормализовать (значения канала в диапазоне от 0 до 255). [Нормализовать (в данном случае): сохранить цветность, но адаптировать Y так, чтобы конечный цвет был в гамме]. На практике: вы получаете максимальное значение между R, G, B и умножаете каждый канал на 255/max(R,G,B).

Примечание: это не совсем правильно / точно. Вышеуказанная нормализация должна выполняться в линейном пространстве (линейное смешивание света), и только после нормализации должна применяться гамма-функция. С другой стороны, на приведенных выше рисунках у нас нет правильного цвета для каждой точки x, y. Мы можем сделать это правильно только на треугольнике (гамме). Расширяя доступный цвет на экране до полной цветности xz, мы создаем ошибки / неточности. Так что нормализация до или после гамма-коррекции не так уж актуальна (и она просто слегка меняет цвета).

Примечание 1: Из комментария: это (отсечение) не соответствует действительности, ОТО, очень маленькая часть синего (темно-синего) и слишком много пурпурного и голубого, заставляет меня задуматься о некоторой числовой проблеме)

1 голос
/ 19 июня 2019

Белая точка 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.

...