图像柱面投影&等距圆柱投影

发布时间 2023-06-02 14:21:18作者: JJ_S

1.仰角和方位角

(1) 仰角(altitude/Elevation)

有时也称海拔高度。当方位角测量完毕之后,需要用仰角来描述被观察物体相对于观察者的高度。如果观察者在地面上,那么仰角范围就在0度到90度之间,有时仰角范围还会在-90度到90度之间,这是因为被观察物体在观察者下方。
如果观察者在飞机中观察地面物体,那么仰角就应该为负了。

(2) 方位角(azimuth)

指的是罗盘方位,相对于物理的北而言,方位角在地面以下的一个角度。地平线被定义为一个巨大的,围绕观察者的一个虚拟的圆球。从观察者的角度看来,罗盘方位按照顺时针角度从北开始。也就是说:
0度方位角表示正北,90度方位角表示正东,180度方位角表示正南,270度方位角表示正西,360度方位角表示角度回归,依然是正北。

2.图像柱面投影

由于图像序列是实体景物在不同坐标系下的二维投影,直接对拍摄图像进行拼接无法满足视觉一致性,所以需要将待拼接的图像分别投影到一个标准的坐标系下,然后再进行图像的拼接。
全景图生成系统可以采用圆柱体、立方体和球体等模型来实现。由于柱面坐标的变换比较简单并且投影图像与其投影到圆柱表面的位置无关,用其描述的柱面全景图像可在水平方向上满足360度环视,
具有较好的视觉效果,因此被广泛采用。

原理: 把平面图像投影到圆柱的曲面上。
如下图,四边形GHEF表示待处理原图,投影之后,变成曲面JDILCK(黄色点标注)

俯视图如下,其中FCE为待处理图像平面,KCL为投影所得曲面。

已知平面图像上的点,待求: 投影到圆柱的曲面上的坐标,以俯视图上的P点举例,已知P点的坐标(x,y),求解其投影到曲面上的P‘(x',y')

设原图像宽W,高H,角度FOE为相机视场角度α(一般为45°,即PI/4),可得到圆形半径(焦距)f 和角度α,图像宽W的关系:

依次推算出,目标图像的宽(曲线KCL长)

目标图像高H'不变, H' = H

方式一:以图像左上角坐标为原点

方式二:以图像中心为坐标原点,即(W/2, H/2),可以简计算公式

由于一般来说图像以左上角为坐标原点,所以在编写程序的时候最好采用以方式一。

实现代码参考https://blog.csdn.net/Young__Fan/article/details/82952854

3.等距圆柱投影

参考
《图像柱面投影》
https://blog.csdn.net/Young__Fan/article/details/82952854

《常用的地图投影算法》
https://www.cnblogs.com/hustdc/p/6822694.html

《WebGL 等距圆柱投影贴图绘制地球》
https://juejin.cn/post/7067424887601627166

《仰角和方位角》
https://blog.csdn.net/hltt3838/article/details/126411452
https://www.britannica.com/science/altitude-angular

《等距圆柱投影法》
http://www.suzhengpeng.com/cvabc-01
https://blog.csdn.net/u011598846/article/details/122886888