Android-Vuforia,计算摄像机到图像目标的实际距离?

Android-Vuforia,计算摄像机到图像目标的实际距离?,android,opengl-es,augmented-reality,vuforia,Android,Opengl Es,Augmented Reality,Vuforia,我是Vuforia库的初学者,我试图通过Android studio上的Vuforia计算AR相机和图像目标之间的实际距离,以厘米为单位。我在Vuforia论坛上找到了这段代码,但当我尝试时,我没有得到好的结果 TrackableResult result = state.getTrackableResult(tIdx); Trackable trackable = result.getTrackable(); Matrix44F modelViewMa

我是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);
你能帮我吗?是否有其他函数或代码以cm计算实际距离


谢谢

据我所知,您应该从原始目标矩阵中获取cam_x、cam_y和cam_z,意思是代码中的
modelViewMatrix\u Vuforia
。你剩下的计算很好。您可以在此处查找正式的Vuforia文章:


至于你的第二个问题——Vuforia无法知道真实尺寸。但是,您可以通过在数据集中定义的目标的大小和打印的目标的大小自己找到它。上面的链接也解释了这一点。

我不得不删除我的答案,因为我无法在Android中说出答案。谢谢Yakobom。它工作正常。只是我不明白数据集中目标大小与打印目标大小之间的关系,你能给我解释一下吗?我建议你阅读这一页-它回答了关于目标大小的各种问题:谢谢Yakobom