image - 将立方体贴图坐标转换为等距矩形中的等效坐标

标签 image image-processing geometry projection panoramas

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

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

每张图像的尺寸为 500x500p,左上角为 [0, 0]。 我想将这些坐标转换为 2500x1250p 图像的等距矩形坐标。布局是这样的:

cubemap

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

最佳答案

  1. 将图像+2D 坐标转换为 3D 标准化矢量

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

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

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

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

    此步骤取决于您的 2D 纹理几何形状。最简单的是矩形纹理(我认为这就是等距矩形的意思),但还有其他具有特定功能的映射,并且每种映射都需要不同的转换。这里有几个例子:

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

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

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

顺便说一句。刚刚发现这个(可能是重复的质量检查):

关于image - 将立方体贴图坐标转换为等距矩形中的等效坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47819607/

相关文章:

c# - 使用 C# 调整透明图像的大小

javascript - jquery,js 在 map 区域中悬停时显示图像,而且在选择时也显示图像

c++ - 如何改进opencv中的特征检测

javascript - 最好的 JavaScript 图像处理库是什么?

c# - 通过 MouseDown 创建一个圆并移动它

java - 使用矩形绘制图像

javascript - 使用 cookie 插件从图像点击触发复选框点击

ios - 使用 tesseract 识别车牌

c++ - 在 openGL + SDL 2.0 中绘制四面体

geometry - 给定 XY 坐标计算线交点的 Z?