Преобразование CCT (коррелированная цветовая температура) в цветность x, y - PullRequest
1 голос
/ 17 апреля 2020

Я пытаюсь преобразовать CCT 6504K в цветность x, y в цветовом пространстве 2deg 1931 года. Следовал уравнению на этой странице Википедии в разделе ВЫЧИСЛЕНИЯ - выполнение этого в Python 3.6.

D65 (из 6504K) задано как 0,31271, 0,32902 (см. та же страница в Википедии (внизу) *

Полученные координаты x, y, которые я получаю: [0.31271405688264753, 0.329 11 90991371872]

Как видите, мое значение x равно на месте, но значение y выключено - и в уравнении оно вычисляет y из x. Я проверил это сейчас 20 раз и не могу найти ошибку ...

Есть идеи, почему координата y неверна?

Спасибо.

1 Ответ

1 голос
/ 18 апреля 2020

Ваше значение корректно для 6504k, здесь оно вычисляется с помощью Цвет :

>>> import colour
>>> colour.temperature.CCT_to_xy_CIE_D(6504)
array([ 0.31271406,  0.3291191 ])

Обратите внимание, что технически для D65 вы должны вычислить его следующим образом:

>>> import colour
>>> colour.temperature.CCT_to_xy_CIE_D(6500 * 1.4388 / 1.4380)
array([ 0.31272027,  0.32912528])

Это должно правильно объяснить изменение постоянной излучения C_2 в законе Планка в 1968 году, в результате чего цветовая температура равна 6503.616133518777. Отсюда вы должны начать видеть, что могут быть проблемы округления, связанные с расхождениями.

Теперь, взяв значения CIE XYZ tristimulus от D65, как дано CIE в CIE 015: 2018 Колориметрия, 4-е издание. https://doi.org/10.25039/TR.015.2018:

>>> import colour
>>> colour.XYZ_to_xy([95.04, 100, 108.88])
array([ 0.31271387,  0.32903396])

Значение, которое они задают в стандарте для координат цветности D65: [0.31272, 0.32903] .

К сожалению, единого правильного ответа не существует, однако обычно используется и как-то согласовывается: [0.3127, 0.3290] и используется большинством цветов пространства RGB с использованием D65.

...