将带旋转的二维点转换为等矩形投影坐标

2024-09-25 14:18:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个简单的立方体,并用从全景图像中提取的立方体贴图对其进行纹理处理。在这个立方体中,我围绕它的原点旋转,并使用glReadPixels创建图像。 一旦我处理了这些图像,我得到了每个图像的几个点,我想计算它们在等矩形全景图像上的等效坐标。在

我发现了一个类似的问题here。在

但由于旋转的原因,这并不是开箱即用的。 我想解决这个问题的方法是对每个图像中的点应用相同的旋转来获得x,y,z,几乎使用上面链接中的方法,但是我得到的坐标离我很远。在

OpenGL中的旋转:

glLoadIdentity()
glRotatef(pitch, 1.0, 0.0, 0.0)
glRotatef(yaw, 0.0, 1.0, 0.0)

以下是图像中二维点旋转的一些代码:

^{pr2}$

我不绕z轴旋转。 顺便说一句,我试图切换q1和q2,我还尝试使用transforms3d库中的euler,它给了我相同的值。在

我认为z,设置为1可能是这里的问题,但我不确定。在

有什么想法吗?在


Tags: 方法图像here链接原因opengl矩形纹理
1条回答
网友
1楼 · 发布于 2024-09-25 14:18:27

解决了问题。在

将x,y坐标传递给OpenGL,用glReadPixels得到深度,glunproject得到终点。在

depth = glReadPixels(x1, y1, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT)
point = gluUnProject(x1, y1, depth, model_view, proj, view)

剩下的部分是用我发布的链接中的“map_cube”方法完成的。(只需对u和v进行一些调整,立方体面可以由argmax(| x |,| y |,| z |)确定)

相关问题 更多 >