Поради як зшивати панорами
Давно хотів написати цю замітку. Розповім про те, як можна порівняно легко склеювати панорами з окремих фотознімків. Хоча на всіх ілюстраціях знімки екрану зроблені в Лінуксі, всі описувані програми доступні і користувачам інших операційних систем (Windows, MacOS X). Так що аудиторія цієї замітки помітно ширше моєї звичайної аудиторії. На відміну від панорамного софта, який найчастіше згадується в рунеті, ці програми вільні і поширюються безкоштовно. Отже, герої сьогоднішнього дня:
Hugin. Графічний інтерфейс для склеювання панорам. У прикладах використовувалася версія 0.7.0-beta5. Програма названа на честь одного з воронів Одіна.
Autopanosift. Програма шукає «сполучні точки» між окремими кадрами. У більшості випадків викликається з Хугін.
Enblend. Бесшовно склеює окремі кадри в єдине зображення. Вона зазвичай теж запускається автоматично з Хугін, хоча в складних випадках її можна запускати і вручну.
Як знімати панорами
В результаті отримуємо набір кадрів майбутньої панорами. Наприклад, такий:
Як склеювати кадри в Hugin
Запускаємо Хугін. У сучасних версіях Хугін всі основні дії доступні прямо з його першої вкладки. Один по одному, зверху вниз. Спочатку завантажуємо фото:
Після цього потрібно створити контрольні точки. Тиснемо «Об'єднати ...»:
Після цього запуститься Autopanosift:
Як правило, досить натиснути кнопку «Compute» і дочекатися, поки програма знайде всі контрольні точки.
Коли Autopanosift закінчить, кнопка «Exit» в його віконці стане доступна:
Тиснемо і потрапляємо назад в Хугін. Спочатку відкриється вікно попереднього просмора
Це результат попередньої зшивання. Щоб побачити проблемні області, зручно перемкнути режим сполучення з нормального на «Різницю», тоді в області перекриття кадрів світлий колір буде відповідати розбіжності зображень:
Максимальна похибка оптимізації склала 25 пікселів, тобто одна з контрольних точок відстоїть від своєї пари на сусідньому знімку на 25 пікселів. Це дійсно погано.
Перейдемо на вкладку «Контрольні точки» і, попарно розглядаючи кадри, подивимося, як їх розставив Autopanosift. Ось, наприклад, і наша проблемна точка:
Проблемна точка виявилася десь в хмарах. І це добре, це легко виправити. Взагалі, слід уникати розміщення контрольних точок на мінливих об'єктах. хмарах, що коливається траві, хвилях. Контрольні точки на таких об'єктах - майже гарантія проблем зшивання.
На жаль, Autopanosift не вміє розпізнавати об'єкти на фото і передбачати їхню поведінку. Тому результати його роботи потрібно коригувати вручну. Зокрема, точки на хмарах можна просто прибрати.
Інший нюанс. Autopanosift не вміє розпізнавати лінію горизонту або гір, або стіну будівлі, а для глядача дуже важливо, щоб вони були рівними, нерозривними. Щоб це забезпечити, найпростіше просто додати подекуди точки вздовж таких ліній, тоді їх положення буде враховуватися при оптимізації панорами.
На ілюстрації я додаю таку точку:
Для цього я натискаю на вибраному пункті на знімку зліва, а потім приблизно в тому ж місці на знімку праворуч. Найчастіше Хугін правильно розміщує парну точку на другому знімку. Іноді ж йому це не вдається, і тоді можна побачити таке повідомлення:
Нічого страшного, парну точку можна уточнити вручну. Сучасні версії Хугін послужливо збільшують околиця точки, так що правильно поставити парну точку легко. Уточнивши її положення, натискаємо «Додати».
Ще пара рад про розташування точок: уникайте «кучкованія» всіх контрольних точок в одному місці. особливо якщо це місце знаходиться на передньому плані, невеликі помилки в положенні цих точок будуть відповідати великим зсувам кадру при оптимізації. Намагайтеся «викладати» контрольні точки вздовж важливих для ока контурів (і навпаки, не ставте занадто багато там, де око не відчуває лінії).
Ось, наприклад, порівняйте як розставила крапки програма:
і як краще їх розташувати:
Є ще один тип контрольних точок, приклад яких я не буду приводити, тому що в даній панорамі вони не знадобилися. Якщо обидві точки пари поставити на один і той же кадр, то поставлять горизонталь або вертикаль в цьому кадрі. Це корисно, якщо в кадрі є архітектурні споруди або дерева. Один відомий дизайнер багато писав про те, що будівлі на фотографіях повинні стояти вертикально.
Поправивши контрольні точки, спробуємо ще раз оптимізувати панораму. До речі, якщо перейти на вкладку «оптимізатор», то можна буде вибрати, які саме параметри кадру оптимізувати. Мені здається, що дуже часто кращих результатів можна досягти, якщо оптимізувати не тільки положення кадру, але і його поворот навколо оптичної осі. «(Y, p, r)». Особливо це вірно для панорам, знятих з рук (знімаючи з рук, легко ненавмисно трохи нахилити камеру).
Дуже корисні функції «По центру» і «Умістити», а ось функцією «Вирівняти» треба користуватися обережно. Якщо панорама була знята з горизонтально вирівняного штатива, то вирівнювання взагалі не повинно вимагатися, якщо ж зняли з рук, і кадри пішли «хвилею», то іноді вирівнювання допомагає прибрати хвилю, але мені здається, що при цьому погіршується результат зшивання. Функція «Вирівняти» в Хугін досить нова.
Тепер, якщо все в порядку, робимо останній крок. Переходимо на вкладку «Зшивач», вибираємо проекцію, раджу ще раз розрахувати поле зору і вибрати оптимальний розмір (при якому не відбувається зменшення зображення).
Результат зшивання я завжди зберігаю в форматі TIFF, тому що потім його ще доводиться редагувати. Тиснемо «Зібрати», і чекаємо:
Чекаємо довго, це, мабуть, найдовший обчислювальний процес у всьому технологічному ланцюжку. Кінець цього процесу виглядає приблизно так:
Усе. У нас тепер є великий файл зі зшитою панорамою. Зберігаємо проект Хугін і закриваємо. Далі потрібно довести зшиту панораму до розуму.
Обробка зшитою панорами
Щоб обрізати нашу панораму, двічі клацнемо на комірці з вихідним файлом A1. Відкриється нове вікно з зображенням:
Масштабується за допомогою Ctrl + коліщатко мишки. Затиснувши Ctrl і перетягуючи мишку від лівого верхнього кута до правого нижнього виділяємо прямокутну область:
Так, виділяти прямокутну область в nip2 потрібно саме так: від верхнього лівого кута до правого нижнього і затиснувши Ctrl.
Тепер в головному вікні nip2 з'являється новий осередок A2:
Саме вміст цього осередку (вже обрізану панорамe) ми і зберігаємо в файл.
В даному випадку я обрізав з невеликим запасом, тому в одному місці на краю панорами є дірка:
По-моєму, краще залишити таку дірку в незначній місці, ніж відрізати щось важливе в іншому місці панорами. А в незначній місці можна помахати клонуючої пензлем:
Нарешті, зберігаємо остаточний варіант панорами, додаємо геотагі. і милуємося:
Щоб додати геотагі потрібно скопіювати EXIF-теги з вихідних кадрів в остаточний варіант панорами. Я це роблять так: $ exiftool -tagsfromfile перший-кадр.jpg панорама.jpg Це не зовсім правильно, але швидко.
Що ще можна зробити з панорамою?
Одне з найцікавіших панорамних спільнот, на мій погляд, група Perfect Panoramas на флікер. Туди беруть тільки ті панорами, в яких модератори не знайдуть дефектів.
Є фотосообщество в ЖЖ, теж присвячене панорам. Не пам'ятаю, як називається.
Панорам з геотеги - саме місце на Panoramio. Хороші панорами потім покажуть в Google Earth :)
В інтернеті панорами можна показувати за допомогою аплету PTViewer.
Перфекціоністи і любителі монументального мистецтва можуть знімати гігапіксельні панорами.
Ну і в загальному ще багато різних застосувань цієї техніки. У тому числі і цілком серйозних.
PS. Я знайшов ще два подібних керівництва російською мовою: Клеим панораму Олександра Прокудіна і Склеювання панорам в Hugin (© БеЖе). Багато навчальних матеріалів є на сайті програми Hugin, але, на жаль, тільки на англійській мові.