2011-11-12 25 views
1

什么我们基本上已经是一个OpenGL对象,它为我们提供了旋转和平移向量模型视图矩阵,利用这些,我们得到了一些计算的实际位置:比较屏幕和OpenGL真实的世界坐标,以得到一击

-R*t, where R is [0 4 8; 1 5 9; 2 6 10] matrix and t is [12 13 14] column vector.

在OpenCV中,我们拥有指尖的屏幕坐标x,y

现在我们需要一些方法来将屏幕的这个x,y与OpenGL的真实世界坐标进行比较,以查看手指命中哪个对象。我们尝试过gluUnProject,但它没有从x,y返回正确的真实世界坐标。

在这里尝试的方法是什么,这是一起使用ARToolKit和OpenCV,因此模型视图矩阵会根据AR的标记更改。此外,我们正在使用ARToolkit相机模块。

回答

2

好吧,让我看看:对于3个线性独立方程组,你有两个知识。所以你真的错过了一些信息。你有一个自由的参数z,如果你仔细想想,这给你的不是空间位置,而是一个光线(从相机进入某个方向到无穷远)。你可以gluUnProject为z = 0和z = 1,这给你射线上的两个点。然后,您可以使用该射线来测试它是否穿过您的一些物体。您可以通过其他方式进行操作:将每个对象的边界体积投影到屏幕空间(x,y),然后测试您的手指坐标是否与其保持联系。我会做更晚的。

相关问题