把全景图像贴在一个固定半径的三维球体上,这样该视点空间就建立起来了。这里的固定半径对应固

定的焦距。

三维球体的半径为r,水平转动角度为h([0,2PI]),上下转动角度为p([-PI/2,PI/2]),所以球面上一

点的三维坐标sphere(x,y,z)=(r*cosp*cosh,r*cosp*sinh,r*sinp)。

反向变换有p=arcsin(z/r) ,h=arctan(y/x)。

当把p对应到纹理的V方向,把H对应到纹理的U方向,UV的范围都是[0,1]。在知道球面坐标x、y,z和半

r以后,球面点对应的纹理坐标就是V=arcsin(z/r)/PI+0.5,U=arctan(y/x)/2/PI。

转自:http://blog.sina.com.cn/s/blog_4bbdad0801017yqs.html

前言

经纬度坐标和XYZ笛卡尔坐标的转换常常应用在有关全景图的研究方面,在看了几篇提案和论文后才理解了坐标的转换方法

正文

通过一张图来说明

球面点三维坐标到纹理二维坐标的转换-冯金伟博客园

按照我们直观的理解,会认为φ角是蓝色实线和y轴的夹角,θ角是XOZ平面的蓝色虚线和z轴的夹角。但实时上并不是这样。

我们先假设P=(φ,θ)对应为地理坐标中的经度和纬度,那么当P点位于球的顶端时,其纬度为90°;当P点位于球的赤道上时,其纬度应该为0°,也就是说,y轴其实是对应φ为90°的时候。(具体参照有图可更好的理解)

按照上面的结论,我们就可以写出下面的对应关系

球面点三维坐标到纹理二维坐标的转换-冯金伟博客园

与第一个图的坐标对应相同。至此我们就完成了经纬度坐标到XYZ坐标的转化。

转自:https://blog.csdn.net/Return_0_/article/details/88067804?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

————————————————–

自己的理解:

如果一张图的分辨率是200×100,那么图片中任意像素,对应到球形直角坐标系的坐标是多少呢?

假设该任意像素位置为(u,v),很明显u的取值范围为[0,200],v的取值范围为[0,100]

有上面文章的铺垫 φ角的取值范围是[-π/2,π/2],θ角的取值范围是[-π,π]

则任意像素位置(u,v)对应的φ角和θ角为

θ=[(u*2π)÷200]-π

φ=[(v*π)÷100]-π/2

代入到公式

球面点三维坐标到纹理二维坐标的转换-冯金伟博客园

得到三维坐标系的坐标(x,y,z)

x=cos(φ)sin(θ)

y=sin(φ)

z=cos(φ)cos(θ)