如何解决如何使用 ARCORE 从 ARScene 相机扫描二维码
这里我需要一些建议或想要一种方法
场景:我想扫描 ar 场景中的二维码,当我扫描二维码时,二维码中有什么内容,我将放在这里的 ar 场景中,我不想使用谷歌视觉,而是我想使用下面的包但下面的包打开相机而不是我想在自己的 AR 场景中使用它
我用这个包进行 qr 扫描 https://github.com/zxing/zxing
下面是我的ar代码
public class MainActivity extends AppCompatActivity {
private ArFragment arFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
arFragment = (ArFragment) getSupportFragmentManager().findFragmentById(R.id.arFragment);
arFragment.setOnTapArPlaneListener((hitResult,plane,motionEvent) -> {
Anchor anchor = hitResult.createAnchor();
ModelRenderable.builder()
.setSource(this,Uri.parse("anchor.sfb"))
.build()
.thenAccept(modelRenderable -> addModelToScene(anchor,modelRenderable))
.exceptionally(throwable -> {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(throwable.getMessage()).show();
return null;
});
});
}
private void addModelToScene(Anchor anchor,ModelRenderable modelRenderable){
AnchorNode anchorNode = new AnchorNode(anchor);
TransformableNode transformableNode = new TransformableNode(arFragment.getTransformationSystem());
transformableNode.setParent(anchorNode);
transformableNode.setRenderable(modelRenderable);
arFragment.getArSceneView().getScene().addChild(anchorNode);
transformableNode.select();
}
}
解决方法
我建议尝试现有的 Augmented Images feature in ARCore
您认为是 QR 码,AR 软件将其视为 fiducial marker。这些标记需要事先知道。例如在 ARCore 页面上的视频中,绘画是一个基准标记,可以覆盖 3D 图像。
我链接的 ARCore 功能支持每个标记数据库最多 1000 个参考图像/标记,您可以创建和使用新的预定义标记数据库。
只要您知道哪些二维码具有 3D 效果,您就可以在标记数据库中准备它们。
如果您想要/需要使用 ARCore 动态 QR 码,我建议尝试在 QR 码周围/旁边创建基准,以便您可以扫描然后交给 AR Core 以生成 3d 图像,但可能不工作,因为二维码可能与基准混合,两者都需要空白才能工作。
如果您不能使用 ARCore,那么您可以使用 OpenCV 和各种场景引擎(3D 渲染器),例如 Ogre,或者您可以在 OpenGL ES 中绘制 AR 场景。
,以下是使用带有 Maintained Sceneform repository 的 ARCore 增强图像的示例:https://github.com/ThomasGorisse/sceneform-android-sdk/tree/master/samples/augmented-images
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。