我使用 ORB-SLAM2 实现了一个应用程序。目前,我的活动中有一个OpenCV JavaCameraView
,并将相机帧转换为Mat
并将它们发送到SLAM
系统。现在一切正常,但我不知道如何在相机屏幕上的正确位置渲染和显示虚拟对象。
我想实现一个简单的AR应用程序,在屏幕上显示一些简单的文本作为虚拟对象。欢迎任何帮助我实现这一目标的步骤。
你要做的是:
- 从ORB-SLAM中,您有一个3D点的点云。您必须根据自己的位置将虚拟对象放置在此点云中(这意味着您将 x,y 和 z 坐标分配给虚拟对象的点)
- 然后,您必须使用特定于相机的投影矩阵将这些 3D 点投影到图像平面上,这将为您提供 2D 图像平面上 3D 点的位置
- 然后,您必须根据从(2)获得的2D位置在图像上绘制对象/点。
ORB-SLAM本身也具有执行简单AR的功能,也许您也可以查看他们用于它的代码。