如何使用Firebase ML Kit识别条形码?

时间:2020-06-05 12:39:41

标签: android firebase kotlin barcode-scanner firebase-mlkit

打开相机电源后,我正在尝试识别我的应用程序中的二维码。然后根据qr代码文本转移到相应的活动。

我正在Google的帮助下使用Firebase ML工具包和CameraX库进行此操作,但是ImageAnalyzer的分析方法存在错误。

ImageAnalyzer使我可以实现分析方法,即使该方法已经实现。但是它有两个参数:(imageProxy:ImageProxy ?,度:Int),并说它不覆盖任何内容。如果我删除第二个参数(度数:整数),则它可以识别,但不能识别“度数”。

我尝试遵循一些规范,但是它们使用了大量的第三方库。我想使用cameraX和ML Kit。

我该如何解决?

这是我的代码:

sprintf()

1 个答案:

答案 0 :(得分:1)

查看您的代码段,似乎您使用的是camera-camera2版本beta04和camerax-view版本alpha11。

文档可能已过时,Analyzer现在仅在其analyze回调内收到ImageProxy。以前也传入的学位信息现在可以通过ImageProxy.getImageInfo().getRotationDegrees()访问。

所以您的分析仪应该看起来像这样

private class MyImageAnalyzer : ImageAnalysis.Analyzer {

    private fun degreesToFirebaseRotation(degrees: Int): Int {
        // ...
    }

    override fun analyze(imageProxy: ImageProxy) {
        val mediaImage = imageProxy.image
        val imageRotation = degreesToFirebaseRotation(imageProxy.imageInfo.rotationDegrees)
        val image = FirebaseVisionImage.fromMediaImage(mediaImage, imageRotation)
        // ...
    }
}