ARCore - 增强图像可提高跟踪的稳定性



根据官方文档 识别和增强图像

从 ARCore 1.9 开始,如果您的图像永远不会从其移动 位置(例如,贴在墙上的海报(,您可以附加一个 全局定位点到图像,以增加跟踪的稳定性。

但没有给出有关如何在代码中实际执行此操作的进一步提示或说明。请指教。

他们可能的意思是创建一个普通的锚点。

Trackable.createAnchor()

这将迫使 ARCore 在内存中保留更多与该位置相关的数据。

您可以像这样创建附加到图像的锚点:

// Create a new anchor for newly found images.
if (!augmentedImageMap.containsKey(augmentedImage)) {
AugmentedImageNode node = new AugmentedImageNode(this);
node.setImage(augmentedImage);
augmentedImageMap.put(augmentedImage, node);
arFragment.getArSceneView().getScene().addChild(node);
}
break;

在此处查看完整示例,包括 Sceneforms 中的上述摘录:https://github.com/google-ar/sceneform-android-sdk/blob/master/samples/augmentedimage/app/src/main/java/com/google/ar/sceneform/samples/augmentedimage/AugmentedImageActivity.java

ARCore 代码实验室详细介绍了将定位点托管为云定位点 - 请参阅此处的链接:https://codelabs.developers.google.com/codelabs/arcore-cloud-anchors/#2

值得一看整个 Codelab,因为它简短明了,但托管您创建的锚点的关键行如下:

snackbarHelper.showMessage(getActivity(), "Now hosting anchor...");
cloudAnchorManager.hostCloudAnchor(
getArSceneView().getSession(), anchor, this::onHostedAnchorAvailable);

最新更新