【问题标题】:Android- Vuforia, calculate the real distance between camera to the image target?Android-Vuforia,计算相机到图像目标的真实距离?
【发布时间】:2017-03-10 13:22:28
【问题描述】:

我是 Vuforia 库的初学者,我试图通过 Android Studio 上的 Vuforia 计算 AR 相机和图像目标之间的实际距离为厘米,我在 vuforia 论坛上找到了这段代码,但是当我尝试它时,我没有得到好的结果。

     TrackableResult result = state.getTrackableResult(tIdx);      
     Trackable trackable = result.getTrackable();
     Matrix44F modelViewMatrix_Vuforia =Tool.convertPose2GLMatrix(result.getPose());
     Matrix44F inversMV = SampleMath.Matrix44FInverse(modelViewMatrix_Vuforia);
     Matrix44F invTranspMV = SampleMath.Matrix44FTranspose(inversMV);

        float cam_x = invTranspMV.getData()[12];
        float cam_y = invTranspMV.getData()[13];
        float cam_z = invTranspMV.getData()[14];


        Log.v("QCV", "Posx=" + cam_x + ",posy=" + cam_y + ",posz=" + cam_z);
        float distance = new Float(Math.sqrt(cam_x * cam_x + cam_y * cam_y + cam_z * cam_z));
        Log.v("distance ",""+distance);

你能帮帮我吗?是否有其他函数或代码可以计算实际距离为厘米?

谢谢

【问题讨论】:

  • 我不得不删除我的答案,因为我在 Android 中无法分辨。

标签: android opengl-es augmented-reality vuforia


【解决方案1】:

据我所知,您应该从 original 目标矩阵中获取 cam_x、cam_y 和 cam_z,即代码中的 modelViewMatrix_Vuforia。其余的计算没问题。您可以在此处查看正式的 Vuforia 文章:Determining target distance for native Android and iOS

至于您的第二个问题 - Vuforia 无法知道实际大小。但是,您可以通过在数据集中定义的目标大小和打印目标的大小自己找到它。这在上面的链接中也有说明。

【讨论】:

  • 谢谢Yakobom。它工作正常。只是我不明白数据集中目标的大小与打印目标的大小之间的关系,你能解释一下吗?
  • 我建议您阅读此页面 - 它回答了有关目标大小的各种问题:library.vuforia.com/articles/FAQ/…
  • 谢谢Yakobom
猜你喜欢
  • 2020-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多