Конвертация цвета между 2° и 10°

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

dom1n1k

Участник
Топикстартер
Сообщения
47
Реакции
2
Вчера смотрел формулы и внезапно осознал, что я не понимаю, как сконвертировать, например, цвет Lab D50 2° в Lab D50 10° (вместо D50 можно подставить что угодно).
В книгах написано, что формулы преобразования XYZ<->Lab совершенно аналогичны, только все переменные нужно заменить на их аналоги с индексом 10. Хорошо.
И как бы очевидно, что считать нужно по цепочке Lab2->XYZ2->XYZ10->Lab10. Первый и последний шаг понятный, центральный - нет. Как пересчитать?
Как получить цвет из спектра - понятно.
А если спектра нет, а есть только готовые 3 координаты и нужно преобразовать их к другому наблюдателю?
 
Как пересчитать?
Никак.

"Серебряной пули" тут нет. Формы CMF для 2-градусного и 10-градусного разные. Следовательно, формы охватов будут разными, метамерные множества тоже будут разными.

Можно построить LUT между этими охватами. Однако, метамеры привести друг к другу не получится все равно.
 
Я к чему это... пытаюсь накопать числовые значения цветов RAL - и это оказался тот ещё квест!
Везде данные разные и противоречивые. И даже если отбросить откровенно подозрительные источники с очевидной ересью, то даже в их официальном приложении - какие-то странные погрешности (до нескольких единиц Lab). И если для RAL Classic, который был придуман ещё до CIE-стандартизации, это как-то можно оправдать, то для современного RAL Design подобные вещи - выше моего понимания.

Я даже не понимаю, какое именно постранство является для RAL первоисточником, а какие - вычисленными производными. Вроде бы для RAL Design это LCh[ab] - но какой именно обсервер и иллюминант?! Непонятно. Складывается ощущение, что они специально путают следы, чтобы не дай бох не украли :)

И вот в немецкой википедии я узрел упоминание о 10 градусах - http://de.wikipedia.org/wiki/RAL-Farbe#Farbtabelle
Мож, думаю, оттуда растут ноги у несовпадений?
 
пытаюсь накопать числовые значения цветов RAL - и это оказался тот ещё квест!
Лучший способ - это взять реальный веер (или что там у них), промерить его и затем посчитать для разных наблюдателей.

Не думаю, что существуют спектральные данные RAL в открытом доступе.
 
...и получить еще один набор данных, который ни с кем не совпадает! :)
 
Прогнать значения XYZ через того же Брэдфорда. Будут значения для 10-градусного наблюдателя под тем же осветителем. Данные по white point для обоих вариантов (D50_2 и D50_10) есть.
 
Прогнать значения XYZ
Разные XYZ у этих наблюдателей на входе. Они уже разные. Спектр один, а XYZ отличаются. Для другого осветителя будет пара более других XYZ. Соотношение между этими XYZ для разных наблюдателей нелинейное. И тут даже не "коэффициенты усиления" колбочек, как при хромадаптации, а форма меняется.

Если мне склероз не изменяет, градусность наблюдателя получается из разной заселенности колбочками между центром и переферией, а так же разной глубины колбочек (логарифмическая зависимость чувствительности от толщины "пигмента").
 
Разные XYZ у этих наблюдателей на входе.
Разные. А это разве не учитывается при расчете white points? Смена наблюдателя (или осветителя) -- изменение одного из параметров сцены. И задача -- пересчитать цифирки из capture condition в viewing condition. Пересчитать используя как раз Брэдфорда или CIECAM02 или другие методы.
 
Ну как можно пересчитать одно методами для совершенно другого?

Чисто гипотетически, можно найти формулу, ту "серебряную пулю", которая вот возьмет и всегда просто переведет одно в другое. Но пока не нашли. Точно так же, как и не нашли формулы для равноконтрастного пространства. Точно так же, как и в случае хромадаптации, все методы - некоторое допущение, а не точное соответствие.

Можно построить LUT и попробовать поискать зависимости. Через нейронные сети прогнать, квантовые компьютеры подключить. '%)' Может и получится.
 
Точно так же, как и в случае хромадаптации, все методы - некоторое допущение, а не точное соответствие.
Никто и не говорил про точное соответствие. Есс-но через спектральные точнее. Но пара наблюдатель/осветитель, которую однозначно характеризуют расчитанные из них Xw, Yw, Zw в этих вычислениях равноправный параметр сцены, при этом без всяких ограничений для наблюдателя.
Где неправильно?
 
Неправильно в том, что whitepoint - это важный, но лишь один из параметров.
А между 2 и 10-градусными наблюдателями различия более фундаментальны - там получается вообще другое цветовое пространство, все цвета нелинейно сдвинуты.
 
Я соглашусь с Трантором, что пересчитать лабы из 2 в 10 градусного наблюдателя нельзя никак через XYZ, нет таких формул. Идея Дмитрия с хромадаптацией интересная, но боюсь не даст верного ответа. Да, действительно, в вычислении XYZ 2-градусной белой точки и 10-градусной белой точки участвуют соответствующие CMF. Да, хромадаптация будет оперировать этими двумя разными белыми точками и как-то преобразует цвет. Но результат не будет иметь колориметрического смысла по-моему. Не возьмусь доказать это утверждение как теорему, просто так видится на вскидку. Прикинул с цифрами такие вычисления - ничего путного. И даже не потому что хромадаптаций много и они все по-своему разные, а просто так не корректно использовать формулы ни к месту. В каком направлении стоит рыть тему топикастеру? В вычислении неких нативных спектров из XYZ, ColorLab какие-то спектры так вычисляет, можно их попробовать для решения задачи, но эксперименты с этими спектрами меня лично не вдохновляли. Хотя взглянуть на формулы или методики, каким образом получают искусственные спектры из XYZ мне было бы любопытно. У Линдблума я таких формул не видел. Если что видели на тему получения спектров из XYZ - пульнитесь ссылками!
 
искусственные спектры из XYZ
В этом смысла мало, т.к. нельзя из 3-мерного пространства получить все счетномерное. Просто в счетномерном будет присутствовать трехмерная компонента, а в остальном пустота. Для построения охвата (требуется для получения LUT'а) нужно сгенерить некий набор спектров в счетномерном пространстве. Я, очень грубо говоря, генерил обычным рандомом. Может быть есть методики по равномерному заполнению пространства? Не знаю. Есть метод построения только оболочки, без внутренностей: http://www.uef.fi/fi/spectral/smooth-spectra Но это для данных нужд не подойдет.
 
Последнее редактирование:
  • Спасибо
Реакции: mihas
Спасибо. Как я понимаю, единственная координата XYZ может быть получена из большого количества разных спектров. Таким образом и из этой координаты можно "правильно" нагенерить различных спектров. Но вот при умножении их на отличную (2 против 10) CMF возникнет некое количество разных XYZ. И какая из них будет верная? Так что тоже соглашусь - да, не подойдет. Нет правильного решения у задачки топикастера.
 
Кстати, а как вообще строится цветовое тело человеческого охвата в XYZ? Алгоритм

Перебрать с малой дискретностью все возможные спектры (ну не все конечно, но многие), а потом по полученным точкам построить выпуклую оболочку? А может и не очень выпуклую.

Как я понимаю, только численно, аналитического решения нет?
 
Единственное, на что следует обратить внимание и возможно не париться с решением ненужной задачи - все везде кругом и всегда в большинстве задач используют CMF 2 градуса. То есть любые найденные вами цифры в лабах, XYZ, xyY - все они посчитаны с 2-градусным наблюдателем с вероятностью 99.9. 10-градусные лабы и прочие xyY принято помечать отдельно. Я недавно тоже интересовался вопросом, что для светодиодов приводят цветность в xyY но никогда не указывают наблюдателя CIE. Светотехники уверили, что всегда 2 градуса и можно этим вопросом даже не париться, если не указано специально иное.
 
единственная координата XYZ может быть получена из большого количества разных спектров
Да. Это и есть метамерное множество.

Перебрать с малой дискретностью все возможные спектры
Да, это оно.
аналитического решения
Лично мне о таком не известно. Если бы и было, то, как понимаю, это бесконечное (точнее, счетномерное) количество функций, зависимостей. И далее зависимостей от зависимостей, зависимостей от зависимостей от зависимостей итд итп.
 
Статус
Закрыто для дальнейших ответов.