<
  • Главная
Статьи

Програми перетворення RAW-файлів в кольорове зображення

  1. RawPhoto GIMP-2.0 plug-in
  2. UFRaw
  3. Як це зібрати

Камера - це вимірювальний прилад для реєстрації зображення. Результатом її роботи є необроблена послідовність чисел (raw - «сирий», необроблений), кожне з яких зареєстровано відповідним чутливим елементом камери. Цей масив існує завжди в пам'яті або оформлений у вигляді файлу. Програма для роботи з ним теж потрібна завжди. Вона може виконуватися камерою або зовнішньої великий ЕОМ, але вона завжди присутня. У граничному випадку її виконує експериментатор, заміряючи напругу на фотоприймачах і зафарбовуючи розграфлену на квадрати міліметрівку відповідно до отриманих значеннями. Для того щоб перетворити масив даних в зображення, потрібно знати параметри матриці, як мінімум число чутливих елементів в рядку і напрямок рядків щодо кадру. Як за допомогою Photoshop в цьому випадку отримати чорно-біле зображення, описано в статтях: Скарб, закопаний Casio і Цифровий задник Leaf valeo 11 . Щоб відновити колір, треба ще знати колір і порядок розташування фільтрів перед чутливими елементами. Якщо камери записують необроблені дані тільки для внутрішніх цілей, то файл з ними зазвичай влаштований дуже просто, але якщо його збираються віддати фотографу, то його структура ускладнюється, проводиться стиснення без втрат, записується додаткова інформація про параметри зйомки, може міститися мініатюра для попереднього перегляду. Зазвичай камери відразу внутрішніми засобами перетворять вихідні дані в кольорове зображення, але частина інформації при цьому втрачається. Тому у фотографа, який звик самостійно проявляти плівку, виникає природне бажання отримати повний контроль над обробкою вихідних даних.

Для повного контролю потрібно знання операцій, вироблених з даними програмою, і конструкції камери. Цим умовам відповідає відома з 1997 року програма DCRAW Д. Коффина (Dave Coffin) яка містить, окрім алгоритму обробки, і інформацію про конструкцію величезної кількості камер. Її роль в цифровій фотографії важко переоцінити. Щоб зрозуміти, наскільки велике її вплив, досить зайти на сторінку розробника. Власне програми цього типу є необхідною і достатньою умовою існування цифрової фотографії. Все інше примха і розкіш. Але розкіш іноді буває дуже приємна і зручна, тому на ній ми зупинимося в другій частині статті.

Як випливає з тексту на сторінці автора, код цієї програми використовується майже у всіх альтернативних (програмами виробника) програмах перетворення RAW файлів в кольорове зображення. В тому числі, і в таких, в цілому, платних програмах, як Photoshop. Сам модуль перетворення Photoshop Camera Raw plug-in , Втім, для Photoshop CS, поширюється вільно. Використовується ця програма і в безкоштовному прекрасному редакторі GIMP .

Сама програма DCRAW існує у вигляді вихідного коду на C. Все інше зробили інші люди. Програма на сьогоднішній день підтримує 142 камери. В тому числі, більшість RAW форматів, які можуть бути викликані тільки зі службового меню. Наприклад: Casio Exlim Pro 700! Включена в Photoshop частина цієї програми дозволяє перетворювати тільки офіційні файли RAW, їх в останній версії тільки 70. Оскільки програма написана на С, то в разі появи нової камери, зі злегка відрізняються параметрами, модернізувати програму для роботи з цією камерою може будь-хто, більш- менш знайомий з мовою С.

У прекомпілірованние вигляді ця утиліта включена в багато дистрибутиви Linux, мається на портах FreeBSD, як бінарного пакета є і для DragonFlyBSD (і доступна, як і всі бінарники для цієї ОС, на сайті GoBSD .) Є версії і для DOS.

Найпростіша реалізація цієї програми дозволяє запустити її з командного рядка.

$ Dcraw file_name

Що на виході дасть однойменний (не рахуючи суфікса) файл у форматі PPM ( Portable Pixel Map або тут ), Був запропонований Jef Poskanzer в 1988 році. Для роботи з цим форматом існують бібліотеки на С pbmplus і libnetpbm . Тобто на такий конвертований файл можна обрушити, наприклад, всю міць Gimp'а. Що вже само по собі непогано ...

DCRAW в своєму розпорядженні достатньо великим набором опцій. Ознайомитися з ними можна на man-сторінці - man (1) dcraw. Або просто запустивши цю програму без опцій і аргументів. Спробуємо зробити це і ми, зрозуміло, супроводивши висновок коментарями на рiдной мове (російськомовного хелпа ця програма, начебто, поки не має):
° -i ідентифікація raw-файлу, даного в якості аргументу команди, без його конвертації; висновок її виглядає приблизно так:
імя_рек.raw is a Casio EX-P600 image.
° -c конвертація raw-файлу з напрямком результату на стандартний висновок; очевидно, що у відповідь послідує повідомлення про неможливість виведення зображення на термінал; однак якщо перенаправити висновок в файл -цю команду в формі
° dcraw -c file_name.raw> file_name1.ppm
° можна використовувати для присвоєння вихідного файлу довільного імені;
° -v висновок повідомлень в ході конвертації;
° -f інтерполяція RGBG як 4-кольорового зображення (Interpolate RGBG as four colors);
° -d конвертація в чорно-біле зображення в режимі документа (Document Mode (no color, no interpolation));
° -q швидка, низькоякісна інтерполяція кольорів (Quick, low-quality color interpolation);
° -h (Half-size color image (3x faster than -q));
° -g установка показника ступеня гамма (Set gamma (0.6 by default, only for 24-bpp output));
° -b установка значення яскравості (Set brightness (1.0 by default));
° -a використання автоматичного балансу білого (Use automatic white balance);
° -w (Use camera white balance, if possible)
° -r (Set red multiplier (daylight = 1.0))
° -l (Set blue multiplier (daylight = 1.0))
° -2 запис ppm-файлу в форматі 8 біт на канал, опція за замовчуванням (Write 24-bpp PPM (default))
° -3 запис PSD-файлу в форматі 16 біт на канал (Write 48-bpp PSD (Adobe Photoshop))
° -4 запис ppm-файлу в форматі 16 біт на канал (Write 48-bpp PPM)

Можливості у dcraw, як видно, не слабкі. І, теоретично розмірковуючи, цілком доступні для користувача. Ось тільки використовувати їх безпосередньо з командного рядка не так вже й просто. Чи не через якусь особливу складності опцій самих по собі, а в принципі: підбір тих же значень гамма-корекції, та ще без візуального контролю отриманого результату, - справа не дуже тривіальне. І виникає питання - а чи не можна до dcraw прикрутити якийсь графічний інтерфейс для спрощення таких дій? Адже навіть самий затятий прихильник командного рядка погодиться з тим, що кесарів -кесарю, а слюсарів - слюсареві ...

Зручніше було б мати окреме вікно або повзунок для вибору кожного параметра, та ще й окреме вікно, щоб можна було спостерігати за результатами. Кому-то зручно спостерігати за змінами зображення, для кого-то більш наочним є гістограми яскравості до і після зміни параметра. Оскільки коди відкриті, то знайшлося багато добровольців, які написали оболонки з графічним інтерфейсом для зручності роботи з цією програмою. Gimp

А ось тут пора б і згадати про давно обіцяне Gimp'е. Тема ця кілька складна для розгляду. З одного боку, за що не візьмись в растровій графіці - Gimp виявиться при справі, і хоч пару слів про нього сказати можна. З іншого ж - відразу виявляється, що пари слів буде мало, і доводиться говорити ще і ще. Тому власне про Gimp'е мови тут не піде - лише про те, як прикрутити його до обробки кадрів цифрових камер.

Так виглядає інтерфейс GIMP. Навіть з цієї картинки легко помітити, що все необхідне в ньому є, і побудований він дуже логічно. З огляду на, що разом з необхідною бібліотекою він займає всього 10 Мб, варто завантажити і спробувати самому :-)
Готова до установки програма за адресою: http://gimp-win.sourceforge.net/stable.html .
Близько 10 Мб двома файлами: GTK + 2 for Windows (version 2.4.14) і The Gimp for Windows (version 2.2.3)

Одна з відмінних рис Gimp'а - його практично необмежена розширюваність, що випливає з його природи: відкриті вихідні коди, але ж ... І реалізується ця розширюваність двома способами: з одного боку, через так звані script-fu (тобто програми, написані на мовах сценаріїв типу Perl або Sheme), з іншого - plug-in'амі, невеликими Сі-програмами, які вимагають автономної компіляції, але природним чином інтегрованими в загальну структуру Gimp'а.

Так ось, dcraw і може виступити в якості одного з таких Gimp plug-in'ов. Для цього досить встановити все той же пакет dcraw. після чого спроба відкрити за допомогою Gimp'а будь-який з raw-форматів, раніше безуспішна, викликає панель такого вигляду

Так Gipm plug-in відкриває raw-файли

Нічого нового, власне кажучи, ми на цій панелі не побачимо: перемикачі відповідають наведених вище параметрів командного рядка dcraw, і то не всім. Однак вона позбавляє від необхідності їх запам'ятовування. А головне, підбирати яскравість або баланс кольорів, клацаючи по стрілках, дещо простіше, ніж задавати їх вручну. Правда, функції попереднього перегляду отриманого результату ми не виявляємо - все одно доведеться виконати конвертацію. Але, тим не менш, якийсь візуальний контроль все ж має місце бути. Взагалі з завданням графічного інтерфейсу цей варіант справляється погано, тому розглянемо ще два з них, скомпільовані для Windows. Естествеено, близького результату можна добитися і для інших ОС, просто поділ праці між авторами статті призвело до того, що ця частина тестувалася на машині, яка вміє працювати тільки з вікнами.

RawPhoto GIMP-2.0 plug-in

Автор: Pawel T. Jochym

Як ми бачимо, ця оболонка просто запускає dcraw, що відбивається у вікні терміналу з параметрами, взятими з графічного інтерфейсу. Зверну увагу, що в першому рядку програма визначає тип камери, причому її не вдається обдурити, змінивши розширення файлу.

UFRaw

Автор: Udi Fuchs

UFRaw містить код dcraw всередині себе, має більш багаті налаштування, відображає дві гістограми яркостей - до і після перетворень. Ця програма може працювати і незалежно від GIMP і зберігати результати в файлі. Обробка проводиться з 16 бітними числами і тільки потім перед передачею в GIMP числові значення округлюються до 8 біт. 8 біт - це, мабуть, єдине, що мене зупиняє від повної відмови від Photoshop. Цікаво, як ця програма обробляє екзотичний знімок камери FUJIFILM FinePix F700 .

Описані програми припускають, що з їх можливостями ви будете розбиратися самостійно, тому тільки зверну увагу на параметр: Clip Saturated pixels у першій програмі і Unclip в другій. Він відповідає за те, що робити, якщо в одному з каналів сигнал зашкалив - відкинути і значення в інших каналах або дати, як є. Якщо порівнювати з тим, як цей файл обробляє Photoshop Camera Raw plug-in , То легко помітити, що є різниця.

Що краще, я судити не беруся, але є привід задуматися, яку програму краще використовувати в кожному конкретному випадку. На додаток зазначу, що Photoshop Camera Raw plug-in має більше можливостей, що відносяться до додаткової обробки. Можна регулювати придушення шумів і спробувати виправити хроматичні аберації, причому іноді досить успішно.

Як це зібрати

Вище ми неодноразово підкреслювали, що всі згадані тут програми доступні у вигляді прекомпілірованние пакетів для переважної більшості дистрибутивів Linux і BSD-систем. Однак можливо, що згідно із законом всесвітнього свинства саме для вашої системи їх і не виявиться. Або - в ній буде застаріла версія. Або, нарешті, ви захочете додати будь-які функції. Загалом, причин для самостійної збірки програм з вихідних може бути безліч - аж до оптимізації під наявне "залізо". Так що приділимо цьому питанню кілька слів.
Переважна більшість вихідних текстів вільних програм поширюється у вигляді тарбаллов - tar-архівів, стислих за допомогою утиліт компресии gzip або bzip2, і мають вигляд * .tar.gz або * tar.bz2, відповідно. Так що перший крок після отримання такого тарбалла з Мережі - його розпакування в підходяще місце:
$ Tar xzvf name.tar.gz
або
$ Tar xjvf name.tar.bz2
відповідно, і перехід в утворився підкаталог командою cd name. А далі все відбувається за допомогою трьох чарівних слів - команд

$ ./configure

$ make

$ Make install

Перша команда виконує сценарій попереднього конфігурації (створення такого - завдання розробника), друга здійснює власне збірку програми, третя інтегрує утворилися виконані бінарники, бібліотеки, документацію та інше в належні місця файлової системи (за замовчуванням зазвичай - в підкаталоги каталогу / usr / local, такі , як / usr / local / bin, usr / local / lib, і так далі.
Правда, спочатку непогано виконати ще одне попереднє дію - команду
$ ./Configure --help
і уважно ознайомитися з її висновком - це буде список всіх передбачених розробником опцій конфігурації. Подробиці про складання програм можна прочитати тут .
Таким чином збирається більшість програм, аж до дуже складних, на зразок Gimp'а. Однак якщо звернутися до вищезгаданої сторінці Девіда Коффина, то можна побачити, що його програма dcraw є всього один файл - вихідний текст на мові Сі під ім'ям dcraw.c. І - жодного сценарію конфігурації ...
У цьому випадку справа йде ще простіше - безпосередньо викликається компілятор мови Сі (і в Linux, і BSD-системах їм буде gcc) з аргументом - ім'ям файлу исходника, і опцією, значенням якої буде ім'я цільового бінарники:
$ Gcc -o dcraw dcraw.c
Правда, в такій формі ми негайно отримаємо повідомлення про помилку - бо для складання і роботи dcraw необхідні деякі бібліотеки (зокрема, графічних форматів, типу libjpeg), про місцезнаходження яких в самому исходнике, природно, не сказано ні слова (знаходження потрібних бібліотек - одне із завдань сценарію конфігурації). Що ж, зазначимо шляху до бібліотек явно. У Linux це, швидше за все, буде каталог / usr / lib, в BSD-системах в даному випадку буде потрібно / usr / local / lib. А ще будуть потрібні шляху до так званим заголовним (header) файлів (свого роду змісту бібліотечних функцій) - це, швидше за все, будуть / usr / includes і / usr / local / includes, відповідно. І в підсумку команда для збірки dcraw прийме наступний вигляд:
$ Gcc -I / usr / local / include / -L / usr / local / lib / -o dcraw dcraw.c
Тепер залишається тільки скопіювати отриманий бінарник в підходяще місце - наприклад, в / usr / local / bin. Правда, таким шляхом ми отримаємо тільки сам конвертор raw-файлів, придатний для використання в командному рядку. Щоб вбудувати його в Gimp і отримати, таким чином, доступ до графічного інтерфейсу, буде потрібно ще і власне програма-plugin - rawphoto. Це точно такий же самотній файл - rawphoto.c, який також береться зі сторінки Девіда Коффина. І вступити з ним потрібно точно так же - скомпілювати із зазначенням відповідних шляхів і імені цільового бінарники rawphoto. Тільки ось помістити останній потрібно в каталог для plug-in'ов Gimp - наприклад, в ~ / .gimp-2.2 / plug-ins для користування собою, коханим, або куди-небудь типу / usr / X11R6 / share / gimp / plug- ins - щоб зробити надбанням усіх користувачів (приклад дан для файлової ієрархії DragonFlyBSD, в Linux шлях буде іншим, залежних від дистрибутива) .Заключеніе

На цьому закінчується наше спільне опис ключового для сьогоднішньої фотографії процесу отримання з набору даних кольорового зображення. Друга частина описує з'єднання камер з комп'ютером і не зачіпає другий ключової проблеми - управління зйомкою за допомогою ЕОМ, а присвячена тільки питання передачі даних. На думку Володимира, це вже відноситься до розкоші, і якщо камера взагалі не передає дані, то це не применшує її достоїнств, і з цим можна змиритися, переносячи дані за допомогою карт пам'яті, в кінці кінців, до необхідності діставати касету з плівкою фотографи давно звикли :-)

І виникає питання - а чи не можна до dcraw прикрутити якийсь графічний інтерфейс для спрощення таких дій?


Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью