【问题标题】:Convert Cubemap coordinates to equivalents in Equirectangular将 Cubemap 坐标转换为 Equirectangular 中的等价物
【发布时间】:2017-12-14 18:06:44
【问题描述】:

我有一组 6 图像 Cubemap(前、后、左、右、上、下)的坐标,如下所示:

[ [160, 314], Front; [253, 231], Front; [345, 273], Left; [347, 92], Bottom; ... ] 

每张图片大小为 500x500p,左上角为 [0, 0]。 对于 2500x1250p 图像,我想将这些坐标转换为等量矩形坐标。布局是这样的:

我不需要转换整个图像,只需转换一组坐标。是否有针对特定像素的直接转换?

【问题讨论】:

  • 您发布的坐标是相对于一个共同的 XYZ 原点吗?什么是等角矩形?解释这些事情,你就会有更多的机会得到别人的帮助。

标签: image image-processing geometry projection panoramas


【解决方案1】:
  1. 将您的图像+2D 坐标转换为 3D 归一化矢量

    (0,0,0) 点是立方体贴图的中心,以使其按预期工作。所以基本上你需要将缩放到你的坐标的U,V方向向量添加到纹理点(0,0)的3D位置。方向向量只是单位向量,其中每个轴有 3 个选项{-1, 0 , +1},每个向量只有一个轴坐标不为零。立方体贴图的每一面都有一个组合......哪一个取决于您的约定,我们不知道,因为您没有分享任何细节。

  2. 使用Cartesian to spherical坐标系变换

    你不需要半径只是两个角度...

  3. 将球面角转换为 2D 纹理坐标

    这一步取决于您的 2D 纹理几何。最简单的是矩形纹理(我认为这就是 equirectangular 的意思),但还有其他具有特定特征的映射,每个映射都需要不同的转换。这里举几个例子:

    对于矩形纹理,您只需将球面角缩放为纹理分辨率大小...

    U = lon * Usize/(2*Pi)
    V = (lat+(Pi/2)) * Vsize/Pi
    

    加/减一些方向符号以匹配您的坐标系。

顺便说一句。刚刚发现这个(可能重复的 QA):

【讨论】:

  • 正确且解释清楚的解决方案。我的约定就像this one,我已经调整了单位向量。最后的 V 还取决于像素 [0,0] 是在左上角还是在左下角。在这种情况下,它对我有用,谢谢。
  • @Finfa811 很高兴为您提供帮助。我将图片添加到您的问题中(您可以通过在链接 ![bla bla](link) 之前添加 ! 来做到这一点,这将告诉网站这是一张图片...
猜你喜欢
  • 2016-03-18
  • 2016-05-23
  • 1970-01-01
  • 2016-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-11
  • 1970-01-01
相关资源
最近更新 更多