DCRAW - это бесплатный raw-конвертер консольного типа, т.е. использующий только командную строку и не имеющий графического интерфейса. Его написал и продолжает добавлять поддержку новых камер талантливый программист из США - Дейв Коффин. Исходный код можно всегда скачать по адресу https://www.cybercom.net/~dcoffin/dcraw/dcraw.c

DCRAW конвертирует только RAW файлы и не декодирует JPEG, TIFF и другие форматы файлов!!!

Поскольку Дейв распространяет только исходный код, я скомпилировал этот код для MS Windows с поддержкой Little CMS, jasper и jpeglib (поддержка уже добавлена Дейвом и я никаких изменений в код не вносил).

Текущая версия 9.26 от 25.05.2015. Скачать.

Для контроля (в т.ч. того, что файл не заражен вирусами) используйте утилиту MD5 (скачать можно здесь). Команда: md5.exe dcraw.exe, должна выдать 6CED59E2FF72886ADB1B28F10CDF0592.

Формат командной строки DCRAW имеет следующий вид:

dcraw [ОПЦИЯ]... [ФАЙЛ]...

dcraw возвращает 0 если  может расшифровать последний файл и 1, если нет.

Основные опции

-v
Выдает подробные сообщения, а не только предупреждения и ошибки.
-c
Направляет сконвертированное изображение или миниатюру в стандартный вывод (stdout).
-e
Извлекает сгенерированное фотокамерой изображение-миниатюру из RAW-файла. Выдается файл JPEG или PPM, в зависимости от используемой фотокамеры.
-z
Изменяет время последнего доступа и модификации AVI, JPEG, TIFF или raw файла на время получения снимка, предполагая, что часы фотокамеры настроены на время по Гринвичу.
-i
Идентифицирует файлы без их конвертации.
-i -v
Идентифицирует файлы и показывает метаданные без их конвертации.

Восстанавливающие опции

-I
Читает raw пиксели из стандартного ввода (stdin) с порядке, используемом процессором без заголовка. Используйте dcraw -E -4 чтобы получить значения raw пикселей.
-P повреж_пиксели.txt
Читает список поврежденных пикселей из данного файла вместо файла ".badpixels". Смотри в разделе ФАЙЛЫ описание данного формата.
-K темновой_кадр.pgm
Вычитает темновой кадр из сырых данных. Для получения темнового кадра сделайте снимок в raw в полной темноте (например, закрыв объектив фотокамеры светонепроницаемой крышкой) и выполните dcraw -D -4 -j -t 0.
-k уровень_черного
Когда тени выглядят недостаточно черными, необходимо поднять уровень черного. Для измерения уровня черного в Linux используйте команду pamsumm -mean к темновому кадру (dcraw -D -4 -j -t 0 фото.raw | pamsumm -mean).
-S уровень_насыщения
Когда пересвеченные области выглядят розовыми, необходимо понизить уровень насыщения (не путать с насыщенностью). Для измерения уровня насыщения, сделайте снимок какого-либо блестящего объекта и выполните dcraw -D -4 -j -c фото.raw | pamsumm -max
Уровени черного и насыщения, установленные по умолчанию, обычно верны.
-n шумовой_порог
Использует вейвлеты для подавления шума с сохранением настоящих деталей изображения. Лучшее пороговое значение должно лежать где-то в промежутке от 100 до 1000.
-C увел_красный увел_синий
Увеличить красный и синий канал в заданное множителями количество раз (обычно от 0.999 до 1.001) для устранения хроматической аберрации.
-H 0
Урезает все пересвеченные области до сплошного белого (действие по умолчанию).
-H 1
Оставляет пересвеченные области неурезанными в различных оттенках розового. Позволяет выявить сохранившиеся детали.
-H 2
Смешивает урезанные и неурезанные значения для постепенного перехода к белому.
-H 3+
Восстанавливает пересвеченные области. Малые числа больше подходят для белых областей, большие числа - для цветных. Попробуйте -H 5 в качестве компромиссного варианта. Если результат выглядит недостаточно хорошим, выполните -H 9, вырежьте цветные пересвеченные области, и вставьте их в изображение, сгенерированное командой -H 3.

Цветовые опции

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

-w
Использует баланс белого, заданный камерой. В случае, если таковой не задан, выводит предупреждение и использует другой метод.
-a
Расчитывает баланс белого, используя всё изображение.
-A отступ_слева отступ_сверху ширина высота
Рассчитывает баланс белого, используя прямоугольную область изображения. Вначале выполните dcraw -j -t 0 и выберите область с нейтрально-серым цветом.
-r множ0 множ1 множ2 множ3
Позволяет задать пользовательский баланс белого. Эти множители могут быть взяты из вывода команды dcraw -v.
+M или -M
Использует (или не использует) матрицу цвета из метаданных фотокамеры. По умолчанию установлено +M, если выбрана опция -w. В противном случае -M. Эта опция влияет только на камеры Olympus, Leaf и Phase One.
-o [0-5]
Позволяет выбрать выходное цветовое пространство :

0   Вывод в собственном цветовом пространстве камеры (уникально для каждой фотокамеры) 
1   sRGB D65 (по умолчанию) 
2   Adobe RGB (1998) D65 
3   Wide Gamut RGB D65 
4   Kodak ProPhoto RGB D65 
5   XYZ

-o профиль.icm
Позволяет задать выходное цветовое пространство через профиль
-p фотокамера.icm
Использует ICC профиль для преобразования цветового пространства фотокамеры.
-p embed
Использует ICC профиль, внедренный в raw снимок.

Опции интерполяции

-d
Показывает сырые данные как изображение в градациях серого без интерполяции.
-D
То же, что и -d, но в полностью необработанном виде (без усиления яркости каналов).
-E
То же, что и -D, но маскированные пиксели не обрезаются.
-h
Выдает цветное изображение, уменьшенное вдвое. В два раза быстрее, чем -q 0.
-q 0
Использует быструю низкокачественную билинейную интерполяцию.
-q 1
Использует интерполяцию VNG (по Переменному Числу Градиентов).
-q 2
Использует интерполяцию PPG (Группировка Пикселей по Шаблону).
-q 3
Использует интерполяцию AHD (Адаптивную Гомогенно-Ориентированную).
-f
Интерполирует RGB как четыре цвета. Используется, когда на полученном изображении видны искажения в виде ложной сетки 2x2 (при VNG интерполяции), или узор в виде лабиринта при AHD интерполяции.
-m число_проходов
Подчищает цветовые артефакты (искажения) путем многократного применения медианного фильтра 3x3 к цветовым каналам R-G и B-G.

Опции вывода

По умолчанию, dcraw записывает 8-битные PGM/PPM/PAM данные с гамма кривой BT.709, уровнем белого, базирующемся на гистограмме, и без метаданных.

-W
Запрещает использовать автоматическую коррекцию яркости. Использует фиксированный уровень белого, игнорируя гистограмму изображения.
-b яркость
Делит уровень белого на это число, равное 1.0 по умолчанию.
-g степень максимальный_подъём
Настройка гамма кривой, по умолчанию BT.709 (-g 2.222 4.5). Если вы предпочитаете sRGB гамму, воспользуйтесь -g 2.4 12.92. Для простой потенциальной кривой, установите максимальный подъём равный нулю.
-6
Записывает 16-битное изображение вместо 8-битного.
-4
Записывает линейные 16 бит, то же, что -6 -W -g 1 1.
-T
Выдает на выходе файл формата TIFF с метаданными вместо PGM/PPM/PAM.
-t [0-7,90,180,270]
Поворачивает выводимое фото. По умолчанию, dcraw применяется поворот, заданный фотокамерой. -t 0 отключает все виды вращения.
-j
Для фотокамер Fuji Super CCD показывает изображение, повернутое на 45 градусов. Для фотокамер с неквадратными пикселями выдает изображение нерастянутым, с сохранением его оригинальных пропорций. В любом случае, каждый выводимый пиксель соответствует одному raw пикселю.
-s [0..N-1] или -s all
Если файл содержит N сырых изображений, выбирает одно или "all" (все) для расшифровки. Например, фотокамеры Fuji Super CCD SR генерируют второе изображение, недоэкспонированное на 4 шага диафрагмы, что позволяет запечатлеть детали в пересвеченных областях.

Файлы

.badpixels
Список поврежденных пикселей вашей фотокамеры, указывающий dcraw интерполировать вокруг них. Каждая строка определяет колонку, ряд и Юниксовое время повреждения одного пикселя. Например:
# .badpixels file for my Canon PowerShot G2, serial no. 4624504380  
# dcraw will use this file if run in the same directory, or in any  
# subdirectory.    

# Always use "dcraw -d -j -t 0" when locating bad pixels!!    

# Format is: pixel column, pixel row, UNIX time of death    

# This pixel went bad between August 1 and 4, 2002  
 962   91 1028350000  
# This pixel went bad between January 9 and 30, 2003  
 902  877 1043000000    
# These are only visible in low light, so I haven't dated them:  
 621  943 0  
1285 1067 0  
1286 1067 0  
2181 1532 0    

# I swept these up 4/19/2005  
 763   36 1110000000  
1827  466 1110000000    

# low light  
 198 1288 1110000000  
 346  328 1110000000  
 429  273 1110000000  
 621  943 1110000000  
 624  874 1110000000  
 848  400 1110000000  
1682 1686 1110000000  
1892 1250 1110000000  
2234  484 1110000000  
2242  618 1110000000 
   
 555  698 1135100000	# December 20-21, 2005  
 640  157 1139000000	# February 2-5, 2006

Эти координаты определяются для изображений, к которым не были применены какие-либо виды вырезания или вращения, поэтому используйте dcraw -j -t 0 для локализации поврежденных пикселей.

 

 

 

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

Цветовая модель - это система, описывающая цвет, используя некоторые координаты. Среди широко используемых можно назвать RGB, CMYK, HSV, Lab, XYZ. Не нужно путать цветовую модель и цветовое пространство. sRGB - это цветовое пространство, использующее модель RGB. Среди цветовых пространств можно выделить AdobeRGB и ProPhoto RGB, как наиболее часто используемые фотографами. Цветовое пространство характеризуется прежде всего своим охватом, т.е. все возможные значения цвета в цветовом пространстве формируют некоторое тело (гамут) в цветовой координатной системе. Любые значения за пределами охвата этого тела называют внегамутными. Внегамутные цвета при перцептивном преобразовании обрезаются и в этом кроется главная опасность преобразований из одного пространства в другое. Трансформации из одного пространства в другое возможны напрямую (если это возможно), но чаще преобразование производится через промежуточное пространство XYZ или Lab, которое называют пространством соединения профилей (Profile Connection Space). Если Вам что-либо из этого абзаца незнакомо или непонятно, настоятельно рекомендую прямо сейчас начать ликвидировать пробелы (Википедия и море-океан Интернет-источников в помощь).

Преобразование RGB-значений одного пространства в RGB-значения другого сводится к следующим шагам:

1. Привести RGB к значениям в диапазоне 0..1
2. Выполнить гамма-преобразование для приведения RGB в линейный вид
3. Выполнить расчет матрицы преобразования из исходного RGB в целевое RGB и преобразовать RGB
4. Выполнить гамма-преобразование для целевого пространства
5. Привести RGB к 8-битному или 16-битному виду

Пункт 3 будет раскрыт подробно ниже. Рассмотрим на примере перевод RGB (169, 240, 135) из пространства Adobe RGB (D65, gamma 2.2) в пространство sRGB (D65, gamma ~2.2).

Откроем Adobe Photoshop, создадим новый документ в пространстве Adobe RGB (1998) и зальем его фон цветом RGB (169, 240, 135), затем выполним команду Edit->Convert to Profile и выберем профиль sRGB IEC61966-2.1 (Intent=Relative Colorimetric, Engine=Adobe (ACE), Use Black Point Compensation=False, Use Dither=False). Возможно, для кого-то будет удивительным, но RGB-значения станут 128, 240, 129.

ColorTool является 32 разрядным Windows-приложением, предназначенным для получения информации о цвете на экране монитора. Приложение может быть использовано для анализа цвета и создания палитр Adobe Photoshop.

ColorTool будет крайне полезен дизайнерам, веб-программистам, художникам, фотографам и другим творческим личностям, активно уделяющим внимание цвету. Теперь не нужно копировать содержимое экрана или сохранять изображения из браузера и открывать их в Photoshop, чтобы проанализировать и сохранить цвета.

В Интернете можно найти несколько десятков подобных приложений. Большинство «экранных пипеток» используют значения RGB в пространстве монитора, а не в стандартных пространствах типа sRGB. Как правило, отсутствует информация для Lab, HSP. Некоторые приложения некорректно выполняют вычисления (включая платные) или неудобны в использовании. Поэтому автор принял решение написать свою программу.

В этой статье рассмотрим создание dual-illuminant DNG camera profile с помощью DCamProf, dcraw и утилит из состава Argyll CMS, а также моего приложения - pmaker.

Т.е. наша цель: создать dcp-файл, который можно использовать в ACR (а также Lightroom) или RawTherapee в качестве входного профиля камеры (+оптика+фильтры).