Алгоритм перевода RGB-компонент в длину волны? Здравствуйте, кто-нибудь может поделиться идеями, насчёт того, как можно перевести значения RGB-компонент цвета в длину ЭМ-волны и обратно? Задача простая - задаётся длина волны, надо найти значения RGB, наиболее близко к нему подходящее. Ну и наоборот.

22 Сен 2021 в 19:57
134 +1
1
Ответы
1

Для перевода RGB-компонент в длину волны и наоборот, можно воспользоваться формулой преобразования RGB в XYZ и XYZ в длину волны.

Преобразование RGB в XYZ:
RGB -> XYZ:

X = 0.4124564 R + 0.3575761 G + 0.1804375 B
Y = 0.2126729 R + 0.7151522 G + 0.0721750 B
Z = 0.0193339 R + 0.1191920 G + 0.9503041 * B

Преобразование XYZ в длину волны:

X/Y/Z -> λ:
λ = 580.024531/S + 581.353663/T + 661.372534/U + 547.960292/V

Для обратного перехода от длины волны к RGB можно воспользоваться обратной последовательностью преобразований:

Преобразование длины волны в XYZ:

λ -> X/Y/Z:
S = 580.024531/(λ - λ)
T = 581.353663/(λ - λ)
U = 661.372534/(λ - λ)
V = 547.960292/(λ - λ)

Преобразование XYZ в RGB:

X/Y/Z -> RGB:

R = 3.2404542 X - 1.5371385 Y - 0.4985314 Z
G = -0.9692660 X + 1.8760108 Y + 0.0415560 Z
B = 0.0556434 X - 0.2040259 Y + 1.0572252 * Z

Надеюсь, эти формулы помогут вам решить задачу по конвертации RGB в длину волны и наоборот.

17 Апр 2024 в 11:16
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир