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

Рис. 7.9. Искажения пространства, вносимые при сборке исходных кадров панорамы (при покадровой проекции).

Плоское изображение, которое получается при простой склейке кадров панорамы, тоже является проекцией двухмерной поверхности на плоскость. Я не нашел, как называется такая проекция (особенно и не искал, проекций сотни, а одна и та же проекция может называться по-разному). Буду называть ее покадровой.

На рисунке 7.9 видно, что изображенное пространство изгибается, сжимается и заворачивается вглубь тем сильнее, чем дальше рассматриваемая точка от центра картинки. Чем дальше от центра картинки, тем сильнее пространство сжимается по горизонтали и по вертикали, и многие пары кадров просто так сшить маской нельзя (особенно хорошо это заметно в самом верхнем и самом нижнем ряду). Сначала нужно как-то растянуть сжатые кадры.

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

Рис. 7.10. Преобразование пространства при обратной покадровой проекции.

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

На рисунке 7.11 показана часть фрагментов картинки с рисунка 7.9, восстановленных с помощью обратной покадровой проекции для следующих направлений оси объектива: вниз по вертикали для всех кадров: 35°, вправо по горизонтали: 0°, 12°, 24°, 36°, 49°, 62°. Кадры для бо́льших углов по горизонтали, чем 62°, не показаны, потому что они заняли бы слишком много места, хотя они также восстанавливаются правильно.

Рис. 7.11. Восстановление изображения с помощью обратной покадровой проекции.

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

Интересно, как это делает программа hugin, если задать построение панорамы в прямолинейной проекции? Я попробовал подсунуть ей тот же ряд модельных кадров, которые показаны на рисунке 7.11. То, что получилось, показано на рисунке 7.12 б.

Рис. 7.12. Искажения пространства, вносимые при сборке исходных кадров панорамы с использованием разных проекций.

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

Для сравнения на рисунке 7.12а показаны результаты применения покадровой проекции к этому же ряду фрагментов панорамы.

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

Сферическая проекция (другие названия: цилиндрическая равнопромежуточная, эквидистанционная, cylindrical equidistant projection, equirectangular projection, rectangular projection, plane chart, plate carrée, unprojected map) преобразует изображение на поверхности сферы в плоскую картинку. Координатами точек картинки на плоскости служат географические долгота и широта точек на сфере. Все квадраты, образованные координатной сеткой, равны, отсюда название equirectangular (равнопрямоугольная). Все вертикальные линии остаются вертикальными, линия горизонта – горизонтальной линией, проходящей через центр картинки. Все другие прямые линии изгибаются. Чем дальше от горизонта, тем сильнее любой объект оказывается сплюснут по вертикали и растянут по горизонтали. Углы и площадь фигур искажаются.

Перейти на страницу:

Похожие книги