在ArToolkit的android Java SDK中查找ArMarker和相机之间的距离 [英] Find distance between ArMarker and camera in ArToolkit's android java SDK

查看:149
本文介绍了在ArToolkit的android Java SDK中查找ArMarker和相机之间的距离的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何计算智能手机相机和artoolkit标记之间的距离。
i试图从标记的转换矩阵中获取它,但矢量值全为零。

how to calculate distance betweeen smartphone camera and artoolkit marker. i tried to get it from transformation matrix of marker but the vector value are all zero.

float [] pMatrix = ARToolKit.getInstance().getProjectionMatrix();
                float x = pMatrix[3];
                float y = pMatrix[7];
                float z = pMatrix[11];

x,y,z均为零。

推荐答案

我认为您正在寻找矩阵中错误的位置。摄像机x,y,z在转换矩阵的最后一列之内:

I think you are looking at the wrong positions in the matrix. The camera x,y,z is inside the last column of the transformation matrix:

queryMarkerTransformation(int markerId);
Returns float array with 16 values. The values represent an OpenGL style transformation matrix.
The first 4 values represent the first column of the matrix.

i.e:
float[16] = [0.24218401, 0.9598883, 0.14125957, 0.0, -0.8614648, 0.2801126, -0.42357886, 0.0, -0.44614935, -0.019116696, 0.8947546, 0.0, 23.678268, -6.4265084, -298.65326, 1.0]

The matrix looks like:
0.24218401  -0.8614648  -0.44614935     23.678268
0.9598883   0.2801126   -0.019116696    -6.4265084
0.14125957  -0.42357886 0.8947546       -298.65326
0.0         0.0         0.0             1.0

The last column represents x,y,z in the camera coordinate system.

其来源在这里: https://www.hitl.washington.edu/artoolkit/documentation/tutorialcamera.htm 我相信。 (但是不知何故我现在无法到达url)

The source for that is here: https://www.hitl.washington.edu/artoolkit/documentation/tutorialcamera.htm I believe. (But somehow I cannot reach the url right now)

现在您也正在阅读投影矩阵,而不是转换矩阵。
> https://github.com/artoolkit/artoolkit5/blob/master/AndroidStudioProjects/ARSimpleProj/aRSimple/src/main/java/org/artoolkit/ar/samples/ARSimple/SimpleRenderer .java#L98

Now you are also reading the projection matrix, not the transformation matrix. (https://github.com/artoolkit/artoolkit5/blob/master/AndroidStudioProjects/ARSimpleProj/aRSimple/src/main/java/org/artoolkit/ar/samples/ARSimple/SimpleRenderer.java#L98)

如果我正确地向下跟踪,则值[14]应该为您提供与标记的距离。

If I tracked that down correctly value [14] should give you the distance to the marker.

更新:
我刚刚在这里写下了更详细的解释:
http://augmentmy.world/artoolkit-distance-between-camera-and-marker

这篇关于在ArToolkit的android Java SDK中查找ArMarker和相机之间的距离的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆