Сканер штрих-кода Firebase-MLkit не дает никаких результатов - PullRequest
0 голосов
/ 14 декабря 2018

Приложение, которое я создал, должно распознавать штрих-код, в частности QR-код, по изображению.Исследования продиктовали, что для меня лучше всего использовать ML-Kit Firebase.Я следовал приведенному здесь руководству https://firebase.google.com/docs/ml-kit/android/read-barcodes.

Проблема, однако, заключается в том, что детектор штрих-кода на самом деле никогда не выходит из строя, но вместо этого список возвращаемых штрих-кодов всегда пуст и имеет размер 0. Это не имеет значенияесли это действительный QR-код или случайное изображение.Даже если на изображении 2 или более QR-кода.

Я пытался найти решение, описанное здесь: Библиотека Firebase-ML Kit не может обнаружить штрих-код в устройстве Samsung J5 и ятакже проверил различные руководства YouTube, но безуспешно.

Это код, который сканирует изображение на наличие штрих-кода.Параметры являются действительными изображениями, потому что я также сохраняю те же изображения в каталоге «Изображения» приложения, в котором эти изображения содержатся.

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);

}

Я пытался удалить параметры, чтобы детектор сканировал любой действительный штрих-код, но все равно ничего не нашел.

Любая помощь будет принята с благодарностью.

...