ssgen (ssgen) wrote,
ssgen
ssgen

Category:

Сшивка панорам

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

Меня интересовали в основном круговые панорамы (сферические как-то не прижились). Так вот, оказалось, что помимо приснопамятного PTGui, на первых страницах результатов Яндексе присутствует в основном только растиражированная с Хабрахабра статья, где используется связка Pano2VR + Microsoft ICE. Естественно, я опробовал этот рецепт, и результатом также остался несколько недоволен. А вот на третьей-четвёртой странице пошли ссылки на менее известные программы, и одна из них реально пришлась по вкусу. Со мной такое вообще-то редко бывает, но это действительно крепко сбитый немецкий натурпродукт. Во-первых, практически всё автоматом, настраивать и подгонять почти ничего не надо - тык-тык, две минуты жужжит, результат готов. Во-вторых, почти не лажается при сшивке (PTGiu лажался постоянно - приходилось вручную сводить по точкам). В-третьих, умеет делать флэш. В-четвёртых, работает с уймой графических форматов, даже никоновский рав кушает с аппетитом. Есть и недостатки: нет откатки (то есть нельзя отменить последнюю выполненную операцию), а интерфейс только английский (русского нет), хотя для меня это особой проблемы не представляет.

Программа называется PanoramaStudio 2Pro. Ищите в интернете, а я пока расскажу, как сшить в ней панораму. Для начала снимаем круговую панораму (можно и частичную, то есть меньше 360 градусов), располагая кадр вертикально. Сегменты должны быть сняты с некоторым "перехлёстом", чтобы в панораме нечаянно не образовалось "щелей", из-за которых сшивка не получится. Но при этом перехлёст не должен быть больше 50% - тогда объекты на панораме могут начать двоиться (на одной из первых панорам у меня получилось рядом два памятника Орлёнку). То же самое относится к первому и последнему кадрам - если они перехлёстываются более чем на 50%, последний кадр лучше удалить. Ниже показан исходный материал с цифровой камеры.



Запускаем программу и выбираем "Create single-row panorama" (создать панораму в один ряд).



Сшивка работает в четыре этапа: Import > Align > Render > Save.
Этап первый, загрузка картинок. Выбираем меню File > Import Images (импорт изображений).



Выделяем все исходные файлы, а затем нажимаем кнопку "Открыть".



Картинки грузятся в окно, тут их можно проскроллить и, если где-нибудь найден перехлёст более 50%, удалить лишние изображения (через контекстное меню). Этап второй - Align (выравнивание). Если это круговая панорама, выбираем "Align a 360 degree panorama", а если частичная - то "Align (partial) panorama".



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



Красная линия - это и есть линия горизонта. Перетаскиваем её туда, где она находится на снимках. Приблизительно, особая точность не нужна.



Через минуту жужжания получаем некоторое подобие сшивки. Вот тут видим лажу - нестыковка по уровню горизонта. Я специально подобрал пример, где возникла эта проблема, чтобы показать, как её решать - на самом деле в полусотне сшитых панорам она возникла всего два раза. На то, что соседние сегменты отличаются по цвету, не смотрите - всё это будет автоматически исправлено на следующем шаге. Итак, исправляем нестыковку: Edit > Change Image Alignment (изменить выравнивание изображений).



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



Примерно так. Полного совпадения не добиться, но оно и не нужно - после нажатия на кнопку "Done" программа снова выравнивает этот стык.



Проскрольте панораму ещё раз. Если всё нормально, нажмите "Render" (рендеринг).



Красным выделяются границы обрезки. Можно, ничего не меняя, нажать "ОК", а можно сначала поскроллить - иногда сверху-снизу удается безболезненно добавить десяток-другой пикселей.



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



Последний этап - сохранение. В меню Save - три варианта: Save as image (сохраняет в виде большого JPEG-файла), Save as Flash or Java panorama (для Интернета) и Save as Screensaver/.EXE (сохраняет как экранную заставку или как EXE-файл).



Тут показано сохранение в EXE/SCR. Если экранная заставка мне без надобности (баловство это всё), то EXE - очень полезная функция, очень удобно отдать такую панораму кому-нибудь на флешке, потому что для просмотра больше ничего не надо - запускай и смотри. Из всей массы параметров здесь я настраиваю только "Panorama output size" (выходной размер), обычно выбираю 85%.



А это сохранение в виде флэшки для публикации в Интернете. Здесь "Panorama output size" нужно выбрать поменьше (я выбираю 35%), чтобы файл получился не слишком большим. И ещё - вместо Java нужно выбрать Flash.



Ну и уж до кучи, раз уж начал, расскажу как выложить такую панораму в ЖЖ. В результате сохранения получается четыре файла: html, xml, jpg и panoStudioViewer.swf. Флешка одна на все панорамы, она подгружает в себя xml и jpg. Допустим, сайт будет называться mysite.narod.ru. Вносим изменения в .xml (розовым выделено то, что нужно добавить):



Вносим изменения в .html (розовым выделено то, что нужно добавить):



Теперь файлы panoStudioViewer.swf, .xml и .jpg загружаем на сайт (все три в один и тот же каталог).

При написании поста в ЖЖ копируем из .html код, выделенный голубым, не забыв заключить его в <lj-embed>...</lj-embed>, как код для видеороликов на Ютубе. И не забывайте, что панорама - это всегда трафик, поэтому обязательно, при любых условиях, убирайте её под кат.



Не знаю, зачем я так много и так подробно про это расписал, там действительно всё делается очень просто и быстро. Но вдруг кому-нибудь пригодится.
Tags: полезности
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 27 comments