Матрицы RGB/XYZ (XYZ/RGB)

  • Автор темы Автор темы TRANTOR
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
Колориметрически верная цветопередача сенсорами, доступными в широкой продаже, невозможна, т.к. они не соответствуют критерию Лютера-Айвса. Т.е., проще говоря, цветовые тела сенсора и зрительной системы не совпадают. Если бы совпадали, то и проблемы не было (исключая хроматическую адаптацию).

"it is assumed that the camera response is completely linear".
А это полная ахинея. Книжки надо авторам почитать. Ну или хотя бы посмотреть на картинки локусов и цветовых тел. Ничего линейного там не наблюдается.
 
  • Спасибо
Реакции: dih
Сообщения, не относящиеся к теме вынесены сюда.
 
  • Спасибо
Реакции: TRANTOR
@TRANTOR, ну ок, допустим, что матричный профайл ни куда не годен, а чем вы делаете cLUT в таком случае? Вопрос более чем насущный, я к тому, что намучился уже с аргайлом, врагу не пожелаю, чего стоит одна только "документация" на него, или 1.5 vs 1.6 версия, например, даёт просто кошмарную разницу в colprof aX (я пока понял, что дома у меня 1.5, а на работе 1.6 - чуть не сдох от безысходности!). Абстракт аргайл сделает легко, линк тоже, матрикс - отлично, но как доходит до cLUT, так начинается ад в тенях. Всё перемеряно вдоль и поперёк инструментом, усреднено и вычищено - всё равно тени куда-то несёт, то в зелень, что в мадженту. Пробовал с имиджинресоурс рофайлов делать cLUT Argyll - тоже самое и главное дело в РМ5 никакого ада в тенях (по общей "колористике" весьма похоже на матрикс аргайла), но там своих артефактов навалом. PM5 вообще ничего не даёт настроить в cLUT и практически всегда получаешь постеризацию (cLUT аргайла, тот хоть гладкий), как будто там вообще никакой интерполяции не подразумевается, да и весь профайл считается 1 сек, что как бы усиливает подозрения. Вручную потом через "спот калорс" его точить, тогда в чём смысл такого профайла, если он будет в ручную нарисован? Короче, я даже не знаю чем можно приличный cLUT XYZ запилить.. Постоянно в бессильной злобе, прихожу к мысли, что всё можно сделать, как надо, только самому в матлабе, но этож будет на год-два "хобби"! Последний шанс не выбросить год жизни на эту ерунду, это найти нечто менее прОклятое, чем аргайл, или забить и наслаждаться жизнью с матрикс.
 
а чем вы делаете cLUT в таком случае?
ПО собственной разработки.

Уточню, что я пытаюсь делать DCP-профили. Хотя свой LUT там тоже имеется (и даже несколько).

начинается ад в тенях
всё равно тени куда-то несёт
Это потому, что экстраполяция. Не из чего считать. Остается только гадание на кофейной. Результат печален.
прихожу к мысли, что всё можно сделать, как надо, только самому в матлабе, но этож будет на год-два "хобби"!
Именно так.

найти нечто менее прОклятое, чем аргайл
Дело в том, что мало того не найдете, так все равно толку не будет. Потому, что нужно как минимум:

1. Несколько тысяч патчей
2. Равномерное их распределение по цветовому телу (в том числе в тенях, в том числе в светах, в том числе монохроматы на границе)
3. Понадобятся спектральные данные этих патчей

Отсюда вывод: таких мишеней не существует в реальной жизни и нужно делать профиль из CMF сенсора. CMF можно "облучить" чем угодно (математически, само собой). Для этого придется написать свое ПО.
 
зачем своё ПО, когда в матлабе есть вообще всё, только меж собой связать?
 
согласен, в принципе и на С всё уже 100500 лет написано , любыйе интерполяции и распределения, как и стандартный парсинг icc, кому что удобнее.
 
Итак, вопрос с первичными матрицами (<ColorMatrix1> и <ColorMatrix2>) решен. Это матрицы XYZ->CAM под каждый калибровочный иллюминант, которые в дальнейшем инвертируются в CAM->XYZ (под соответствующий иллюминант). Точнее говоря, результирующий XYZ->CAM получается из Analog_Balance * Camera_Calibration * CM (и потом это все инвертируется).

Иллюстрация к теме:

adobe_matrix_sux.png

В Adobe считают, что такие матрицы ОК. У меня другое мнение. Уверен, что вот так более ОК:

trantor_matrix_superior.png

Beta RGB взято для примера. Строил так же матрицу, которая фитит цветовое тело сенсора в sRGB.

Разумеется, что для корректного фитинга нужно иметь CMF сенсора - иначе и фитить нечего. Видимо, Adobe лень всем этим заниматься. Как-то сделали да и ладно. Ну и все остальные вслед давай копировать то же самое (см матрицы в dcraw, например).

Теперь осталось разобраться с матрицами хромадаптации, которые так же ни в какие ворота.
 
Обращаюсь к специалистам по цвету в связи с нетривиальной проблемой. Занялся профилированием фотокамеры, имея в наличии QPCard 203. Результат, полученный с помощью родной утилиты и argyll-а меня не устраивает. Вылезают малиновые пятна на чуть покрасневшей коже. Начал экспериментировать. Скачал с imaging-resource рав с ColorChecker SG и попытался построить профиль в ProfileMaker-е. С какой-то попытки результат мне очень понравился. Но есть потребность использовать именно свою QPCard, а в ProfileMaker-е нет под неё референсов, плюс настройки конвертера вызывают некоторые сомнения, сможет ли такой же результат получиться на разных сюжетах и с другим освещением.
Подскажите, пожалуйста, как из Lab-референса для QPCard создать референс для ProfileMaker-а. Из имеющихся в нём референсов мне как не специалисту мало что понятно:
SampleID SAMPLE_NAME RGB_R RGB_G RGB_B
Но при этом значения в файле есть отрицательные и не больше 250
Попытка перевести Lab в RGB ни к чему не привели. Программа не читает референс. Всякие параметры вроде нумерации в файле, количества колонок и строк соблюдены.
Вот часть референса:
LGOROWLENGTH 4
CREATED "1/26/2004" # Time: 16:08
KEYWORD "SampleID"
KEYWORD "SAMPLE_NAME"
NUMBER_OF_FIELDS 5
BEGIN_DATA_FORMAT
SampleID SAMPLE_NAME RGB_R RGB_G RGB_B
END_DATA_FORMAT
NUMBER_OF_SETS 24
BEGIN_DATA
1 A1 111.97 72.47 59.81
2 A2 228.20 113.27 43.59
3 A3 -8.27 57.68 139.26
4 A4 240.92 240.92 240.92
5 B1 196.65 139.28 121.34
6 B2 -0.22 83.86 155.00
7 B3 77.83 138.71 66.68
8 B4 194.33 194.33 194.33
 
Бесполезное это занятие. Ничего хорошего с помощью мишеней не получится. В принципе. Это если тезисно. :)

И по остальному:

Скачал с imaging-resource рав с ColorChecker SG
Так нельзя, поскольку неизвестны спектральные характеристики той мишени. Разница между мишенями до 12 dE. Просто пальцем в небо получится.
настройки конвертера вызывают некоторые сомнения
Еще один пункт, который вносит непредсказуемость. Хочу такие настройки, а хочу сякие. А какие надо, никто не знает.
сможет ли такой же результат получиться на разных сюжетах и с другим освещением
Нет. Надо каждый раз под новое освещение.
как из Lab-референса для QPCard
Нужен не Lab-референс, а спектральный. Можно взять прибор и промерить. На выходе будет CGATS, который в ProfileMaker.
перевести Lab в RGB
Для начала надо понять, в какое из RGB.


ЗЫ. Чтобы не мучиться, скажите какой у Вас аппарат - может у меня найдется CMF к нему.
 
Бесполезное это занятие. Ничего хорошего с помощью мишеней не получится. В принципе. Это если тезисно. :)
Выхода особого нет, да и результат в целом устраивает, но хочется допилить профиль по уму. Конечно, хотелось бы, чтобы кто-то посветил монохроматором в камеру и построил зависимость. CMF, как я понял?

Так нельзя, поскольку неизвестны спектральные характеристики той мишени. Разница между мишенями до 12 dE. Просто пальцем в небо получится.
Да, именно поэтому хочу под свою мишень. Борг как-то промерял несколько, говорил, они стабильней по разбросу.

Еще один пункт, который вносит непредсказуемость. Хочу такие настройки, а хочу сякие. А какие надо, никто не знает.
Здесь не всё так страшно, главное, чтобы этот новый профиль был лучше остальных вариантов, благо он и так вроде уже получше.

Нет. Надо каждый раз под новое освещение.
Ещё одна причина, по которой необходима работа со своей мишенью. Иногда снимаю со смешанным светом.

Нужен не Lab-референс, а спектральный. Можно взять прибор и промерить. На выходе будет CGATS, который в ProfileMaker.
Прибора нет и не предвидится. В моих условиях придётся исходить из двух условий: соответствие моей мишени и референса на неё, наличие только lab значений.

Для начала надо понять, в какое из RGB.
Над этим и бьюсь *[[

Камеры d300 и d7100
Ещё есть вот что для моей мишени:
SAMPLE_ID XYZ_X XYZ_Y XYZ_Z LAB_L LAB_A LAB_B
Это не спектральный референс?
Если да, то что с ним можно поделать? Может, какое другое ПО просто использовать, которое всё это "скушает". Кроме argyll, конечно.
 
посветил монохроматором в камеру и построил зависимость. CMF, как я понял?
Именно так. Единственно правильный вариант. Будет CMF, могу сделать любые профили.
стабильней по разбросу.
Стабильно это dE <1. Для мишеней из области фантастики.
благо он и так вроде уже получше.
А теперь снимите синий светодиод (для примера), наложите профиль и удивитесь. :)
снимаю со смешанным светом
Зная освещение можно наложить соответствующие профили и замаскировать для каждого источника (карта освещений, illuminant map, упрощенный вариант).
наличие только lab значений
Ничего не выйдет. Разное освещение даст разный Lab. Какой будем брать? Как без спектра отражения посчитать Lab? Как, не зная спектр осветителя, не зная спектр отражателя (мишень), посчитать Lab?

D7100 нет, но есть CMF к D300s. Не знаю, насколько они близки, одинаковый ли сенсор или нет.
SAMPLE_ID XYZ_X XYZ_Y XYZ_Z LAB_L LAB_A LAB_B
Это не спектральный референс?
Нет. Спектральный обычно выглядит так:
Код:
SampleID   SAMPLE_NAME     nm380   nm390   nm400   nm410   nm420   nm430   nm440   nm450   nm460   nm470   nm480   nm490   nm500   nm510   nm520   nm530   nm540   nm550   nm560   nm570   nm580   nm590   nm600   nm610   nm620   nm630   nm640   nm650   nm660   nm670   nm680   nm690   nm700   nm710   nm720   nm730
END_DATA_FORMAT
NUMBER_OF_SETS   240
BEGIN_DATA
1   A1     0.1269   0.2018   0.3654   0.5659   0.6931   0.7346   0.7501   0.7609   0.7705   0.7763   0.7794   0.7819   0.7816   0.7799   0.7769   0.7714   0.7711   0.7729   0.7695   0.7704   0.7716   0.7763   0.7794   0.7795   0.7774   0.7762   0.7802   0.7851   0.7898   0.7910   0.7912   0.7915   0.7935   0.7944   0.7938   0.7946
то что с ним можно поделать?
Да ничего не поделать. '%)' То есть делать-то можно всякое, но результат не очень.

Так если у Вас QPCard, то к ней есть и свой софт. Почему не им? Вроде ж все купившие довольны? :)
 
Родной софт не устраивает совсем из-за поросячих пятен на лицах.
Со светодиодами и подобным совсем не справляются мои профили. Но каким-то образом более менее справляются профили из равтерапии. В чём разница между профилями?
Мне хотя бы поэкспериментировать. А для этого нужно знать, что кушает ProfileMaker. Там бы кое-как калькуляторами всякими пересчитал lab в его пространство.
 
  • Спасибо
Реакции: dih
из-за поросячих пятен на лицах
Так я примерно и догадывался. То-то ж продажи прекратились. Нельзя же так долго вешать лапшу на уши людям. Пардон за сарказм в сторону производителя этих поделий.

профили из равтерапии
Вообще-то говоря нет, не справляются. Видел не раз примеры, где отсечка (выход за охват) в жуткий розовый "фиолет".
В чём разница между профилями?
Если в целом говорить (не касаемо каких-то конкретных профилей), то разница в описании охвата сенсора. Чтобы его полностью и правильно корректно описать, нужно знать всего его ответы на любые (упрощенно говоря) попадающие в него спектры. Никакая мишень это сделать не в состоянии в силу физических ограничений. Плюс малое количество патчей, плюс невозможность сопоставления абсолютных значений получающихся люменов патчей тому, что выдает сенсор в RAW (по крайней мере, без серьезного лабораторного исследования). И так далее.

Иначе коррекции "на глаз". А тогда зачем мишень и профилирование с ее помощью? :)

поэкспериментировать
Ну, для этого не требуется прилагать столько усилий. В C1 есть инструмент для различных коррекций и записи получившегося профиля. Но это, само собой, "на глаз".
 
  • Спасибо
Реакции: dih
В подкрепление сказанного, "добиваю". '))'

Сенсор Сапога 6D. Два профиля от уважаемого А. Титова. Сделаны со всем тщанием, с учетом всех нюансов (промеры спектральных данных мишеней, спектра освещения и прочая и прочая).

Индикатор пианины:

_MG_0116 1.jpg

Что с ним такое? Выглядит странно. Какая-то темная окантовка по краю.

Профиль с ручной коррекцией синих:

_MG_0116 2.jpg

Почему стали фиолетовыми отражения? Беда-печаль.

Профиль от Phase One из C1:

_MG_0116 0.jpg

Вроде должны уметь правильно делать профили. Уважаемая кампания и все такое. Но нет. Красные тени, фиолет в рефлексе.

А на самом деле оно выглядит так:

_MG_0116 3.jpg
 
Есть такой известный персонаж Ламер. Он всё советовал по трём диодам профиль строить. То есть на глазок. Не без основания, конечно, и доля разумного тут есть, но есть ли программы, позволяющие вот так вручную получать профили? То есть ставим рядом с монитором предмет и подгоняем профиль так, чтобы этот цвет передавался +/- верно. Потом другой и т.д. В С1 как я понимаю просто аналог всяких hsl-крутилок.
Есть мнение, что большое число патчей наоборот плохо влияет на точность профиля.
Какие профилировщики толковые есть? Монако не подходит, там только вшитые мишени. С imatest-ом тоже неясно, как из него профиль получить. Вроде у себя внутри он что-то интерполирует, результат показывает, а куда дальше его - непонятно. Зато моя мишень им поддерживается.
 
Тут без комментариев. '%)'
по трём диодам профиль строить
Получится профиль трех диодов.
рядом с монитором предмет и подгоняем профиль
Получится профиль предмета при текущем освещении.

Построить профили под все существующие предметы под всеми освещениями. Можно. Но я бы не стал. :)

В С1 как я понимаю просто аналог всяких hsl-крутилок.
Можно и так сказать. Единственное отличие, что оно позволяет сохранить результат в профиль ICC. Аналогично можно сделать экшен в Фотошопе и применять по месту. Суть та же - "на глаз", "ручник".
Какие профилировщики толковые есть?
Из известных только Profile Мaker.

Agryll CMS, как очевидно, барахло (особенно если посмотреть, что там в исходниках).
basICColor input неадекватные результаты совершенно.
С Imatest'ом не сталкивался, но, судя по документации, это тестилка, а не профилировщик.
QPCard результат известен.
Monaco Profiler Вы уже озвучили.

Собственно, все.
 
Пробую через imatest прогнать. Он кушает мою мишень, что-там у себя строит и позволяет менять любое загруженное изображение. Сохраняет результат. Только триал на месяц. И в принципе, результат мне нравится.
Но сейчас надо проверить на своих сложных равах, с которыми другие плохо справлялись.
Что мне нравится - можно дать ему мишень, проявленную в конвертере, и он по результатам строит свои корректировки. Подсунув после этого любую фотографию, проявленную, как и мишень, он неплохо корректирует цвет. По мне, это лучше, чем создание непонятного (хотя бы для меня) профиля с помощью впаривания аргилу тиффа жутко недосвеченного (гамма 1 вроде как) и потом непонятная же работа с этим профилем в конвертере. Неизвестно, насколько вообще хорошо он их переваривает. А тут всё прозрачней: на той же сцене снял мишень, по ней построил алгоритм корректировки и применил его на любой другой фотографии из тех же условий. Но это, конечно, костыли и неудобно. Да и проверить ещё нужно, чем и занимаюсь.
 
Первое впечатление такое: цвета на месте. Самое лучшее сходство мишеней скорректированных и референса. Визуально. Синий, с которым я мучался с собственными профилями и не только собственными, стал синим, каким и был (по памяти). Красный довольно ядовитый - тут память подводит), особенно после многочисленных попыток проявки до этого. В нём кстати наибольшие смещения, если судить по мишени. Постеризации не замечено. Переходы цветов одного и того же объекта, освещённого закатным солнцем и синим небом, вполне естественны. Пресловутый скинтон тоже в норме даже при применении профиля "на солнце" к изображению на закате. Итоговый результат нуждается в небольшой корректировке по вкусу (контраст и насыщенность).
Что интересно, корректировка изображения даже небольшого вызывает небольшие тормоза, чего явно не наблюдается в конвертерах от применения профиля. Хотя, конечно, это может быть вызвано банальной не оптимизацией кода.
Такой вот костыль получился из конвертера, корректора цвета и ещё одной программулины.
 
Статус
Закрыто для дальнейших ответов.