Android:无法检测到垂直平面

4

我正在尝试检测垂直平面(如墙壁),以便在其上添加图像视图。但是没有找到垂直平面。根据会话的默认配置,可以将水平和垂直平面都识别出来。但是无法找到垂直平面。

如何在Android应用程序中找到垂直平面?

请帮助我。


也许你可以将特征点可视化,并检查你的垂直平面是否具有足够的特征以进行检测。 - Ali Kanat
1个回答

4
在ARCore和ARKit中,与水平面的跟踪相比,垂直面的跟踪要困难一些。首先,你需要一个适合跟踪的表面。具有实心颜色(没有区分特征)的墙壁是非常糟糕的示例。用于垂直面跟踪的最佳示例是有良好光照的砖墙或带有图片的墙壁等。最差的跟踪样本是实色墙壁、重复纹理图案的墙壁(如圆点)或反射/折射表面。
同样的原则也适用于水平面跟踪。

enter image description here

其次,创建一个位于检测到平面中心的Anchor最简单的方法是使用以下代码(确保只调用一次,以免在每次更新时创建新的Anchor):
Anchor newAnchor;

for (Plane plane : mSession.getAllTrackables(Plane.class)) {

    if (plane.getType() == Plane.Type.VERTICAL &&
        plane.getTrackingState() == TrackingState.TRACKING) {

        newAnchor = plane.createAnchor(plane.getCenterPose());
        break;
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接