Как рассчитать цвет при изменении освещения?

  • Автор темы Автор темы IVA2000
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

IVA2000

Топикстартер
10 лет на форуме
Сообщения
74
Реакции
16
Как рассчитать цвет при изменении освещения, если известны спектры (или координаты цвета) старого и нового освещения и координаты цвета под старым освещением?
Было, кажется, какое-то матричное преобразование, но где это искать я забыл, простите и подскажите великодушно.;-]

UPD: речь не идет о простой адаптации Вон Криса и др., так как под новым освещением не только меняется относительная чувствительность S, M, L рецепторов, но и спектр отраженного от цветового образца света. Впрочем было бы здорово, чтобы было ясно - проводить или не проводить еще и адаптацию после применения данной методики.
 
Ответ: Как рассчитать цвет при изменении освещения?

Отбой всем службам.
Я умею рассчитывать цветовые сдвиги при изменении освещения, если имею график зависимости коэффициента отражения от длины волны (это вектор в 40 мерном пространстве, то есть 40 значений коэффициента с шагом в 5нм от 380 до 780нм). Такие данные для некоторых цветов, например цвет кожи европейца или цвет листвы. Помножив этот вектор на спектр - другой сорокамерный вектор мы получаем цвет.
Я мог и раньше догадаться, но только спустя некоторое время поисков понял, что при расчете цвета происходит утеря информации и восстановить данные о коэффициентах отражения нельзя. Например две поверхности могут казаться одинакового цвета под одним освещением, а под другим они уже разные (эффект метамеризма). А это же значит, что нельзя рассчитать цвет под новым освещением, зная только RGB под старым.


Я нарисовал иллюстрацию для нескольких измененных цветов в фотошопе по цифрам (рисунок 6 вот в этом документе: www.docme.ru/doc/48695/ ), и хотел сделать тоже самое для целиковой картинки. Но для целиковой картинки нет расширенной информации по цветам.
 
Ответ: Как рассчитать цвет при изменении освещения?

Может не в тему , или неправильно , но вот отсюда http://nordicdreams.net.ru/articles/colorimetry.304.htm взято следующее ". Вводим цветовые координаты образца, рассчитанные относительно стандартного излучателя D65:

XYZs = [ 6.7998 3.9436 28.6660 ];

2. Задаем матрицу преобразования D65 > D50:

Ma = [ 0.8951 -0.7502 0.0389
0.2664 1.7135 -0.0685
-0.1614 0.0367 1.0296 ];
XYZ0s = [ 095.04 100.00 108.89 ];
XYZ0d = [ 094.40 100.00 060.90 ];
PYBs = XYZ0s * Ma; Ps = PYBs(1); Ys = PYBs(2); Bs = PYBs(3);
PYBd = XYZ0d * Ma; Pd = PYBd(1); Yd = PYBd(2); Bd = PYBd(3);
X = [ Pd/Ps 0 0
0 Yd/Ys 0
0 0 Bd/Bs ];
M = Ma * X * inv(Ma);

3. Осуществляем перерасчет координат по ф. (3.6):

XYZd = XYZs * M;

Значения координат после пересчета получились равными:

X = 4.8519, Y = 3.3491, Z = 15.6967

(для сравнения значения, полученные в примере 3.1 по данным прямых расчетов:
X = 4.5823, Y = 3.3964, Z = 15.5886)."
 
Ответ: Как рассчитать цвет при изменении освещения?

Если нравится математика цветовых преобразований и хроматической адаптации - то здесь все собрано, все известные варианты хроматической адаптации. Плюс там для исследователя или разработчика все коэффициенты и рассчитанные матрицы адаптации выводятся. Здесь все это работает. Если JavaScript не подходит - здесь в Excel также работающая модель CIECAM CAT02. Правда работает без визуализации а визуализация вычислений полезна для лучшего понимания.
 
Ответ: Как рассчитать цвет при изменении освещения?

Может не в тему , или неправильно , но вот отсюда http://nordicdreams.net.ru/articles/colorimetry.304.htm взято следующее
По моему скромному мнению вы указали на процедуру цветовой адаптации. Наиболее яркое пятно в поле зрения человеческое восприятие пытается воспринимать как белое (и в случае если цветовые координаты этого пятна находятся на кривой АЧТ - успешно). При изменениях в сцене относительная чувствительность колбочек разных типов уплывет к новому балансу, чтобы наиболее яркое пятно вновь казалось белым (насколько это возможно). Эту адаптацию можно учесть, вы указали как.

Но цвет, который не освещен, не существует. И при изменении спектра осветителя изменяются еще и абсолютные не привязанные к состоянию зрения наблюдателя спектральные характеристики света отраженного от образца. И это можно учесть только в лоб - имея три сорокамерных вектора - отражательные свойства образца, старый и новый спектры. А потом применять еще и адаптацию. Иначе вроде бы никак.
 
Ответ: Как рассчитать цвет при изменении освещения?

Каждую таблично определённую функцию можно рассматривать как вектор, имеющий столько размерностей, сколько заявлено в таблице.
 
Статус
Закрыто для дальнейших ответов.