Эквидистантная проекция как сделать

Добавил пользователь Дмитрий К.
Обновлено: 19.09.2024

Автор: Алексеева Наталья Александровна
Учитель информатики, Средняя школа №3, Каменск-Уральский, Свердловская область.

Цель: создание виртуального тура, используя цилиндрические панорамы.

Задачи:
продемонстрировать этапы создания цилиндрических панорам и их сборку в виртуальный тур;
развить навыки работы с созданием панорам;
развить познавательный интереса и творческую активность.

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

Необходимое оборудование: компьютер, фотоаппарат, штатив.
Необходимое программное обеспечение: PTGui, Pano2vr.

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



Перед склеиванием программа, занимающаяся сборкой панорамы, анализирует предложенные ей кадры попиксельно для определения на разных изображениях похожих областей, накладывая их друг на друга.




После сборки исходных фотографий в единое изображение панорама представляет собой эквидистантную проекцию. Объемное изображение панорамы как бы раскатано по плоскости. Эквидистантная проекция не интерактивна.
Аналогичным образом мы создали вторую панораму.
Сохранить получившиеся эквидистантные проекции можно в разных форматах. Это могут быть файлы с расширениями .jpg, .tif,. psd,. psb, .mov.






Загрузка исходных изображений

В этом уроке мы будем склеивать сферическую панораму из семи фотографий, снятых фишай объективом, – шесть в окрест и зенит. Кадр надира пока для работы использовать не будем.

Как сделать сферическую панораму в PTGui

Итак, работу начинаем загрузкой в PTGui фотографий, предназначенных для склейки. Сделать это можно нажатием соответствующей кнопки (2) или просто перетаскиванием нужных файлов в окно программы. PTGui принимает исходные изображения в форматах JPG, BMP, PNG, TIFF а также HDR файлы .exr и .hdr. (последнее два только PTGui Pro). Напомню, что ориентация всех снимков должна быть единой, иначе панорама может склеиться некорректно.
Рекомендую проверять параметры оптики и кроп-фактор матрицы (3), которые PTGui берет с EXIF фотографий. Если они не соответствуют реальности, нужно эти данные заполнить вручную или изменить настройки в Tools>Options>EXIF.

Автоматическое совмещение снимков

Нажимаем кнопку Align images…(4), PTGui проанализирует все исходные кадры и в перекрывающихся областях соседних кадров генерирует контрольные точки. После этого PTGui совместит фотографии и проведет их оптимизацию. По окончанию этого процесса появится новое окно – Panorama Editor с предварительным результатом склейки панорамы. Как видим, с нашей панорамой все хорошо, все кадры встали на свои места.
Я в Panorama Editor-е обычно еще выстраиваю окончательную композицию эквидистантной проекции сферической панорамы. Выбираем инструмент Numerical Transform (5), в поле Yaw (6) задаем, на сколько градусов хотим панораму двигать влево/вправо, и нажимаем кнопку Apply (7), при необходимости повторяем операцию пока результат нас не устроит.

Как сделать 3d панораму в PTGui

Расставление отсутствующих контрольных точек

Иногда случается, что автоматический генератор не может создать для некоторых пар фотографий достаточное количество контрольных точек (к.т.). В этом случае к.т. приходится расставлять вручную. На примере покажу, как связать контрольными точками кадр зенита с соседними кадрами.
Итак, заходим в редактор контрольных точек (8) и выбираем пару перекрывающихся изображений, с которыми будем работать (9). Увеличиваем масштаб (10) и ищем объекты, присутствующие на обоих кадрах. Выбираем подходящую точку и кликнем не неё сначала на одном кадре (11), а затем на другом, в соответствующем месте (12). Контрольная точка установлена. Таким образом, устанавливаем максимум контрольных точек, стараясь, по-возможности, расставлять их по всей перекрывающейся области кадров, а не только в одном месте. Очень важно к.т. размешать с максимальной точностью, для тонкой отладки позиции к.т. используем стрелки клавиатуры или мышь с одновременным нажатием клавиш Ctrl+Alt. На движущиеся объекты (люди, облака, качающиеся ветки и т.п.) контрольные точки не ставим категорически.

Как сделать 3д панораму в PTGui

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

Оптимизация

Как сделать сферическую панораму в PTGui

Переключаемся на закладку Optimizer (13). Из списка коррекции дисторсии линзы выбираем опцию “Heavy + lens shift“ (14). Выбираем алгоритм оптимизации Panorama Tools (15), он даёт результат лучше родного оптимизатора PTGui. Запускаем процесс оптимизации (16), после чего появится окно с результатами (17), где указана средняя, минимальная и максимальная дистанция между контрольными точками. Наша цель - снизить на минимум среднюю дистанцию между к.т. Поскольку данные указаны в пикселях, результаты оптимизации будут отличаться, в зависимости от размера исходных изображений. Поэтому, сказать точные цифры, к которым нужно стремиться, трудно. Я стараюсь достичь средней дистанции ~0.8 пикселей и менее. В результатах оптимизации кроме цифр видим еще одну оценку проведенного процесса – "very bad", "bad", "not so bad", "not so good", "good", "very good" или "too good to be true". Но ориентироваться по этим оценкам не стоит, поскольку они не учитывают размер исходных фотографий.

Как сделать сферическую панораму в PTGui

В нашем примере мы получили среднюю дистанция 1.09pix, постараемся её снизить. Подтвердим результаты оптимизации (18) и перейдём (Ctrl+B) к таблице контрольных точек (19). Там проверим, чтобы к.т. были упорядочены по дистанции (20). Видим, что несколько контрольных точек вверху таблицы имеют сильное отклонение от среднего значения дистанции, эти точки следует удалить. После этого запускаем оптимизацию еще раз, результат теперь намного лучше (21). Если и теперь оптимайзер показывает высокие значения, то удаление части к.т. с наихудшим значением дистанции и оптимизацию повторяем несколько раз, пока результат нас не устроит. Но при этом следим, чтобы нам осталось достаточное количество к.т. для сшива панорамы.

Как сделать сферическую панораму в PTGui

Создание панорамы

После окончания оптимизации переходим на закладку Create Panorama (22). Здесь можем выбрать желаемый размер (23), формат готовой панорамы (24), имя файла и путь для его сохранения. PTGui Pro позволяет сохранять панораму также в виде отдельных слоев (25), где каждый слой соответствует каждому исходному кадру панорамы. Эта опция бывает особо полезной, если нужно отретушировать на панораме повторяющиеся движущиеся предметы. Для блендинга используем плагин Smartblend (26), все остальные параметры оставим по умолчанию.

Как сделать сферическую панораму в PTGui

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

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

эквидистантная проекция сферической панорамы

Мы уже сейчас можем посмотреть панораму в QTVR формате, для этого нужно зайти на закладку Prewiew (28) и создать превью.

Как сделать сферическую панораму в PTGui

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


Сферическая панорама (виртуальная панорама, 3D панорама) — один из видов панорамной фотографии. Предназначена в первую очередь для показа на компьютере (при помощи специального программного обеспечения).
В основе сферической панорамы лежит собранное из множества отдельных кадров изображение в сферической (эквидистантная, equirectangular, sphere) или кубической проекции. Характерной чертой сферических панорам является максимально возможный угол обзора пространства (360х180 градусов).

Содержание

Оборудование для съемки сферических панорам

Минимальный набор техники, необходимый для создания сферической панорамы — это цифровой фотоаппарат. Однако, без ряда дополнительных приспособлений, съемка панорам весьма затруднительна и жестко ограничена по сюжету. Фотографы-панорамисты пользуются следующими дополнительными приспособлениями:

    — позволяет удерживать камеру в неподвижности во время съемки;
  • Панорамная штативная головка — позволяет вращать камеру вокруг нодальной точки во время съемки, избегая тем самым воздействия эффекта параллакса;
  • Пульт дистанционного управления фотоаппаратом — позволяет избежать появления тени фотографа на панораме;
  • Широкоугольный объектив — позволяет делать меньшее количество кадров для одной панорамы и тем самым экономить время.

Процесс съемки сферических панорам

Сегодня съемка сферической панорамы обычно происходит следующим образом. На штатив с установленной панорамной штативной головкой крепится камера. Делается ряд фотографий с одной точки с поворотом камеры на определенный градус после каждого снимка (минимальное количество кадров, необходимых для создания 3D-панорамы с конкретным набором оборудования, можно узнать из специальных таблиц). Отдельно, с вытянутых рук, снимается надир (нижняя точка сферической панорамы).

Программы для сборки сферических панорам

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

  • Kolor Autopano
  • Panorama Tools
  • Autodesk Realviz Stitcher
  • PTAssembler
  • PTStitcher NG

Преобразование сферических панорам в кубическую проекцию



После сборки исходных фотографий в единое изображение сферическая панорама представляет собой эквидистантную проекцию. Иначе говоря, объемное изображение как бы раскатано по плоскости. Эквидистантная проекция не интерактивна. Для удобного просмотра на экране компьютера ее необходимо перевести в кубическую (VR) проекцию. Для просмотра панорам в кубической проекции сегодня чаще всего используется формат Flash, реже — устаревшие форматы Quick Time VR и DevalDVR. Для экспорта 3D-панорамы в кубическую проекцию используют специальные программы — панорамные вьюеры:

  • Pano2VR
  • KRPano
  • Panotour Pro
  • Flashpanoramas
  • Panosalado

Многие современные панорамные вьюеры позволяют также создавать виртуальные туры из сферических и цилиндрических панорам

Забыли пароль?
Запросите новый здесь.

Формат панорамы в общих словах определяется типом проекции полной или частичной трёхмерной сцены на плоскость, например, экран монитора или распечатку

Полные сферические панорамы

Существует два основных сферических формата: эквидистантный и кубический. Оба могут показывать полную окружающую нас сферу — 360° вдоль горизонта, 90° вверх and 90° вниз. Для их просмотра нужны специальные программы.

Эквидистантная проекция

В эквидистантном панорамном изображении все вертикали остаются вертикалями, а горизонт становится прямой линией, проходящей через центр. Координаты изображения линейно соотносятся с углом панорамы (pan angle) и углом наклона в реальном мире. Полюсы (зенит и надир) находятся на верхнем и нижнем краях и растянуты по всей ширине изображения. Области рядом с полюсами растянуты по горизонтали.


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

Кубическая проекция

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


Четыре стороны куба показывают фронт, право, тыл и лево, ещё одна показывает зенит и последняя — надир, причём у каждой поле зрения равно 90°x90°. На каждой стороне куба все прямые линии остаются прямыми, что делает такое изображение удобным для редактирования. См. статью Извлечение и вставка прямолинейных видов, в которой изложены другие варианты извлечения сторон куба из эквидистантного изображения и их обратной вставки.

Изображения в кубической проекции часто используются в качестве исходных просмотрщиками сферических панорам, такими как SPi-V и Quicktime.


Частичные форматы

Существует несколько способов показать частичную панораму — панорамы такого типа так или иначе не заполняют всю сферу. Частичные панорамы можно показать напрямую, если они не покрывают больше чем примерно 120° по короткой стороне (но вполне покрывать 360° по большей стороне). Основными форматами этого типа являются цилиндрический и прямолинейный, но возможны и частично сферические панорамы.

Цилиндрическая проекция

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

В панорамных изображениях цилиндрическая проекция чаще всего используется для печати широких панорам с большой долготой (>120°). Как и эквидистантная, цилиндрическая проекция также сохраняет вертикали, но не может сохранять данные рядом с полюсами (зенит и надир), которые искажены и вытянуты до бесконечности.


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

Другие варианты цилиндрической проекции, которые могут показывать полюса (например, проекция Меркатора), общеприняты в картографии, но как правило не используются при создании панорам.

Прямолинейная проекция

Это тип проекции части поверх сферы на плоскость, также называемый гномоническим (”gnomic”, “gnomonic” или “tangent-plane”). Эту проекцию можно представить себе как прикладывание плоского листа бумаги к сфере касательно по одной-единственной точке и освещение этого листа из центра сферы. На странице Mathworld приведено подробное математическое описание гномонической проекции.


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

Примечания переводчика

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

Во-вторых, специально для статьи снова обновлён перевод hugin, теперь уже среза CVS от 29 мая 2006. Его можно забрать отсюда. Имейте в виду, что для сборки hugin нужна версия panotools никак не меньше 2.8.1. Если у вас не получилось собрать panotools 2.8.1 (ошибка в PTmender.c, это же касается и версии 2.8.3), добавьте в конец libpano/javastub.c следующие две строки:

При желании можно снять срез CVS panotools, где это уже исправлено. Проще всего, разумеется, дождаться следующей версии panotools (2.8.4 и выше).

Читайте также: