ICC профиль можно создать используя утилиты из состава Argyll CMS: scanin.exe иcolprof.exe. Этим утилитам требуется TIFF-файл со снятой мишенью, который можно легко получить из dcraw, конвертера, написанного Dave Coffin. На основе исходников этого конвертера появились множество конвертеров, в том числе RPP, столь уважаемый многими фотографами за его возможности.
Мне пришлось собрать DCRAW из исходных текстов с поддержкой Little CMS, необходимой для работы с профилями, поскольку скомпилированные бинарные файлы, распространяемые в Интернете собраны, в основном, без неё. А также я добавил в каталог необходимые утилиты и файлы из состава Argyll CMS. Архив с необходимыми файлами можете бесплатно и совершенно легально скачать отсюда. Исходные коды можно также свободно скачать с сайтов разработчиков.
Итак, все перечисленные программы работают через командную строку. Чтобы получить требуемый TIFF из RAW запускаем DCRAW:
dcraw.exe -v -w -q 3 -o 0 -4 -T FILENAME.CR2 > out.tiff
Опции:
-v - выводить подробную информацию
-w - использует ББ, заданный камерой
-q 3 - использует AHD интерполяцию
-o 0 - на выходе использовать камерное цветовое пространство (ничего не преобразовывать)
-4 - выводить 16-битное изображение с фиксированным уровнем белого и линейной кривой (гамма 1.0)
-T - выводит в TIFF формате
В окне вывода получим следующую информацию:
Loading Canon EOS 5D Mark III image from FILENAME.CR2 ...
Scaling with darkness 2047, saturation 15488, and
multipliers 1.992188 1.000000 1.526367 1.000000
AHD interpolation...
Building histograms...
Writing data to FILENAME.tiff ...
Полученный файл будет достаточно темным. Не удивляйтесь, все нормально, так в действительности выглядят изображения в RAW, делается это производителями специально для сохранения светов. Вот как выглядит уже известная вам фотография без компенсации экспозиции и с гаммой 1.0.
Полученный TIFF необходимо обрезать и оставить только мишень. Я использовал Adobe Photoshop, впрочем это сделать можно в любой другой программе, из бесплатных FastStone вполне справится с этой задачей.
Теперь запускаем программу из состава Argyll CMS, которая создаст промежуточный файл .ti3, который будет содержать информацию о мишени:
scanin.exe -v -p -dip -G 1 out.tiff ColorChecker.cht ColorChecker.cie
Опции:
-v -выводить подробную информацию
-p - компенсация перспективы (на тот случай, когда мишень снята не совсем правильно)
-dip - создать файл диагностики (TIFF файл с ч/б изображением мишени и наложенными патчами), чтобы убедиться в правильности нахождения патчей.
-G 1 - гамма-кривая
out.tiff - обрезанный файл с мишенью
ColorChecker.cht - шаблон определяющий размещение патчей (готовый уже имеется в каталоге)
ColorChecker.cie - референс файл описывающий эталонные патчи colorchecker (готовый уже имеется в каталоге)
В окне вывода получим следующую информацию:
TIFFReadDirectory: Warning, out.tiff: wrong data type 7 for "RichTIFFIPTC"; tag
ignored.
Input file 'out.tiff': w=690, h=461, d = 3, bpp = 16
Data input file 'ColorChecker.cie'
Data output file 'out.ti3'
Chart reference file 'ColorChecker.cht'
Creating diagnostic tiff file 'diag.tif'
About to allocate scanrd_ object
Verbosity = 2, flags = 0x62001
About to read input tiff file and discover groups
adivval = 1.000000
About to calculate edge lines
159 useful edges out of 300
About to calculate perspective correction
Perspective correction factors = 0.000049 -0.000006 345.000000 345.790098
About to calculate rotation
Mean angle = 3.054020
Standard deviation = 1.094437
Robust mean angle = 3.274737 from 141 lines
About to calculate feature information
About to read reference feature information
Read of chart reference file succeeded
About to match features
Checking xx
Checking yy
Checking xy
Checking yx
Checking xix
Checking yiy
Checking xiy
Checking yix
Axis matches for each possible orientation:
0: xx = 0.357382, yy = 0.219280, xx.sc = 0.525162, yy.sc = 0.468298
90: xiy = 0.136393, yx = 0.364334, xiy.sc = 1.015322, yx.sc = 0.462782
180: xix = 0.360985, yiy = 0.187700, xix.sc = 0.524143, yiy.sc = 0.468298
270: xy = 0.133390, yix = 0.328844, xy.sc = 2.497718, yix.sc = 0.502747
r0 = 0.373892, r90 = 0.177318, r180 = 0.363518, r270 = 0.071429
There are 2 candidate rotations:
cc = 0.373892, irot = 3.274737, xoff = 23.333184, yoff = 14.115616, xscale = 1.9
04176, yscale = 2.135391
cc = 0.363518, irot = 183.274737, xoff = -656.638290, yoff = -497.775127, xscale
= 1.907876, yscale = 2.135391
About to compute match transform for rotation 3.274737 deg.
About to setup value scanrdg boxes
About to read raster values
About to compute expected value correlation
About to compute match transform for rotation 183.274737 deg.
About to setup value scanrdg boxes
About to read raster values
About to compute expected value correlation
Expected value distance values are:
0, rot 3.274737: 1681.818239
1, rot 183.274737: 3657.457528
Chosen rotation 3.274737 deg. as best
About to compute final match transform
Improve match
About to setup value scanrdg boxes
About to read raster values
About to write diag file
Writing output values to file 'out.ti3'
Если на этом этапе будет выведена ошибка, проанализируйте её, исправьтесь и повторите действия. Чаще всего программа не может правильно определить мишень и ругается на её качество. Стоит посмотреть также в созданный файл diag.tif и убедиться в корректности определения патчей на мишени.
Осталось создать ICC файл профиля. Запускаем еще одну утилиту из состава Argyll CMS:
colprof.exe -v -A"Canon" -M"Canon EOS 5D Mark3" -D"5DM3 Color Profile" -r 1 -q u -a m -nc out
Опции:
-v - выводить подробную информацию
-A"XXX" - задать производителя камеры
-M"XXX" - задать модель камеры
-D"XXX" - задать описание профиля
-r 1 - среднее отклонение устройства
-q u - ультра качество (самое высокое)
-a m - алгоритм получения матрицы преобразования (для камер актуален только этот вариант)
-nc - не внедрять .ti3 данные в профиль
В окне вывода получим следующую информацию:
No of test patches = 24
Find white & black points
Picked white patch 19 with dev = 0.702319 0.684393 0.679312
XYZ = 0.878129 0.913160 0.739491, Lab = 96.540010 -0.430092 1.190029
Picked black patch 24 with dev = 0.023308 0.023484 0.023875
XYZ = 0.029894 0.031051 0.026818, Lab = 20.459988 -0.079957 -0.970017
Creating matrix...
100%
Matrix = 1.122480 0.011529 0.192155
0.410375 1.177508 -0.205918
0.036959 -0.396428 1.522593
Matrix = 1.122480 0.011529 0.192155
0.410375 1.177508 -0.205918
0.036959 -0.396428 1.522593
Doing White point fine tune:
Before fine tune, rel WP = XYZ 0.926762 0.954210 0.788960, Lab 98.201721 1.19428
4 -0.152630
After fine tune, rel WP = XYZ 0.964200 1.000000 0.824900, Lab 100.000000 0.00000
0 0.000000
abs WP = XYZ 0.844045 0.871342 0.707266, Lab 94.795171 0.737318
1.024600
Black point XYZ = 0.028248 0.029495 0.025014, Lab = 19.840417 -0.345899 -0.57345
5
White point XYZ = 0.844045 0.871342 0.707266
Black point XYZ = 0.028248 0.029495 0.025014
Done gamma/shaper and matrix creation
Profile done
Profile check complete, peak err = 3.537663, avg err = 1.553455
Особый интерес представляет последняя строка с пиковым и средним уровнем отклонений профиля. Среднее значение до 3% считается нормальным, но чем оно меньше тем лучше.
Все, ICC профиль получен, теперь его можно использовать в той же DCRAW следующим образом:
dcraw -v -w -q 3 -p out.icm -o 1 -4 -T FILENAME.CR2
Опции:
-p profilename.icm - указать входной профиль камеры
-o 1 - указать выходное цветовое пространство, sRGB
В окне вывода получим:
Loading Canon EOS 5D Mark III image from FILENAME.CR2 ...
Scaling with darkness 2047, saturation 15488, and
multipliers 1.992188 1.000000 1.526367 1.000000
AHD interpolation...
Applying color profile...
Building histograms...
Writing data to FILENAME.tiff ...
Вот какой TIFF файл был получен в данном случае.
Стоит отметить, что данный подход создания ICC профиля может использоваться только для конкретных сцен, с относительно неизменным освещением, балансом белого и т.п. То есть этот полученный профиль можно применить ко всем почти фотографиям, сделанным в данном месте и в данное время. Если попытаться применить этот же профиль на других фотографиях с другим освещением, то результат будет неудовлетворительным.
Поскольку RPP создает профили также через утилиты Argyll CMS, то смею утверждать, что качество профилей RPP и приведенной здесь методики должно совпадать.
Дополнительные материалы:
Удачных Вам снимков!