Создание колориметрической таблицы target из профиля icc. Инструкция

теоретические и практические аспекты колориметрии, системы управления цветом
Ответить
Аватара пользователя
mihas
Администратор
Сообщения: 1371
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Создание колориметрической таблицы target из профиля icc. Инструкция

Сообщение mihas »

Изображение
О том, как с помощью Photoshop, ColorLab и Excel извлечь из профиля тесткарту (таргет, мишень) если ее в профиле не прописано я рассказывал в старой теме по ссылке. Тот способ грешит не очень высокой точностью, все же фотошоп излишне часто округляет много нужного. Помимо этого - есть утилитка простого извлечения контрольной шкалы из профиля в том случае, если таргет в профиле присутствует.
Также спектральный калькулятор обычно справляется с задачей извлечения колориметрической таблицы из профиля, но у него есть ограничение на размер профиля до 2 мегабайт (ограничение безопасности сервера). А профили с высокой гранулярностью могут "весить" и более 2 мегабайт. Клиентский яваскрипт принципиально не заточен на работу с файлами по соображениям безопасности, поэтому работа с любыми файлами в спектральном калькуляторе - это серверные функции на php.
Если файл icc более 2 мегабайт, можно воспользоваться утилитой xicclu.exe из ArgyllCMS. У нее тоже есть на сегодня ограничение - она не работает с профилями 4 версии, но специалисты обычно и не сохраняют профили версии 4, поддержанной не всеми производителями, а сохраняют в версии 2.
Рассмотрим по порядку, как создать таргет из профиля с помощью xicclu.exe на примере профиля FOGRA51 или PSOcoated_v3.icc, он будет нам удобен и тем, что весит чуть более 2 мегабайт, то есть не доступен пока для препарирования в спектральном калькуляторе, и тем, что официальные профили ECI.ORG, разумеется, пишутся во второй, а не четвертой версии, и тем, что профиль содержит тег targ с колориметрической таблицей, и мы сравним с ней полученный нами результат.

Для начала извлечем из профиля содержимое тега targ нам для контроля с помощью бесплатной программы ICC Profile Inspector:
Выбираем нижний тег targ и копируем его содержимое копипастом в обычный текстовый файл
Выбираем нижний тег targ и копируем его содержимое копипастом в обычный текстовый файл
• 39.58 КБ • 2394 просмотра
Теперь возьмемся за самостоятельное создание мишени из этого профиля (или любого другого). Нам понадобятся вспомогательные файлы для оформления результатов в нужном формате, в будущем вы по образцу создадите любые такие файлы сами, а пока можно воспользоваться уже созданными мной, для профилей CMYK и RGB, скачайте их и киньте в папку с Argyll типа C:\Argyll_V2.1.2\bin Туда же в bin скопируйте и профиль PSOcoated_v3.icc - просто удобно не прописывать кучу путей в такой работе, а все файлы держать в одной папке.
Далее, создаем в папке исполняемых файлов Argyll обычный текстовый файл в нотпаде, но с расширеним имени .bat, например xicclu.bat, и прописываем в него следующие строки:
xicclu -ff -ir -px PSOcoated_v3.icc <it8tab.txt> PSOcoated_v3.txt
xicclu -ff -ia -px PSOcoated_v3.icc <it8tab.txt> PSOcoated_v3abs.txt
pause:

Разница между первой и второй строкой в том, что в первой таргет извлекается с относительным рендеринг интент - ключ -ir, а во второй - с абсолютным RI - ключ -ia. Полные сведения о ключах утилиты xicclu можно посмотреть в html документе из папки doc программы. Я упоминаю виндовый нотпад для пц, потому что на маке у Argyll есть некоторые трабблы с правильной разметкой текста абзацами: на пц, маке и линуксе это разные символы, и автор Argyll забыл про это при компиляции своих программ, созданные на маке текстовые файлы для Argyll зачастую приходится пересохранять в вордпаде под виндовс, чтобы Argyll с ними работал верно.
Ключ -px говорит о том, что мы будем извлекать данные о цвете в цветовой модели CIE XYZ. Argyll много раз был пойман мной на том, что неправильно считает координаты CIE Lab, при этом верно считает XYZ, поэтому я не доверяю ему расчет лабов никогда, лабы из XYZ с верной белой точкой мы посчитаем лучше сами в спектральном калькуляторе, так надежнее.
Запускаем двойным щелком созданный нами файл xicclu.bat. Оператор pause: в нем позволяет убедиться, что никаких ошибок нет, или напротив, прочитать сообщения об ошибках и исправить командный файл. Результатом работы утилиты и нашего bat-файла становятся два текстовых файла:
Как мы убедимся чуть ниже, правильным шагом для извлечения таргета из профиля будет не релативное (относительное) а абсолютное цветовое преобразование. Несмотря на то, что в профиле явно прописана таблица Relative и отстуствует таблица Absolute - абсолют вычисляется по формулам спецификации ICC (стр. 28) из релативной таблицы с учетом белой точки, явно прописанной в профиле в теге wtpt. Таргет, присутствует в профиле в абсолюте (относительная колориметрия при замерах - достаточно редкое явление, и чаще встречается лишь при неправильной калибровке спектрофотометра, нежели осмысленно), поэтому когда мы будем сравнивать наш результат с ним - нам также понадобится абсолютная таблица.
Для справки. Формулы спецификации ICC  (стр. 28) преобразования относительных данных в абсолютные и обратно
Для справки. Формулы спецификации ICC (стр. 28) преобразования относительных данных в абсолютные и обратно
• 87.21 КБ • 2394 просмотра
И к этим формулам белая точка PCS D50 в XᵢYᵢZᵢ из той же спецификации ICC:
Xᵢ​Yᵢ​Zᵢ
96.42​100​82.49​
Полученные нами текстовые файлы с разделителями пробелами сделаны в нестандартном формате, чтобы привести их к стандартному виду колориметрических данных CGATS, делаем следующее:
Открываем файл от Argyll в Excell, указывая разделители пробелы при открытии. Копируем в буфер все содержимое последних колонок XYZ
Открываем файл от Argyll в Excell, указывая разделители пробелы при открытии. Копируем в буфер все содержимое последних колонок XYZ
• 156.91 КБ • 2394 просмотра
Открываем вспомогательный файл it874ar.txt в Excel и копипастом добавляем к нему цвет в XYZ из содержимого буфера
Открываем вспомогательный файл it874ar.txt в Excel и копипастом добавляем к нему цвет в XYZ из содержимого буфера
• 122.26 КБ • 2394 просмотра
Сохраняем в текстовом виде с разметкой табуляторами.
Осталось добавить просто в нотпаде заголовок CGATS в формате CMYKXYZ к нашим файлам. Для этого проще всего пройти по ссылке различный форматов файлов спектрального калькулятора https://cielab.xyz/spectralcalc/ , открыть нужный нам файл CGATS_CMYK_XYZ_Only.txt и просто скопировать из него весь заголовок до строки BEGIN_DATA включительно и последнюю строку END_DATA в наши табличные данные.
Выбор файла CGATS с нужным заголовком таблицы в каталоге https://cielab.xyz/spectralcalc/
Выбор файла CGATS с нужным заголовком таблицы в каталоге https://cielab.xyz/spectralcalc/
• 179.23 КБ • 2394 просмотра
Итого, у нас готовые файлы с IT8 CMYK разметкой и колориметрическим данными XYZ в размерности 0-1. Обычно в CGATS прописывают XYZ в размерности 0-100, но спектральный калькулятор понимает и размерность 0-1 от Argyll. При необходимости перемножьте в Excel столбцы XYZ на 100, но в случае со спектральным калькулятором такой необходимости нет. Тянем в спектральный калькулятор копипастом целиком содержимое файла it874ar_f51_CGATS_abs.txt, по кнопке Color получаем в поле Output ниже лабы, можно их там же кнопкой скачать текстовым файлом:
Теперь мы можем сравнить в бесплатном калькуляторе цветовых различий https://cielab.xyz/colordiff.php полученные нами лабы, и лабы из тега профиля targ:
Копипастом копируем в верхнее и нижнее поля содержимое оригинального таргета из профиля и содержимое вычисленного нами таргета
Копипастом копируем в верхнее и нижнее поля содержимое оригинального таргета из профиля и содержимое вычисленного нами таргета
• 133.58 КБ • 2394 просмотра
Следует учесть, что порядок следования полей в таргете профиля PSOcoated_v3.icc отличается от оригинального исошного IT8.7-4, тем не менее кол-во полей 1617 одинаковое, программы путаются на подобном. Чтобы калькулятор Color Difference не сравнивал разные по описанию строки одинаковых по кол-ву строк таблиц - удалите или впишите в референс или сэмпл сравнения одну строчку так, чтобы кол-во строк сравниваемых таблиц стало разным, тогда калькулятор точно станет искать совпадения CMYK-описания строк обеих таблиц, а не просто сравнит равные по числу строк таблицы не глядя. Cпектральный калькулятор умеет давно переформатировать таблицу профиля PSOcoated_v3.icc в формате IT8 от Heidelberg в стандартном порядке следования строк IT8 для графического отображения тесткарты, но я пока не писал также и переупорядочивание всех строк таблицы на выходе, сохраняю оригинальный порядок. А пока домашнее задание: когда освоите - можете самостоятельно по приведенным примерам оформления создать вспомогательный файл для Argyll и для форматирования CGATS в порядке следования строк таргета в профиле PSOcoated_v3.icc. Кто со мной - тот герой!
Образцы вспомогательных файлов стандартного распространенного формата tc918 для профилей RGB прилагались выше.
Результатом сравнения оригинального таргета и релативной таблицы будут дельты около 5, так и должно быть - поправка на бумагу прописана в релативных таблицах профиля. Результатом сравнения оригинального targ и нами созданного по абсолюту будет крохотная дельта, показывающая, что мы все сделали правильно!
Сравнение targ с абсолютными вычислениями
Сравнение targ с абсолютными вычислениями
• 18.18 КБ • 2394 просмотра
Если ничего не сработало и мы имеем дело с файлом 4 версии, а препарировать его все же надо - можно воспользоваться бесплатной и очень мощной программой IccMAX. При определенном усердии и сравнивая небольшие различия профилей 2 и 4 версий мы можем в режиме xml превратить профиль 4 версии в профиль 2 версии, было бы желание. В конце концов, все что нам нужно в профиле для решения текущей задачи - это содержимое всего пары тегов - A2B1 и B2A1 - релативное преобразование красочных каналов в цвет и цвета в красочные каналы. Можно взять "шапку" с заголовками профиля 2 версии и просто поместить туда эти теги с их табличным содержимым, оформив строго как положено во второй, а не четвертой версии. Если вы уже добрались до этой темы и вам, как и мне, приходится решать подобные задачи - вы точно готовы и справитесь. Успехов!
Аватара пользователя
mihas
Администратор
Сообщения: 1371
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Создание колориметрической таблицы target из профиля icc. Инструкция

Сообщение mihas »

Добываем данные о цвете по референсу импортом icc-профиля в ProfileMaker
Добываем данные о цвете по референсу импортом icc-профиля в ProfileMaker
• 141.97 КБ • 2263 просмотра
Еще мне подсказали вариант с двумя коммерческими программами - ProfileMaker от GretagMacbeth и Color Tool от Heidelberg.

В ProfileMaker выбираем референсом любую тесткарту и в поле измерений Measurment выбираем импортировать профиль. Тетскарты как таковой не получаем, но можем построить профиль, в который будет прописана тесткарта. ProfileMaker создаст в профиле тег DevD с таргетом и тег CIED с цветовым описанием полей таргета, которые и поймет Color Tool. Изящно!

При наличии двух коммерческих программ так делать явно быстрее, чем при наличии бесплатных Argyll и ICC Profile Inspector.

Разовьем эту тему чуть глубже. ProfileMaker пользуется не самым удобным форматом раздельного хранения в разных тегах описаний полей в CMYK и собственно цветовым содержанием полей в XYZ и Lab. Гейделевский Color Tool нам их удобно сливает в одну тесткарту в формате CGATS.

Тем не менее, если мы владеем пока только PM и не владеем софтом от Heidelberg - есть еще вариант.

Распаковываем созданный в PM профиль с помощью бесплатного IccMAX, находим в xml теги DevD и CIED - они-то и содержат раздельно таблицы в CMYK и в XYZ и Lab. В любом табличном редакторе объединяем их в один файл CGATS и все - Color Tool от Heidelberg становится не нужен. Хотя и удобен не таскать таблицы из xml через буфер в табличный редактор, чтобы собрать из двух таблиц одну.

Колориметрическое содержимое тега CIED в формате xml, созданное ПрофайлМейкером для профиля USWebCoatedSWOP без targ:

Код: Выделить всё

<PrivateTag TagSignature="CIED"> <textType>
      <TextData><![CDATA[LOGO_ECI2002
LGOROWLENGTH	89
LGOMCCMYKSEPARATION	"UseCMYKSep = true Separation = { SepID = 6 StartK = '40' WidthK = '1' MaxC = '100' MaxM = '100' MaxY = '100' MaxK = '100' MaxCMYK = '400' } "
Measurement_mode	"correlate"
CORR_COLORANTS_COUNT	"2"
CREATED	"12/15/2020"  # Time: 21:07
INSTRUMENTATION	"Unknown"
MEASUREMENT_SOURCE	"Illumination=Unknown	ObserverAngle=Unknown	WhiteBase=Abs	Filter=Unknown"
NumberOfStrips	5
KEYWORD	"SampleID"
KEYWORD	"SAMPLE_NAME"
NUMBER_OF_FIELDS	8
BEGIN_DATA_FORMAT
SampleID	SAMPLE_NAME	XYZ_X	XYZ_Y	XYZ_Z	LAB_L	LAB_A	LAB_B
END_DATA_FORMAT
NUMBER_OF_SETS	1780
BEGIN_DATA
1260	A1	2.61	2.66	2.06	18.63	0.88	1.26
649	A2	59.78	64.62	7.39	84.29	-5.93	83.42
9	A3	30.53	16.14	14.68	47.16	68.55	-3.61
1327	A4	59.78	64.62	7.39	84.29	-5.93	83.42
1307	A5	30.53	16.14	14.68	47.16	68.55	-3.61
1486	A6	59.78	64.62	7.39	84.29	-5.93	83.42
1487	A7	30.53	16.14	14.68	47.16	68.55	-3.61
1488	A8	59.78	64.62	7.39	84.29	-5.93	83.42
1489	A9	30.53	16.14	14.68	47.16	68.55	-3.61
1490	A10	59.78	64.62	7.39	84.29	-5.93	83.42
1491	A11	30.53	16.14	14.68	47.16	68.55	-3.61
1492	A12	59.78	64.62	7.39	84.29	-5.93	83.42
1493	A13	30.53	16.14	14.68	47.16	68.55	-3.61
1494	A14	59.78	64.62	7.39	84.29	-5.93	83.42
1495	A15	30.53	16.14	14.68	47.16	68.55	-3.61
1496	A16	59.78	64.62	7.39	84.29	-5.93	83.42
..........
1780	T89	30.53	16.14	14.68	47.16	68.55	-3.61
END_DATA
]]></TextData>
    </textType> </PrivateTag>
Ответить

Вернуться в «Колориметрия - наука о цвете: теория и практика»