Преобразование цветовых профилей

У меня есть проект по преобразованию цветового профиля в C++, где идея состоит в том, чтобы использовать CIELAB в качестве перехода между RGB и всеми остальными (CMY; CMYK; HSV; HSL;...). Но у меня есть одна большая проблема. Я искал везде, и я не могу найти никакой формулы или описания, как я могу конвертировать CIELAB в другие (CMY; CMYK; HSV; HSL; ...) только то, что я нашел здесь: http://www.easyrgb.com/index.php?X=MATH&H=14#text14 . Может кто-нибудь помочь мне с формулой или с идеей, как добраться до них? Огромное спасибо. С уважением, магия :)


person magic    schedule 22.12.2011    source источник
comment
Похоже, вы можете перейти от RGB к XYZ и наоборот.   -  person Daniel A. White    schedule 22.12.2011
comment
Да, это правда, но мне нужно преобразовать CIELAB в CMY, CIELAB в CMYK, CIELAB в HSV и CIELAB в HSL, это означает, что я не могу использовать RGB в CMY и т. д.   -  person magic    schedule 22.12.2011
comment
У меня была аналогичная потребность в С#, за исключением того, что я использовал Rgb в качестве моста, а не Lab. Это не C++, но вы можете получить все преобразования здесь: github.com /THEjoezack/ColorMine/tree/master/ColorMine/   -  person Joe Zack    schedule 11.02.2013


Ответы (1)


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

Хороших результатов можно добиться только при использовании файлов цветового профиля. И преобразование в основном включает интерполяцию между сэмплами, хранящимися в этих файлах.

Взгляните на Little CMS. Он, вероятно, делает все, что вам нужно. Или, если ваше программное обеспечение будет работать в Windows, вы можете использовать встроенную систему цветности Windows. для преобразования.

person Codo    schedule 23.12.2011
comment
Вы хотите сказать, что я должен использовать какие-то дополнительные файлы, где я могу хранить данные о цветах, например, таблицы значений для каждого тона цвета? И чем сравнить это через код. Разве это не слишком много сравнений? Спасибо за предложения, но идея моего проекта (о чем спрашивает профессор) заключается не в использовании существующего программного обеспечения, а в создании собственного. Я чувствую себя довольно беспомощным в этой ситуации, я смотрю везде, мне больше нечего набирать в Google и получать новые результаты, я искал так много ссылок, книг и статей. - person magic; 23.12.2011
comment
Эти файлы называются цветовыми профилями, имеют стандартный формат (.icc) и доступны в таких компаниях, как Adobe, или таких организациях, как ECI (часто бесплатно). Но поскольку это студенческий проект, и вы не можете использовать существующее программное обеспечение, вам лучше использовать некоторые формулы. Но не ожидайте слишком многого. Выходные цвета будут лишь отдаленно напоминать входной цвет. - person Codo; 23.12.2011
comment
но я не могу найти эти формулы, вы знаете, где их найти, CIELAB->CMY и т. д.? - person magic; 23.12.2011