相关疑难解决方法(0)

OpenCV,OpenGL和Android Sensor之间的参考坐标系更改

我正在使用OpenCV,AndroidOpenGL进行增强现实项目.据我所知,OpenGL中的coordintate系统是

在此输入图像描述

OpenCV坐标系是:

在此输入图像描述

将这些设备与Android传感器组合时,如何进行坐标系转换和[R | t]矩阵转换?是否有一个很好的教程或文档解释了所有这些令人讨厌的东西?

opencv opengl-es rotation coordinate-transformation android-sensors

15
推荐指数
1
解决办法
1万
查看次数

如何在Android中使用OpenGL ES的OpenCV旋转和平移向量?

我正在研究Android上的基本增强现实应用程序.到目前为止我所做的是用opencv检测一个正方形然后使用cvFindExtrinsicCameraParams2()我计算了一个旋转和平移向量.为此,我使用了4个对象点,它们只是(0,0,0)方形的角和图像中方形的4个角.

这给我一个非常好的旋转和平移矩阵.我还用cvRodrigues2()计算了旋转矩阵,因为使用它比旋转矢量更容易.只要我用它们在图像中绘制一些点就可以了.然而,我的下一步是将这些向量和矩阵传递回java,然后使用它们与OpenGL在OpenGLView中绘制一个正方形.正方形应该恰好位于OpenGLView后面显示的图像中的正方形.

我的问题是我找不到在OpenGL中使用旋转矩阵和平移向量的正确方法.我开始使用与openCV函数完全相同的对象点.然后我以几乎任何可能的方式应用旋转矩阵和平移向量.遗憾的是,这些方法都没有产生任何接近我希望的结果.谁能告诉我如何正确使用它们?

到目前为止,我得到的"最接近"的结果是将整个矩阵随机乘以-1.但大多数情况下,方块仍然看起来镜像反转或旋转180度.所以我想这只是一个幸运的打击,但不是正确的方法.

android opencv opengl-es augmented-reality

14
推荐指数
1
解决办法
1万
查看次数