[personal profile] ssgen
Не в первый раз уже спрашивают, как/чем сшивать панорамы. Я тоже не так давно задался этим вопросом, ибо 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>, как код для видеороликов на Ютубе. И не забывайте, что панорама - это всегда трафик, поэтому обязательно, при любых условиях, убирайте её под кат.



Не знаю, зачем я так много и так подробно про это расписал, там действительно всё делается очень просто и быстро. Но вдруг кому-нибудь пригодится.

Date: 2011-05-13 11:17 am (UTC)
From: [identity profile] ssgen.livejournal.com
Я тоже на народе держу. На всех браузерах однаково не работает?

Date: 2011-05-14 09:13 am (UTC)
From: [identity profile] nordroden.livejournal.com
Пробовал на Эксплорере, Хроме. Картина одинаковая. А на народе файлы где размещаешь, на созданном сайте или в файлообменнике?

Date: 2011-05-14 09:29 am (UTC)
From: [identity profile] ssgen.livejournal.com
На сайте конечно.

Date: 2011-05-14 09:59 am (UTC)
From: [identity profile] nordroden.livejournal.com
Если тебе не трудно, поясни как размещать файлы на сайте. (я в сайтостроении полный ноль)
Что я сделал.
Создал страничку
В менюшке управления файлами загрузил файлы.
Понимая, что ссылки на файлы должны быть доступны из любого места, на сайте создал текстовый блок со ссылками на файлы
Скопировал ссылки по твоей инструкции на файлы в xml и html.
Блин, не работает, черное окно с баром загрузки, 0%

Date: 2011-05-14 10:04 am (UTC)
From: [identity profile] ssgen.livejournal.com
Наверное в ссылках дело.
Менюшкой не пользовался, файлы загружаю прямо в корневой каталог - http://help.yandex.ru/narod/?id=1112763

Date: 2011-05-14 11:57 am (UTC)
From: [identity profile] nordroden.livejournal.com
Спасибо, всё заработало!

Date: 2011-05-14 01:05 pm (UTC)
From: [identity profile] ssgen.livejournal.com
Отлично :)

Profile

ssgen

December 2016

S M T W T F S
     123
45678 910
11121314 151617
1819 2021 22 2324
2526272829 3031

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 3rd, 2026 12:24 pm
Powered by Dreamwidth Studios