基本上我们拥有的是 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 相机模块。