Firebase-MLkit条形码扫描仪无法产生任何结果

时间:2018-12-14 07:06:00

标签: android firebase firebase-mlkit

我创建的应用必须从图像中识别条形码,尤其是QR码。研究表明,对我而言,最好使用Firebase的ML-Kit来执行此操作。我已遵循https://firebase.google.com/docs/ml-kit/android/read-barcodes此处提供的指南。

但是,问题是条形码检测器从不会真正失败,而是返回的条形码列表始终为空,大小为0。这是有效的QR码还是随机图片都没有关系。即使图像中有2个或更多QR码也没有。

我尝试了此处所述的解决方案:Firebase- ML Kit library fails to detect barcode in Samsung J5 device,并且还检查了各种YouTube指南,但均未成功。

这是扫描图像中的条形码的代码。参数是有效的图像,因为我还将这些图像保存到应用程序的Pictures目录中,该目录确实包含这些图像。

private void attemptToFindQRCode(byte[] imageBytes) throws CameraAccessException {

    Bitmap bitmapImage = BitmapFactory.decodeByteArray(imageBytes, 0, imageBytes.length, null);

    FirebaseVisionImage visionImage = FirebaseVisionImage.fromBitmap(bitmapImage);

    FirebaseVisionBarcodeDetector detector = setUpQRDetector();

    Task<List<FirebaseVisionBarcode>> result = detector.detectInImage(visionImage)
            .addOnSuccessListener(new OnSuccessListener<List<FirebaseVisionBarcode>>() {
                @Override
                public void onSuccess(List<FirebaseVisionBarcode> barcodes) {

                    processVisionBarcodeResult(barcodes);

                }
            })
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@android.support.annotation.NonNull Exception e) {
                    Toast.makeText(MainActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
                }
            });

}

我认为这可能与我设置条形码检测器的方式有关,所以这是该代码:

private FirebaseVisionBarcodeDetector setUpQRDetector(){

    FirebaseApp.initializeApp(this);

    FirebaseVisionBarcodeDetectorOptions options =
            new FirebaseVisionBarcodeDetectorOptions.Builder()
            .setBarcodeFormats(FirebaseVisionBarcode.FORMAT_QR_CODE)
            .build();

    return FirebaseVision.getInstance().getVisionBarcodeDetector(options);

}

我试图删除选件,以便检测器可以扫描任何有效的条形码,但仍然找不到任何东西。

任何帮助将不胜感激。

0 个答案:

没有答案