当前位置: 首页 > 知识库问答 >
问题:

我如何在ARCORE中扫描来自ARScene摄像头的二维码

濮阳和泰
2023-03-14

在这里我需要一些建议或想要一种方法来做这件事

场景:我想在ar场景中扫描一个二维码,当我扫描二维码时,二维码中有什么内容我会放在ar场景中,我不想用google vision,我想用下面的软件包,但是下面的软件包打开了摄像头,我想用它自己在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();
    }
}

共有1个答案

经佐
2023-03-14

我建议尝试ARCore中现有的增强图像功能

你认为是二维码的东西,AR软件认为是一个基准标记。这些标记需要事先知道。例如,在ARCore页面上的视频中,绘画是一个基准标记,它允许3D图像被覆盖。

我链接到的ARCore特性支持每个标记数据库多达1000个参考图像/标记,您可以创建和使用新的预定义标记数据库。

只要你知道什么二维码会有3D效果,你就可以把它们准备在一个标记库里。

如果你想/需要有动态二维码与ARCore,我会建议尝试创建fiducial周围/旁边的二维码,这样你可以扫描,然后移交到AR Core生成3D图像,但可能不起作用,因为二维码可能与fiducial混合,两者都需要空白来工作。

如果你不会使用ARCore,那么你就像Ogre一样置身于OpenCV和各种场景引擎(3d渲染器)的世界中或者你可以在OpenGL ES中绘制AR场景。

 类似资料:
  • 利用 iOS7 SDK自带的类库实现扫描二维码 、条形码功能。这份代理里面有两种扫描方法 一种是在 ios7 以下利用ZBar类库扫描方法,一种是 iOS7调用AVFoundation库的方法。需要真机测试。扫描速度特别快,扫描成功之后,在Xcode的输出框输出扫描的内容。 [Code4App.com]

  • 本文向大家介绍iOS中使用ZBar扫描二维码自定义扫描界面功能,包括了iOS中使用ZBar扫描二维码自定义扫描界面功能的使用技巧和注意事项,需要的朋友参考一下 之前在Android中使用过ZXing识别二维码,ZXing也有对应的iOS版本,经过了解,ZBar也是一个常用的二维码识别软件,并分别提供了iOS和Android的SDK可供使用,最终我选择了ZBar进行二维码识别,它的注释清晰,便于使用

  • 本文向大家介绍iOS自带原生二维码扫描的实现,包括了iOS自带原生二维码扫描的实现的使用技巧和注意事项,需要的朋友参考一下 前言 首先说明的是:原生的二维码扫描有一个坑,那就是扫描范围的确定。只要记得扫描范围是X与Y互换位置,W与H互换位置,就没有什么问题了。 下面进入正题: 1.因为使用原生二维码扫描,所以需要加入头文件添加delegate 2.接着是使用到的类 3.懒加载一个扫描动画的图片 4

  • 在相机意图返回时获得文件路径的最佳方法是什么。当然,我可以在启动意图之前将文件路径保存到成员变量,但这似乎不好,我应该从OnActivityResult中获得路径。 我已经试过了(从相机意图获取图像路径): 唯一不同的是,我在尝试内部存储pic时使用了INTERNAL_CONTENT_URI。如果我这样做,我会得到一个异常:

  • 本文向大家介绍ios原生二维码扫描,包括了ios原生二维码扫描的使用技巧和注意事项,需要的朋友参考一下 做iOS的二维码扫描,有两个第三方库可以选择,ZBar和ZXing。今天要介绍的是iOS7.0后AVFoundation框架提供的原生二维码扫描。 首先需要添加AVFoundation.framework框架到你工程中build phase的"Link Binary With Libraries

  • 在 ZBarSDK(本站下载:http://code4app.com/ios/ZBar-Barcode-Reader/4fa23f3f06f6e7ee18000000)的基础上做的一个demo,能够将字符串转换成二维码,能够通过摄像头扫描二维码。代码里面有对如何使用 ZBarSDK 的详细说明。 [Code4App.com]