gpt4 book ai didi

android - ARToolkit 中的单图像检测

转载 作者:行者123 更新时间:2023-11-29 01:05:55 25 4
gpt4 key购买 nike

我想知道是否可以在 Android 包装器中使用 ARToolkit 进行单图像检测?例如:从图库中选择图片或者用相机拍摄图片然后将字节发送到 ARToolkit 进行标记识别?

最佳答案

是的,这很有可能,我已经做到了,但方式有点不同。

我已将 ARToolkit 库集成到 github repo 的示例 ARCore 应用程序 (hello_ar_java) 中ARCore,我用artoolkitx做图像检测,因为它的检测速度非常快。

在 hello_ar_java 应用程序中,有一个 openGL 函数 onDrawFrame() 会在每次帧更改时调用,在这里我从 ARCore session 更新中收到的帧被转换为图像 (jpeg) 文件并写入磁盘。

ARToolkit java 包装器在 ARX_jni.java 中有一个方法 arwStartRunning()它接受视频配置和相机参数作为方法参数。 你的任务是,在java wrapper中有一个类ARController.java,在这个类中写一个方法来调用arwStartRunning() ARX_jni.java

例如。

 public boolean startRunning(String cfg) {
if (!ARX_jni.arwStartRunning(cfg, null)) {
Log.e(TAG, "StartRunning command failed.");
return false;
}
Log.e(TAG, "StartRunning command passed.");
return true;
}

现在重建 ARToolkit 库并将新的 arxj-release.aar 文件添加到您的应用中。

从您的 Android 应用程序代码中,通过将配置传递为来调用 startRunning() 方法

String cfg = "-module=Image -width=" + imageWidth + " -height=" + imageHeight + " -image=" + imageAbsolutePath;

boolean runStatus = ARController.getInstance().startRunning(cfg);

if (runStatus) {
if (!ARController.getInstance().captureAndUpdate()) {
Log.e(TAG, "ARController update call failed, skip going further.");
return;
} else Log.d(TAG, "vaib: ARController update call passed");

for (int trackableUID : trackableUIDs) {
float[] modelViewMatrix = new float[16];
if (ARController.getInstance().queryTrackableVisibilityAndTransformation(trackableUID, modelViewMatrix)) {
float[] projectionMatrix = ARController.getInstance().getProjectionMatrix(10.0f, 10000.0f);
Log.e(TAG, "Trackable "+trackableUID +" is visible.");
runOnUiThread(() -> showToast("Trackable "+trackableUID +" is visible."));

} else Log.e(TAG, "Trackable "+trackableUID +" is not visible");
}
} else Log.e(TAG, "Failed to start ARToolkit, config used : " + cfg);

关于android - ARToolkit 中的单图像检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47241781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com