Luminance HDR: создание HDR в Linux из нескольких кадров

В этой заметке приводится краткое описание и впечатления по созданию изображений с высоким динамическим диапазоном HDR (High Dynamic Range). Изображения HDR в Linux можно с помощью программы Qtpfsgui, которая теперь называется Luminance HDR.

Небольшой исторический экскурс
Как справедливо отмечают авторы ресурса HDRmania, первое сообщение о процессе компрессии динамического диапазона обычных цифровых изображений, снятых с экспокоррекцией, появилось в 1993 г. А в 1995 году последовало появление соответствующей математической теории.
В 1997 году на конференции SIGGRAPH (Special Interest Group on GRAPHics and Interactive Techniques) Пол Дебевек (Paul Debevec), исследователь из Института Южной Калифорнии, представил метод соединения нескольких изображений, сделанных с разной экспозицией, для формирования единого HDR изображения. С ростом популярности цифровых фотоаппаратов и удобного для использования программного обеспечения термин HDR начал широко применяться для обозначения этого процесса. Более подробный обзор, с указанием на научные статьи, есть у меня на английском.


Cъёмка HDR-изображений
Для того, чтобы получить HDR-изображение, потребуется снять несколько кадров с разным значением экспозиции (или экспокоррекции). Напомню, что экпокорреция это поправка в экспозицию снимка относительно той, которая определена при помощи экспонометра. Для регистрации HDR-изображения:

  1. Устанавливаем камеру на штативе.
  2. Переводим камеру в ручной режим установки экспозиции. Выберите нужное значение диафрагмы для вашего кадра (например, f/8 или меньше, если вам нужна большая глубина резкости) и установите минимальное значение ISO.
  3. Изменяем освещённость в самой яркой части кадра (точечным замером или в режиме Av, чтобы учесть только её) и отмечаем время экспозиции. Сделайте то же самое с самой глубокой тенью в кадре.
  4. Определяем число и величину нужных экспозиций. Для этого возьмите за основу выдержку, измеренную для светлой части. Умножьте это число на 4, чтобы получить следующее значение экспозиции, отличающееся на 2 EV. Умножайте на 4 для получения следующих значений, пока не превысите экспозицию, измеренную для тени. Для большинства кадров вне помещения, не включающих солнце, 3 экспозиций с шагом 2 EV часто достаточно, чтобы покрыть весь динамический диапазон.
Напомню, что сдвиг экспозиции на 1 EV означает изменение количества света, попавшего на фотоматериал, в 2 раза. Для создания HDR-снимка часто достаточно сфотографировать три кадра: с экспокоррекцией -1 EV, 0 EV и +1 EV.


Работа с Luminance HDR в Linux
Трудновыговариваемое название программы Qtpfsgui объясняется самими авторами так: Qt это библиотека Qt4 для отображения графических элементов, pfs - главная внутренняя библиотека, а gui - Graphical User Interface, графический интерфейс пользователя. На такие названия, конечно, хочется попенять авторам - и они таки услышали! Теперь программа называется Luminance HDR. Сайт программы
Luminance HDR всё там же. Новые версии становятся всё удобнее и гламурнее:
From forBlogs


Итак, фотографии сняты и теперь можно приступить к созданию HDR-снимка. Запускаем Luminance HDR в Linux и выбираем все файлы изображений для HDR-фотографии сразу. После этого нас спросят об алгоритме построения HDR снимка. Это показано на рисунке ниже:


После этого будет рассчитано HDR-изображение из указанных снимков. Созданное изображение появится в главном окне программы:


Созданное изображение можно сохранить в один из форматов, поддерживающих HDR:
  1. OpenEXR (расширение: exr )
  2. Radiance RGBE (расширение: hdr)
  3. Tiff: 16bit, 32bit (float) и LogLuv (расширение: tiff)
  4. Raw (различные расширения)
  5. PFS native format (расширение: pfs)
Если же требуется просматривать созданное изображение обычными графическими просмотрщиками, имеет смысл прибегнуть к тональной компрессии снимка и сохранить его в JPEG/TIFF. Тональная компрессия это преобразования тональных значений изображения из более широкого диапазона в более узкий. Например, HDR изображение с динамическим диапазоном 100 000:1 будет преобразовано в изображение с тональными значениями в диапазоне от 0 до 255. Для этого нажимаем на кнопку Tonemap the HDR и выбираем один из методов тональной компрессии. Qtpfsgui содержит 8 алгоритмов тонального отображения, среди которых можно отметить следующие алгоритм Drago и Fattal.

Алгоритм Drago предназначен для имитирования восприятия человеческого глаза и полезен, когда нужно добиться естественных тонов. Алгоритм Fattal хорош для создания сюрреалистических, очень эффектных фотографий, однако он усиливает шумы и может создавать при одних и тех же параметрах из HDR фотографий при тоновой компрессии фотографии, выглядящие по-разному.

Для примера приведу HDR-изображение, которое я снял своей древней как мамонт камерой Casio QV-4000: три фотографии со значениями экпокоррекции -2EV, 0EV и +2EV пересчитаны в изображение с высоким динамическим диапазоном:

После применения тональной компрессии полученное HDR-изображение можно сохранить в форматах JPG или TIFF.

Ссылки
Ответы на часто задаваемые вопросы по HDR можно найти тут (на английском) и здесь, а так же можно посмотреть на образцы фотографий. Скачать Qtpfsgui можно на сайте авторов.

12 комментариев: |высказаться!| RSS-лента дискуссии.|
Shortbread комментирует...

"если вам нужна больНая глубина резкости"
"что программа делает своё дело, и дЕлает его хорошо."
Интересная статья, как и все остальные, впрочем. Именно с Вашей помощью я стал дебианщиком, ещё с Саржа. Да и диски помогли, которые вы выслали. Спасибо :)

virens комментирует...

2 Shortbread комментирует...
Спасибо за найденные косяки, правки внёс.

Именно с Вашей помощью я стал дебианщиком, ещё с Саржа.
Очень рад :-)

triklozoid комментирует...

"Измяем освещённость в самой яркой.." - ИзмЕНяем
"После этого нас спросят об алгоритме, построение HDR снимка." - кажется что-то не так, что может быть "..алгоритме построения HDR снимка"?

Очень вовремя появился пост, только на этих выходных пытались вспомнить, как же называется эта штука.

Qosko комментирует...

Ну вот. А то я всё photomatix'ом под win пользовался. Через virtualbox. Спасибо, автор.

virens комментирует...

2 triklozoid комментирует...

Спасибо за правки, внёс в пост. ЧТо-то спелчекер совсем мышей не ловит :-)

Очень вовремя появился пост, только на этих выходных пытались вспомнить, как же называется эта штука.
Давно собрался написать, да всё руки не доходили. Рад, что пригодилось.


2 Qosko комментирует...
Ну вот. А то я всё photomatix'ом под win пользовался.
Не знаю, кто такой фотоматикс. КТПФСГУИ в целом справляется с задачей, хотя интерфейс, если честно, немного скудоват.

Evtomax комментирует...

Вот если бы в фотографии-примере сделать ещё пару снимков с уменьшением экспозиции, то было бы намного интереснее, ибо небо получилось бы полностью незасвеченным.

Стоит ещё добавить, что qtpfsgui умеет автоматически выравнивать снимки друг относительно друга, поэтому штатив хоть и желателен, но не обязателен. Ещё на фотоаппарате следует отключить автоматическую настройку баланса белого.

Владислав комментирует...

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

А наиболее приемлемый алгоритм тональной компрессии - Mantiuk. С помошью него можно добиться как вполне естественных изображений, так и сюрреалистичных эффектов.

С Fatal-ом у меня вообще не получилось подружиться, он совершенно по-разному работает при разных размерах результата тональной компрессии. А подбирать нужные параметры фильтра на изображени высокого разрешения - слишком долго.

Evtomax комментирует...

Владислав, делал до 8-ми снимков с разными экспозициями без штатива, и qtpfsgui их отлично сводил, используя align_image_stack из hugin.

Алгоритм Mantiuk тоже является моим любимым :)

Fatroll комментирует...

хм, что то на последней картинке больше на обычную фотографию похоже (:

у меня, например, вот так (photomatix под вайном)

http://lh4.ggpht.com/_K6UfCzFYeGM/Sj42LSoYGhI/AAAAAAAAAK8/C-nfWYkCzSQ/s912/hdr.png

Evtomax комментирует...

Fatroll, а то, что вы снимали, прекрасно влезает в LDR, поэтому делать HDR бессмыслено :)

Fatroll комментирует...

Evtomax, а что, по-вашему, должно не влезать в LDR и влезать в HDR?)

Анонимный комментирует...

"Изменяем освещённость в самой яркой части кадра"
Измеряем всё ж.
Спасибо за статью!

Отправить комментарий

Подписаться на RSS-ленту комментариев к этому посту.