OpenCV到OpenGL坐标系变换

时间:2017-06-05 18:13:58

标签: opencv opengl-es opengl-es-2.0 linear-algebra augmented-reality

我有两个右手坐标系。

的OpenCV enter image description here

正如你可以看到黑色箭头所示,相机向下看正的$ Z $轴。您可以忽略图表的其余部分。

的OpenGL

enter image description here

虽然此处不可见,但OpenGL中的摄像头向下看-Z轴。我想将OpenCV坐标系中摄像机前面的3D点变换为OpenGL中摄像机前面的3D点。

我试图在4x4矩阵中表示这一点,该矩阵将RT0001连接在一起。

到目前为止,我已尝试过这个

1  0  0  0
0 -1  0  0
0  0  -1 0
0  0  0  1

但它似乎没有做任何事情,OpenGL坐标系中没有显示任何内容。

1 个答案:

答案 0 :(得分:0)

OpenCV的摄像机坐标向右 X, Y向下,Z向前 。 OpenGL的摄影机坐标向右 X,向右 Y,向内Z two coordinate systems

使用solvePnP作为最常用的示例之一。 您将获得一个3x3旋转矩阵R和一个1x3平移矢量T,并使用MR创建一个4x4的视图矩阵T。只需将M的第二行和第三行取反,即可获得用于OpenGL渲染的视图矩阵。 two view matrices