к оглавлению
ru en

Как можно склеить панораму
How you can make a panorama

В.Завьялов, 2014-12-06
V.Zavjalov, 2014-12-06

Снимая панораму из одной точки, можно представить, что все объекты нарисованы на сфере -- в точности так, как их видно. Но сферу хочется развернуть на плоскость. Это нельзя сделать без искажений, но это можно сделать разными способами (те, кто рисовал географические карты, очень легко могут себе это представить).
When you shoot multiple pictures from a single point, you can imagine that everything is drawn on a shpere - just like you see it around you. But then you want to project this sphere into a plane image. This can not be done without distortions, but this can be done in various ways (the same thing occures when drawing geographic maps).

Вот вид из моего окна (снятый весной 2007 года).
This is a view from my window in Moscow, it was done in spring 2007.

Я хочу склеить панораму из этих пяти картинок разными способами. Можно сделать так, чтобы любой набор параллельных линий остался параллельным и при этом объекты не выглядели сплющенными (а только изогнутыми и растянутыми). Для этого используются равноугольные цилиндрические проекции.
I want to make a panorama using this five pictures. This can be done in a few ways. First, you can keep any set of parallel lines. Objects are bended or scaled but not compressed. This is done using Mercator projections.

Параллельны вертикальные линии:
All vertical lines are parallel:

Параллельны горизонтальные линии вдоль улицы:
All lines which go along the street are parallel:

Параллельны горизонтальные линии поперек улицы:
All lines which go across the street are parallel:

Обычно лучше делать параллельными вертикальные линии: неуютно, когда гнутся вертикали, дома, деревья и т.п... А то, что уходящие вдаль рельсы выглядят не параллельно - все уже привыкли. Но тем интереснее найти исключения.
Usually it is better to keep vertical lines parallel. It is uncomfortable when vertical objects (trees, houses etc.) are bended, but nobody is surprised if parallel rails go towards each other in the distance. But, of course, exclusions are possible.

Вертикальная панорама. Параллельны горизонтальные и вертикальные линии
Vertical panorama. Horizontal and vertical lines are parallel.

А еще при склейке панорамы можно убрать искажения в одной выбранной плоскости. Во всех плоскостях, параллельных заданной, искажений также не будет, но и масштаб будет другим.
You can also make the panorama in such a way that some plane remains undistorted. All parallel planes are also undistorted but have different scales.

Искажений нет в плоскости домов на другой стороне улицы:
Front plane of houses on the other side of the street is not distorted:

Искажений нет в плоскости домов, стоящих поперек улицы справа:

Front plane of houses, which stays across the street on the right is not distorted:

Искажений нет в плоскости земли:

Ground level is not distorted:

Исходные картинки и скрипты для hugin [ZIP]
Original pictures and Hugin scripts [ZIP]