Есть ли прямая формула для преобразования панорамы в крошечную планету (стереографическая проекция)
Я пытаюсь преобразовать обычную панораму в стереографическую проекцию с помощью Opencv . Полученное изображение показано на этой ссылке.
В шагах, чтобы создать это, есть шаг, чтобы преобразовать из прямоугольного в полярный в фотошопе. Некоторые могут объяснить логику преобразования d
1 ответ
Да, есть. http://mathworld.wolfram.com/StereographicProjection.html
Проверьте эту ссылку вики: https://en.wikipedia.org/wiki/Equirectangular_projection
Думайте о своей 360 панораме как о прямоугольной проекции сферы. То есть x соответствует долготе, которая варьируется от -180 слева до 0 в центре, а затем до 180 градусов справа. Y соответствует широте, которая колеблется от -90 градусов вверху до 0 в середине и 90 градусов внизу.
Следуйте формуле обратной карты в первой ссылке, чтобы построить map_x, map_y для каждого пикселя, а затем используйте функцию cv2.remap, чтобы получить стереографическую проекцию вашего изображения, то есть маленькой планеты.
Результат был бы лучше, если бы ваше изображение имело ширину = 2 * высоту из-за широты и долготы, упомянутых выше.
И я узнаю все это из этого удивительного поста в блоге http://www.semifluid.com/2014/04/20/equirectangular-to-stereographic-projections-little-planets-in-matlab/