Exposure fusion своими руками

Feb 04, 2011 04:45



Для начала немного теории, кого интересует сугубо практическая часть, могут пропустить.



Довольно часто в реальной жизни случается ситуация, когда динамический диапазон снимаемой сцены не помещается в один цифровой снимок.
На практике это означает, что при попытке снять нормально проэкспонированный кадр, вы получаете снимок, в котором:
  • Либо выбита часть светов - присутствуют обширные белые области, в которых по замыслу должны быть детали.
  • Либо присутствуют слишком глубокие тени, необходимые детали из которых не вытащить программными средствами без сильного шума и потери цвета (выражаясь по научному - крайне низкое отношение сигнал/шум).
  • Но чаще всего в разной степени присутствуют оба артефакта.

  • Наиболее часто подобные ситуации можно встретить в интерьерной и ночной уличной съемках.

    Общепринятым методом борьбы с подобным явлением является техника объединения нескольких по-разному проэкспонированных кадров в один.
    В подавляющем большинстве случаев хватает трех кадров, получаемых с помощью автоматического брекетинга. На данный момент опция автоматического брекетинга присутствует практически в любой современной DSLR. Недоэкспонированный кадр в этом случае помогает восстановить выбитые света, переэкспонированный - улучшить детализацию в тенях.

    Существует два наиболее общеупотребимых практических способа по объединению нескольких кадров в один.

    Суть первого заключается в двух этапах:

    1. С помощью специального алгоритма из нескольких по разному проэкспонированных исходных изображений создается один 32-битный графический файл, в котором яркость каждого пиксела (а если быть точным, то каждой цветовой составляющей пиксела) описывается 32-битным числом с плавающей запятой. Подобный формат позволяет хранить очень большой диапазон яркости - 256ev (самое яркое место в 2256 = 115792089237316195423570985008687907853269984665640564039457584007913129639936 раз ярче самой темной области), что гораздо больше, чем может встретиться в реальной жизни.

    2. Поскольку современные мониторы могут воспроизводить лишь сильно ограниченный диапазон яркостей, прямой просмотр данного файла невозможен без алгоритма адаптации его к средству вывода, то есть сжатию динамического диапазона до возможностей монитора. Таких алгоритмов существует два: первый, называемый тоновой компрессией, просто "сплющивает" исходный динамический диапазон до динамического диапазон монитора - картинка после такой операции, как правило, выглядит очень блеклой и практически бесцветной. Второй, несколько более изощренный способ - тонмаппинг, позволяет "сплющивать" динамический диапазон не по одному методу для всего снимка сразу, а по-разному для разных его областей, что дает бОльшую детализацию и контраст на выходе. Минусом данного алгоритма является сложность его настройки под конкретную фотографию, без нее на выходе можно увидеть много неприятных артефактов, в основном - яркостные ореолы и сильный шум на однотонных участках.

    Второй, более простой и менее капризный способ - exposure fusion, что по-русски можно перевести как "сплав из нескольких экспозиций". Для реализации этого способа существует специализированное ПО, например Photomatix Pro, однако, в отличие от первого способа, мы можем сделать его и стандартными средствами фотошопа, не полагаясь на автоматику. Его мы и расмотрим ниже.

    Исходные данные:

    У нас есть интерьер, снятый с помощью брекетинга в три исходных кадра: один нормальный, другой в 4 раза темнее, третий в 4 раза ярче.
    Замечу, что кадр тренировочный и никаким образом не претендует на серьезую интерьерную работу, поэтому прошу не обращать внимания на плохую композицию и прочие недостатки, не имеющие прямого отношения к рассматриваемой теме



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



    Убедимся, что света в районе люстры безвозвратно потеряны (в противном случае наша затея не имеет особого смысла).
    Просто сделаем максимальную поправку экспозиции в темную сторону (-4ev)
    Как видите, деталей в районе люстры действительно не хватает:



    Что ж, приступим! Сестра, скальпель!

    Для начала зададим некоторые общие параметры конвертирования для всех трех экспозиций.

    1. Убираем в ноль резкость и шумодав - они кушают полезную информацию из изображения (почему - большая тема для отдельного мастер-класса, поверьте на слово):



    2. Поскольку объектив широкоугольный - правим радиальную хроматику (обязательно это делать после убирания шарпенинга и шумодава - иначе вы рискуете не увидеть картинку хроматики как она есть на самом деле у вашего объектива):

    Было


    Стало


    Далее, ставим для светлого кадра такую поправку экспозиции, как будто он у нас проэкспонирован нормально, в нашем случае -2ev:



    В темном кадре пытаемся вытащить по максимуму света, не трогая экспозицию - ручка восстановления светов на максимум:



    На этом с конвертером все, жмем Open Image.

    Работа в фотошопе делится на 3 стадии:
    1. Восстановление теней
    2. Восстановление светов
    3. Финальная косметика

    1. Восстановление теней

    Кладем светлый кадр поверх нормального, идем в Layer -> Layer Options -> Blending Options.
    Поскольку из светлого кадра нас интересуют только тени (которые проработаны на порядок лучше, чем в нормальном кадре), сделаем так, чтобы света остались из нормального кадра, а тени пришли из светлого, для этого установим бегунок так, как показано на рисунке:



    Важно, чтобы в переходе одного кадра в другой не было резких границ и артефактов, для этого необходимо обеспечить плавность этого перехода - светлая ручка бегунка разделяется надвое. Чтобы разделить бегунок, подергайте его мышкой с нажатым Alt (на PC) или Option (на Mac).

    Визуально все осталось практически по-прежнему, однако обратите внимание на гистограмму:

    Было:


    Стало:


    И на то, как радикально ушел шум в тенях:

    Было:


    Стало:


    Далее объединяем слои в один.

    2. Восстановление светов

    Здесь используется такой же трюк - кладем поверх полученного изображения темный кадр и идем в опции слоя, отличается лишь положение бегунков, в нашем случае оно будет таким:



    Было:


    Стало:


    Замечу, что в вашем случае, если все же видны нежелательные резкие переходы или иные артефакты в светах, нужно сделать дополнительную коррекцию кривыми чуть прогнув книзу общую кривую у нижнего слоя и чуть выгнув кверху общую кривую у верхнего.

    3. Финальная косметика

    У полученного изображения теперь отсутствуют какие-либо значимые артефакты нехватки динамического диапазона, поэтому можно немного разогнать контраст (в вашем случае это может и не понадобиться).
    Я обычно делаю дубль, ставлю режим overlay и на глаз применяю к нему коррекцию кривыми до тех пор пока результат не понравится, в моем случае будет как-то вот так (на вашем мониторе может быть немного темновато):



    Далее, хотелось бы некоторые участки сделать поярче, не теряя общего контраста, для этого опять-таки делаем дубль, задаем ему нужную кривую и по маске прорисовываем необходимые участки:

    Кривая:


    Маска:


    Последние штрихи:
    Вы наверно уже заметили неприятный синий рефлекс на потолке и еще некоторых деталях - это отсвет от огромной двухметровой плазменной панели справа, не попавшей в кадр, убрать его можно просто обесцветив синие тона в диалоге HSL, но при возможности (у меня ее не было) лучше позаботиться о таких штуках на стадии съемки.

    Далее ресайз до веб-размера, легкий шарпенинг и вот он результат:



    P.S.: да, я сознательно ни разу не употребил термин HDR, дабы все уловили суть, а не пустились в бессмысленный флуд.

    P.P.S.: использованная аппаратура не отличается экзотикой: Canon EOS 450D + Tokina 11-16/2.8

    P.P.P.S.: для тех, кому хочется посмотреть больше примеров, вот несколько моих постов с картинками, сделанными по этому алгоритму:

    http://binaryanimal.livejournal.com/548823.html
    http://binaryanimal.livejournal.com/548133.html
    http://binaryanimal.livejournal.com/547877.html
    http://binaryanimal.livejournal.com/546896.html
    Previous post Next post
    Up