Как сделать панораму, используя свободное программное обеспечение

Dec 19, 2012 13:13

Пост для тех, кто хочет самостоятельно попробовать сделать панораму.
Профессионалы часто используют Adobe Photoshop с кучей соответствующих плагинов, но цена этого софта по карману разве что специализированным фирмам. Поэтому я расскажу о том, как сделать то же самое без всяких затрат, при помощи свободного программного обеспечения (СПО, freeware). Например, так:



Хочешь быть здоровым - будь им!
(на фото озеро Таир, Марий-Эл)

Эта панорама сделана при помощи Imagic 4.0 Free Browser, что бесплатно, но потребовало очень много неудачных попыток и последующей ручной работы. С тех пор прошло несколько лет, и я теперь вынужден принести большую благодарность Microsoft'у за великолепный подарок, обеспечивающий удивительное качество склейки панорам, например:



панорама у Старого Чандровского (Велосипедного) пруда (смотреть подробности)


Или даже так, всего из трёх фото:



Чебоксарская ГЭС (смотреть подробности)


Но достаточно ли функциональности у СПО?
А это смотря для какой задачи.

Например, посмотрим особый вид панорамы - мини-планеты (сферическая панорама в полярной проекции), как у demyanof:



Чебоксарские планеты, подробнее

Кроме упомянутого Фотошопа, такие проекции умеет делать PTGui и некоторые другие (платные) программы.
Upd: Правда, уже появилась бесплатная программа для Android, что порадует владельцев смартфонов!

Для обычных панорам функциональности свободного программного обеспечения вполне достаточно. Только всё не получается делать в одном месте - приходится пользоваться рядом отдельных программ. Всё довольно просто на самом деле, и совершенно бесплатно причём! Итак, поехали.

1) Берём кучу последовательных кадров с перекрытием по 20-30% с каждой стороны (если лениво, то лучше вертикальных - чтоб по высоте больше захватить; если не лениво, то и в несколько рядов); о точности можно не беспокоиться, можно спокойно снимать с рук.
Но здесь есть важные особенности съёмки:

- более чем желательно снимать с ручными настройками, одинаковыми для всех снимков, иначе панорамный софт не сможет идеально выровнять яркость. К сожалению, обладатели телефонов и простых мыльниц лишены такой возможности, поэтому далее я подробнее расскажу, что можно сделать в процессе обработки фото;

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



Здесь можно посмотреть подробные советы по съёмке панорам

2) Качаем бесплатный FastStone Image Viewer и обрабатываем фотографии при необходимости (например, делаем альфа-коррекцию снимков, которые против солнца - панорамный софт не всегда справляется с этим на 100%). Вот пример, когда это необходимо (вверху два снимка с сильно различной экспозицией, внизу - результат работы Microsoft ICE:



Исходные снимки и результат их склейки


Удивительно, что у него вообще что-то получилось, потому что на правой фотографии неисправляемые пересветы, а на левой - почти полная темнота.
Но результат можно улучшить, просто сделав альфа-коррекцию левого снимка. Тогда при склейке панорамы получается достаточно ровный фон:



Результаты альфа-коррекции первого снимка


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

- для профессионалов: всё-таки постараться "спасти" исходные снимки. К сожалению, для JPG при пересвете сделать уже ничего нельзя. Но при съёмке в формате RAW есть запас в несколько ступеней за теми значениями яркости, что при конвертации формата в JPG отображаются как белый и чёрный;

- для всех остальных: использовать побольше кадров с возможно большим перекрытием. Тогда панорамный софт сможет понять и сделать значительно качественнее:



Склейка программами разных версий


Обе панорамы сделаны из одних и тех же исходных снимков, только верхняя - прошлогодней версией Microsoft ICE, а нижняя - свежей. Видно, что старая не смогла использовать все фотографии, а новая не только смогла, но и гораздо правильнее рассчитала коррекцию яркостей каждого используемого снимка.

Итоговый результат (прошлогодняя версия, после предварительного ручного выравнивания яркости нескольких фото) получился у меня такой (лень было как следует выравнивать яркость слева, поэтому у неба всё-таки остался неправильный градиент цвета и яркости):



Закат на Волге 2011.04.23 - смотреть здесь


Здесь хорошо видна ещё одна проблема непрофессиональных камер (а особенно телефонов) - неравномерность яркости в центре кадра и по краям.
В результате на панораме получаются заметные затемнения в районе стыков кадров.
Эту проблему, вероятно, можно устранить при обработке исходных кадров специальными фильтрами в том же фотошопе, но в бесплатном софте такой возможности я не встречал...

3) Качаем Microsoft ICE (у него лицензия бесплатная для некоммерческого применения). Делаем панораму, при необходимости крутим настройки проекции и т.п. Сохраняем в полном размере, без обрезки полей (чтобы потом редактировать можно было).

Выше вы видели, что склеенная панорама получается из округлых частей. Почему они такие? Да потому что каждая отдельная фотография - это попытка "расплющить глобус на плоскости" - то есть наблюдаемый глазом или объективом сферический угол отобразить на плоскости. Мозг человека хорошо справляется с этой задачей, и мы не замечаем никаких искажений. Разве что те, кто носит очки не постоянно, могут, надевая очки, заметить кажущуюся непараллельность линий. Но с фотографией уже не поспоришь - края и углы относительно середины будут сильно растянуты. Тем сильнее, чем короче фокусное расстояние объектива.
А при склейке эти искажения надо убрать, чтобы склеить фотографии на сфере. Поэтому прямоугольник (где края были растянуты) и становится округлым. И только потом уже "объединённая" сфера снова раскатывается на плоскость.

Теперь посмотрим, какие настройки можно регулировать в программе? Во-первых, это вид проекции, который программа не всегда может определить автоматически. При этом возможны разные варианты, например:



Изменение вида проекции

Также можно повернуть (для длинных панорам это будет S-образным искажением линии горизонта):



Поворот


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



Старый Мокринский железнодорожный мост (см. подробнее)
- выравнивание по земле



Старый Мокринский железнодорожный мост (см. подробнее)
- выравнивание по краю моста

4) Самая трудоёмкая часть. Качаем бесплатный же GIMP и исправляем всякие огрехи (в том числе деформации) картинки, которые возникли главным образом из-за параллакса (см. п.1). Также искажения в районе стыков часто возникают на фотографиях воды, так как панорамный софт пытается склеить убежавшую волну.
Для исправления в тяжёлых случаях может даже потребоваться ручное копирование области с исходного кадра в полученную панораму:



Устранение дефектов склейки


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

На левом снимке вы видите, что после исправления (деформация выделенной области или копирование с другого снимка) на границе области остались нестыковки в плотности фона неба. Такие дефекты мне кажется более удобным (и качественным) исправлять ретушированием в FastStone Image Viewer (см. ниже). А в простейших случаях его будет достаточно для исправления всех подобных дефектов.

К сожалению, произвольную деформацию отдельных областей FastStone Image Viewer делать пока не умеет, поэтому вмятину на линии горизонта (правый снимок) приходится исправлять в GIMP.

5) Открываем полученную панораму в FastStone Image Viewer и ретушируем возможные артефакты панорамного софта, и этим же способом заполняем пустые поля (в разумных пределах, конечно). То же самое можно сделать и в графическом редакторе, но именно здесь мне уж очень нравится инструмент ретуширования!



Заполнение пустых областей

Сначала выполняем клонирование (выбрать "штамп"), чтобы полностью заполнить пустые области, затем переключаем в режим ретуширования и проходим по полученной границе клона и оригинала. С облаками великолепно работает этот способ! Повторять ретуширование можно сколько угодно, с разных исходных точек - и так можно нарисовать совершенно непохожие облака.
Так же хорошо этот метод работает с травой, землёй или асфальтом (например, легко убрать окурок или продолжить дорогу в обрезанных склейкой местах.
А вот с волнами на воде - уже не очень, потому что волны движутся и между соседними кадрами сопрягаются с трудом (панорамный софт иногда даже искажает картинку, обнаружив похожую волну совсем не в том месте).

Далее в этой же программе следует произвести окончательную обрезку. И логотип добавить. И надписи со стрелочками, если надо.

6) Качаем бесплатный ExifTool и копируем все теги EXIF с какого-нибудь из исходных фото в полученную панораму, например:

exiftool.exe -tagsFromFile 100820124290.jpg 100820124290_stitch.jpg

Эта полезнейшая утилита работает из командной строки, кто не умеет - ищите какую-нибудь диалоговую софтину. А EXIF заполнять - признак хорошего тона и дополнительного подтверждения ваших авторских прав. :)

7) Радуемся! :)

P.S. Тут подсказали ещё кучку свободного софта для панорам:

http://hugin.sourceforge.net/ (см. отличный Мастер-класс по созданию панорам в Hugin).
http://stitchpanorama.sourceforge.net/
http://www.shallowsky.com/software/pandora/
http://sourceforge.net/projects/adjustforpanora/

Надо посмотреть на досуге. Подозреваю, что многие из них сделаны на одном и том же свободном движке и отличаются друг от друга сервисом и количеством настроек. И это тоже хорошо, потому что у Microsoft ICE настроек маловато.

софт, freeware, it, мастер-класс, фото, обучение, образование, панорама

Previous post Next post
Up