Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ gluLookAt相机外部矩阵_C++_Opencv_Opengl_Camera - Fatal编程技术网

C++ gluLookAt相机外部矩阵

C++ gluLookAt相机外部矩阵,c++,opencv,opengl,camera,C++,Opencv,Opengl,Camera,我想使用相机外部矩阵和gluLookAt函数在图像上显示模型 模型将转换为原点,即模型的质心位于原点。(模型的坐标基于右侧) 使用cvFindExtrinsicCameraParams2函数,我得到了相机外部矩阵E=[R | t] 对于这种情况,我想使用gluLookat显示cad模型 它有三个参数;摄像机位置,摄像机眼睛,摄像机向上 我必须输入哪些值 我猜,摄像机的位置是t:外部矩阵的平移值 此外,如果旋转和平移为零,则摄影机通过(0,0,1)向量查看模型。因此,如果存在旋转,相机眼睛应为R*

我想使用相机外部矩阵和gluLookAt函数在图像上显示模型

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

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

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

它有三个参数;摄像机位置,摄像机眼睛,摄像机向上

我必须输入哪些值

我猜,摄像机的位置是t:外部矩阵的平移值

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

最后,相机向上,如果相机从前面看模型,首先应该是(0,-1,0)。然后新的摄像机上方向向量是R*(0,-1,0)


但它并没有给我一个正确的结果。有什么问题吗?我的错在哪里?

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

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

我想知道为什么您要尝试使用
glLookAt
重新创建摄影机矩阵,因为结果应该是您已经拥有的外部摄影机矩阵。

眼睛是摄影机正在查看的空间点。您当前计算的是它应该看的方向。例如,您可以使用

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

我想知道为什么您尝试使用
glLookAt
重新创建摄影机矩阵,因为结果应该是您已经拥有的外部摄影机矩阵。

我使用opencv获得了外部矩阵。然后我想使用opengl函数(用于着色)显示它。我尝试了t+r*(0,0,1),但没有显示模型。我不知道为什么。。T_T因为当我设置camera(0,0,-z)、eye(0,0,0)、up(0,-1,0)时它显示模型,然后它显示正确的结果,所以我认为代码是正确的,但值选择不正确…我使用opencv获得外部矩阵。然后我想使用opengl函数(用于着色)显示它。我尝试了t+r*(0,0,1),但没有显示模型。我不知道为什么。。T_T因为当我设置相机(0,0,-z)、眼睛(0,0,0)、向上(0,-1,0)时它会显示模型,然后它会显示正确的结果,所以我认为代码是正确的,但是没有正确选择值。。。