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 (бесплатная).