Как создать абстрактный цветовой профиль для кодирования определенного преобразования цвета?

У меня есть набор изображений (48-битный TIFF), закодированных в ProPhoto RGB.

У меня есть набор альтернативных входных цветовых профилей (связанных с ProPhoto RGB, но немного отличающихся), которые я могу назначать изображениям для получения различных цветовых преобразований.

Однако это неправильный способ использования цветовых профилей. Если вам нужно преобразование цвета, вам нужен либо 3DLUT (зависящий от рабочего цветового пространства, больше похожий на профиль связи устройства), либо абстрактный профиль (Лаборатория-> Лабораторное сопоставление, независимое от цветового пространства).

Photoshop поддерживает как 3DLUT, так и абстрактные профили.

Я хочу создать либо 3DLUT, либо абстрактный профиль, который кодирует то же преобразование, что и достигнутое путем изменения входного профиля. Я не знаю, как действовать дальше. Я программист и могу написать код, если это будет полезно.

В более математическом обозначении у нас есть следующие функции:

ProPhotoRGB: RGB->XYZ
ProPhotoRGBModified: RGB->XYZ
XYZ2Lab: XYZ->Lab
Lab2XYZ: Lab->XYZ

И мы хотим найти эту функцию:

UnknownAbstract: Lab->Lab

Такие, что выполняется это равенство:

ProPhotoRGBModified(input) == Lab2XYZ(UnknownAbstract(XYZ2Lab(ProPhotoRGB(input))))
Каково фотографическое приложение для того, что вы пытаетесь сделать здесь?
Изменение насыщенности с помощью цветовых профилей Джеймса Холмса .
У меня нет ответа, но вы сделаете это с помощью ArgyllCMS. В частности, вам, вероятно, следует заглянуть в A->Bтаблицы B->ALUT, потому что это единственный способ получить этот эффект, просто преобразовав его в профиль, который вы хотите создать.
Кажется, это может быть вопрос x → y. Почему бы просто не спросить, как изменить насыщенность, используя цветовые профили Джеймса Холмса?
Я знаю, как изменить насыщенность с помощью этих профилей, это не проблема, вопрос в создании абстрактных цветовых профилей (в общем) для использования в Photoshop и других приложениях. Тот факт, что в этом конкретном сценарии я изменяю насыщенность, является случайным, вы можете создавать профили для имитации эффекта перекрестной обработки или профили, имитирующие внешний вид конкретной пленки. Есть много возможных применений этого типа профилей.

Ответы (1)

Вы можете сделать это, создав цветовой куб RGB в формате .tif (или в любом другом формате без потерь, который вы предпочитаете), перенеся его в Photoshop, применив преобразование к изображению, а затем сохранив его обратно. У меня есть один, который 64x64x64:

Цветной куб

Итак, откройте его в Photoshop и скажите, что он находится в исходном цветовом пространстве, из которого вы хотите преобразовать. (Возможно, вам придется сказать ему игнорировать прикрепленный профиль, если он есть. Не уверен, что его загрузка здесь делает с изображением.) Затем сделайте все, что вы делали, чтобы преобразовать в новое цветовое пространство. Сохраните его обратно в формате без потерь, удобном для чтения с кодом. Затем удалите информацию о цветовом профиле, если она есть, так как в будущем она будет отображаться по-другому. Теперь вы можете использовать его как 3D LUT.

Интригующий. Я создал нужный мне .png, но Photoshop может использовать только .3dl, .cube и .look 3D LUT. Он не может использовать .png напрямую. Кажется, легко перейти от .cube к .png, но я не уверен, как сделать обратное. Или вы предлагаете мне самому разобрать .png и создать из него файл .cube?
Хорошо, я еще немного поиграл с ними, оказалось, что форматы 3D LUT действительно тривиальны. Кажется, это работает, но мне нужно провести более тщательное тестирование, чтобы убедиться, что я получу тот же результат, на который рассчитываю. Я все еще оставляю вопрос открытым, так как я все еще ищу способ кодирования этих преобразований в виде абстрактных профилей ICC, а не 3D LUT, но описанный метод является отличным обходным путем, если вы можете жить с определенной зависимостью рабочего цветового пространства. . Если никто не ответит в разумные сроки, я приму ваш ответ.