Enblend – это программа сборки панорам, которая для сшивки фрагментов использует многомасштабный (многоканальный, multi-resolution) сплайн, благодаря чему швы между фрагментами становятся малозаметными. Смысл применяемого алгоритма в том, что разные интервалы пространственных частот фрагментов сшиваются по-разному, причем, чем больше частота, тем менее размыта маска, используемая для сшивки. Кроме этого программа пытается разместить маску так, чтобы исключить области, несовпадающие на фрагментах, например, возникающие из-за ошибок параллакса. Полученные автоматически маски можно подправить вручную.

Enblend вызывается из командной строки, но существуют графические оболочки, такие как Enblend Front End (бесплатная). Enblend только обрабатывает швы, работая с уже выравненными фрагментами (геометрически, по цвету и по экспозиции), поэтому вначале нужно использовать какую-либо программу, которая умеет это делать. Предельный размер изображения (даже промежуточного) для enblend – два гигапикселя.

Фрагменты не должны пересекаться слишком сильно (для этого случая разработан enfuse, см. ниже). Могут быть использованы цветовые пространства CIELAB, CIECAM02 с глубиной цветности вплоть до 64 бит на канал (плавающая запятая). При этом используется перцептуальное отображение и предполагается, что условия просмотра таковы, что освещение соответствует точке белого D50, а зрение наблюдателя полностью адаптировано.

Каждый фрагмент помещается в отдельный файл или слой tiff-файла. Каждый файл (и слой) должен содержать изображение размера, равного размеру собранной панорамы, в котором соответствующий кадр должен занимать свое положение. Остальное пространство изображения в файле (слое) пусто. Таким образом enblend узнает, как выравнены кадры геометрически.

Порядок имен файлов, содержащих фрагменты, должен соответствовать порядку, в котором фрагменты следуют в изображении, например, слева направо. Каждый горизонтальный ряд многослойной панорамы нужно объединять за один вызов программы, а затем вызвать enblend для объединения всех полученных рядов.

Результирующий файл содержит альфа-канал, и изображение не имеет ровных краев, нуждается в обрезке.

Enfuse – это программа, которая объединяет несколько снимков одной и той же сцены для того, чтобы получить:

• HDR-изображение – используются снимки, снятые с разной экспозицией (можно даже взять один raw-файл и получить из него несколько tiff-изображений разной яркости, при этом идеальное выравнивание будет обеспечено автоматически!);

• изображение с увеличенной глубиной резкости – используются снимки, снятые с разной дистанцией фокусировки (focus stack, стопка фокусов, стек фокусов, совмещенный фокус);

• изображение с увеличенной глубиной резкости – используются снимки, снятые с разными диафрагмами (метод F-ступеней);

• уменьшение шума – используются снимки, снятые с одними и теми же параметрами.

Более того, enfuse может объединять снимки одной и той же сцены, имеющие разный контраст, насыщенность, оттенок цвета и другие характеристики. Главное, чтобы снимки были идеально (попиксельно) выравнены. Цель такого преобразования задается пользователем с помощью критерия (см. ниже). Программа enfuse также использует многомасштабный сплайн, но в отличие от enblend, который создает маску только для швов, enfuse создает маску для всего кадра.

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

Если в качестве критерия указана экспозиция, то в результирующее изображение попадет пиксель из того кадра, в котором яркость пикселя ближе всего к средней яркости изображения. Такой критерий выбирает наиболее «правильно» экспонированные пиксели. Если в качестве критерия указана насыщенность, то выбирается наиболее насыщенный пиксель. Если в качестве критерия указан локальный контраст, то выбирается пиксель с наибольшим локальным стандартным отклонением яркости. Наконец, если в качестве критерия указана энтропия, то выбирается пиксель с наименьшей локальной энтропией (наибольшим разнообразием цвета соседних точек). Точнее, сравниваются локальные энтропии того из rgb-каналов, который имеет минимальную локальную энтропию. При этом выбираются наиболее детализированные участки, но и наиболее шумные.

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

Программа использует профили ICC и модель восприятия цвета CIECAM02.

Enfuse вызывается из командной строки или из hugin, но существуют и графические оболочки, такие как EnfuseGUI (бесплатная).

Перейти на страницу:

Похожие книги