Если нельзя, но очень хочется, то нужно обязательно и ничего в мире не стоит того, чтобы делать из этого проблему!


Интересна Java? Кликай по ссылке и изучай!
Если тебе полезно что-то из того, чем я делюсь в своем блоге - можешь поделиться своими деньгами со мной.
с пожеланием
столько времени читатели провели на блоге - 
сейчас онлайн - 

воскресенье, 25 июля 2010 г.

How to: Как сделать сферическую панораму простым фотоаппаратом с рук?

Давно хотел написать об этом. Для начала вот несколько моих работ. Во-вторых то, что я делаю можно сделать  вот этим чудом:


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

Сказали бы мне это раньше - я бы не поверил. Но все не так как кажется. Если интересно как - жмем тут...

Для начала нам предстоит научиться собирать материал для панорамы. Если набить руку (а это делается в результате изготовления первых 10 панорам), то этот этап занимает 2 минуты.

Мы должны сфотографировать все, что видим вокруг себя - сверху, снизу, справа, слева, спереди и сзади - так мы охватим всю сферу. Т.к. угол обзора у моего фотоаппарата не большой, то мне приходится делать много фоток - три (иногда и четыре) ряда по +/-15 фотографий. Фотографии должны хорошо перекрываться,чтобы их можно было грамотно сшить. Сшивать будет компьютер, а он не такой разумный как ты и я, но делает это в разы быстрее.

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



Как видно с демки, фотки перекрываются на 20-30% и, что важно, в тех местах, в которых есть какие-то уникальные объекты. Т.е. если предоставить компьютеру возможность сшить две фотки чистого неба, то он не сможет найти точек соприкосновения и не склеит их. А от того, как компьютер определит общие точки на отдельных фотографиях будет зависеть время, затраченное на ретуширование и исправление дефектов после склейки (в худшем случае, придется переделать, а в лучшем - пол часа работы).

Вот пример двух фоток, с малым числом контрольных точек.


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


Нам это не подойдет - мы стремимся к максимальной реалистичности. 

В нашем примере таких (пересекающихся менее, чем на 5%) фоток достаточно, но в силу того, что каждая из пары таких фоток пересекается еще с 3-6 фотками (ряд выше, ряд ниже, сбоку) - в целом картина выравнивается.

Это первое правило: фоткать так, чтобы соседние две фотки пересекались на треть в области, которая содержит множество деталей.

Т.к. мы фоткаем с рук, то при малой освещенности (туман, облачно, вечер) выдержка автоматически увеличивается и малейшее движение - фотка получится не четкой. У меня удавалось с рук делать +/- четкие фотки на максимальной выдержке 0,6 секунды. Руки трясутся и все тут. Все что дальше - и мне нужен штатив.

Второе правило: когда фоткаем - не тряесем руками и желательно вообще не дышим.

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

Четвертое правило: снимать фотки рядами. Это оптимально для программы, которая будет склеивать. Так она найдет больше контрольных точек и сделать это быстрее. Фоткаем вначале первый центральный ряд из 15 фоток. Потом верхний, потом нижний, дальше пару фоток над головой и пару (или еще один ряд из 5-6) под ногами. Крутимся по часовой стрелке.

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

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

В результате должно получится около 50 фоток. В статье мы будем работать вот с этими наработками.

Следующий этап - склейка. Пользоваться мы будем программой PTGui Pro версии 8.3.3. При желании ее можно найти в сети прямо с таблетками, либо скачать с официального сайта и там же заплатить за лицензию.

Запустив программу, мы увидим ее :)


Перетаскиваем все фотки в программу


или выбираем меню Images->Add... и выбираем все фотки там.


После жмем "2. Align Images..."


И ждем пару минут, пока программа определит контрольные точки на каждой фотке и сведет все фотки вместе.


После генерации контрольных точек, можно будет посмотреть что получилось. Для этого нажмем на кнопочку "Panorama Editor"


И увидим вот такую вот картинку.


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

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


А еще, особенно когда над головой купа проводов, может быть так:


Кроме того вертикальные линии могут быть не совсем вертикальными, к примеру как тут (снова я напартачил):


Этих два типа глюков мы сейчас сведем к минимуму.

Скажу сразу - лучше попыхтеть над контрольными точками минут 15, чем тратить часы времени на ретуширование и выравнивание в графическом редакторе. 

Закроем этот редактор и на основном окне нажмем кнопку "Control Point Asistant"


В диалоге кликнем на "Show suggestions for improving the results"


Дальше он нам предоставит все, по его мнению глючные моменты, среди которых:
- склеенные серии фотографий, которые не соединены с другими сериями - часто случается,  когда программа не может найти общих точек между двумя фотками под ногами и основными рядами фоток. Если не снимать чего там под ногами, то это опадает.
- две фотки после склеивания вроде как перекрываются, но общих контрольных точек у них нет. Вот это нас интересует больше всего.


Пары фоток представлены в виде линков. Кликнем, к примеру на первую пару "14 and 15". При этом программа отправит нас в редактор контрольных точек.


Для для удобства я выбираю в selectbox опцию Fit, чтобы разглядеть всю фотографию целиком и определить где же фотки пересекаются,


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


Теперь нам предстоит выставить контрольные точки. Выбираем точку на левом рисунке и находим ее же на правом. Когда точек будет больше 3х, то программа будет автоматически предлагать альтернативу и все что от нас потребуется - только немного подкоректировать. Точек желательно ставить больше 4х, а лучше около 10ти по всей площади области пересечения.

Вот как я это сделал для первой пары.


Продолжение следует...

13 комментариев:

  1. Спасибо за подробное описание процесса! Давно хотел такое сделать, да все откладывал поиск информации на потом.

    ОтветитьУдалить
  2. Жду продолжения с нетерпением.

    ОтветитьУдалить
  3. Пожалуйста. Хочу, чтобы вы сами пошли немного дальше статьи, чтобы появилось некоторое число вопросов.

    ОтветитьУдалить
  4. Продолжение готово
    http://apofig.blogspot.com/2010/08/2.html
    Приятного аппетита.

    ОтветитьУдалить
  5. Ух-х, как же я вам благодарен!

    ОтветитьУдалить
  6. Просто преогромнейшее спасибо! Выручили)

    ОтветитьУдалить
  7. В первый же день склеил две панорамы, результат превзошол все ожидания - практически без изъянов
    огромное спасибо за статью

    ОтветитьУдалить
  8. спасибо)
    разберу.

    ОтветитьУдалить
  9. Спасибо огромное выручил!

    ОтветитьУдалить
  10. Этот комментарий был удален автором.

    ОтветитьУдалить