gluLookAt的相机外在矩阵

时间:2016-09-27 05:03:03

标签: c++ opencv opengl camera

我想使用Camera extrinsic matrix和gluLookAt函数在图像上显示模型。

模型被转换为原点,即模型的质心位于原点。 (模型的坐标基于右手)

使用cvFindExtrinsicCameraParams2函数,我得到了相机外在矩阵E = [R | t]。

对于这种情况,我想使用gluLookat显示cad模型。

它有三个参数;相机位置,相机眼,相机。

我必须输入什么价值?

我猜,相机位置是t:外在矩阵的平移值。

此外,如果旋转和平移为零,则摄像机通过(0,0,1)向量看模型。因此,如果存在旋转,则摄像机眼睛应为R *(0,1,0)。

最后相机,如果相机在前面看起来模型,它应该是(0,-1,0)。然后新的相机向上矢量是R *(0,-1,0)。

但它没有给我一个正确的结果。有什么问题?我的错是什么?

1 个答案:

答案 0 :(得分:0)

眼睛是相机正在观察的空间中的一个点。你目前计算的是它应该看的方向。例如,您可以使用

eye = t + R * [0,0,1];

我想知道为什么你尝试使用glLookAt重建相机矩阵,因为结果应该是你已经拥有的外在相机矩阵。