Пытаюсь разобраться с MS ICM (Image Color Management)
Не могу нормально сконвертировать изображение в La*b* из исходного icm профиля
Нашел в интернете несколько профилей, описывающих La*b* http://www.littlecms.com/profiles.zip
RGB -> CMYK и обратно вроде получается нормально при соответствующих профилях,
В La*b* — получается что-то похожее на правду, но с серьезными артефактами в районе серых цветов.
Гистограмма канала a* после конвертации sRGB->La*b* выглядит примерно так:
I=======================================================I
I -- I
I - - I
I l - I
I -+l - I
I - ll l I
Il l - ll l l I
Il l - ++ l l I
Il l - l l I
Il l - l l I
Il l - l l I
Il l - + l I
I+ + -- ------+----- I
I I
I=======================================================I
Столбики на гистограмме соответствуют 1,63,191 и как раз представляют из себя артефакты на La*b*изображении
Провал на гистограмме соответствует 128
Если все значения 1,63,191 принудительно заменить на 128 — в целом картинка воспринимается более или менее нормально (цвета всё равно немного уходят в зеленый).
С каналом b* — такая же фигня.
Канал L — вроде всё нормально.
Делаю так:
(исходное изображение в raw формате Photoshop)
Нашел формулы для перевода из sRGB в La*b* вручную, а ICM можно будет использовать для перевода в sRGB и обратно, но как сделать по нормальному — не знаю,
Здравствуйте, adontz, Вы писали:
A>А чем ты потом изображение в Lab-формате смотришь?
Загружаю в Photoshop (в raw формате приходится задавать вручную размеры и количество каналов), он его по-умолчанию интерпретирует как RGB
Переключаю изображение в режим Multichannel (Image->Mode->Multichannel), затем в Lab (Image->Mode->Lab)
Здравствуйте, nik0la, Вы писали:
N>Загружаю в Photoshop (в raw формате приходится задавать вручную размеры и количество каналов), он его по-умолчанию интерпретирует как RGB N>Переключаю изображение в режим Multichannel (Image->Mode->Multichannel), затем в Lab (Image->Mode->Lab)
Просто PhotoShop может сам применять какие-то ICM в процессе конвертации.
Лучше бы конвертировать туда-обратно и смотреть на разницу между исходным и дважды сконвертированным RGB.
Здравствуйте, adontz, Вы писали:
A>Просто PhotoShop может сам применять какие-то ICM в процессе конвертации. A>Лучше бы конвертировать туда-обратно и смотреть на разницу между исходным и дважды сконвертированным RGB.
Тут уже вроде влияния Photoshop'а должны исключиться.
Артефакты и свистопляска на гистограмме a* и b* каналов осталась как и была
Попробовал сконвертнуть туда-обратно (sRGB -> La*b* -> sRGB) на выходе получил RGB картинку с точно такими-же артефактами
что были на La*b* картинке, и тоже цвета ушли немного в зеленый. Теперь вообще не знаю что делать. Пробовал другие профили La*b*, например LCMSLABI.ICM
Привожу полный текст:
n> Нашел формулы для перевода из sRGB в La*b* вручную, а ICM можно n> будет использовать для перевода в sRGB и обратно, но как сделать по n> нормальному — не знаю,
Я вручную конвертил, там простые операции перемножения матриц и всё
работало отлично.
Кажется решил проблему.
Нашел другой Lab профиль (LCMSLABI.ICM, из комплекта www.littlecms.com)
Переправил в шестнадцатеричном редакторе его из абтрактного ('abst') в профиль пространства('spac').
Нашел нормально описание структуры COLOR в описании ColorSync для mac с которой передрана MS ICM
Вроде заработало.