【发布时间】:2019-06-23 13:24:50
【问题描述】:
我正在开发一个能够识别文本的 Android 应用(使用 Google Vision 进行)。
我的目标是在 AR(我正在使用 ARcore)矩形与字符序列相对应时将识别的文本包装起来。 我面临的问题是我要识别的文本位于一小块金属上。 这使得无法在其上检测到平面 ---> 无法放置 3D 矩形。
我想知道是否可以使用从检测到的文本中获得的坐标(我得到 4 个角点或 getboundingbox()),是否可以在金属物品上创建自定义平面以显示我的矩形。
我已经尝试了不同的方法,但我做不到。
ArFragment fragment;
Session session = fragment.getArSceneView().getSession();
float[] pos = {0, 0, -1};
float[] rotation = {0, 0, 0, 1};
Anchor anchor = session.createAnchor(new Pose(pos, rotation));
placeObject(fragment, anchor, Uri.parse("model.sfb"));
private void placeObject(ArFragment arFragment, Anchor anchor, Uri uri) {
ModelRenderable.builder()
.setSource(arFragment.getContext(), uri)
.build()
.thenAccept(modelRenderable -> addNodeToScene(arFragment, anchor, modelRenderable))
.exceptionally(throwable -> {
Toast.makeText(arFragment.getContext(), "Error:" + throwable.getMessage(), Toast.LENGTH_LONG).show();
return null;
}
);
}
private void addNodeToScene(ArFragment arFragment, Anchor anchor, ModelRenderable renderable) {
AnchorNode anchorNode = new AnchorNode(anchor);
TransformableNode node = new TransformableNode(arFragment.getTransformationSystem());
node.setRenderable(renderable);
node.setParent(anchorNode);
arFragment.getArSceneView().getScene().addChild(anchorNode);
node.select();
}
【问题讨论】:
标签: android ocr arcore plane 3d-model