java 使用MLKit和CameraX缓慢检测大型阿兹特克

djp7away  于 2023-02-02  发布在  Java
关注(0)|答案(1)|浏览(204)

vision-quickstart检测高密度的阿兹特克非常慢。我读到增加输入图像分辨率应该会加快速度,但我不知道如何在quickstart示例中做到这一点。我正在评估MLKit和其他一些框架,以便在我的扫描仪应用中使用。
有人知道怎么做吗?
尝试从移动的屏幕上阅读电子火车票上的阿兹特克语MLKit qiuckstart的例子。最终它设法检测到它,但它需要大约10到30秒。该应用程序用于扫描火车票上的阿兹特克代码。
用于扫描Galaxy XCover 5 Android版本13的手机Galaxy A12 Android版本11
Aztec

gudnpqoy

gudnpqoy1#

试试这个。它在我的Galaxy XCover 5上可以很好地读取格式(4096),但不能读取该格式的文本(getRawValue())。不知道为什么!QR码和条形码EAN-13没有问题。

@ExperimentalGetImage //Notice: @ExperimentalGetImage.
public class BarCodeImageAnalyzer implements ImageAnalysis.Analyzer {

    private final BarcodeScanner scanner;

    public BarCodeImageAnalyzer() {

         scanner = BarcodeScanning.getClient();

    }

    @SuppressLint("SetTextI18n")
    @Override
    public void analyze(@NonNull ImageProxy imageProxy) {

        Image mediaImage = imageProxy.getImage();

        if (mediaImage != null) {
            InputImage image =
                    InputImage.fromMediaImage(mediaImage, rotation);
// rotation coding in main class according to ML-Kit instructions.
// https://developers.google.com/ml-kit/vision/barcode-scanning/android.

            scanner.process(image)
                    .addOnSuccessListener(barcodes -> {
                        for (Barcode barcode : barcodes) {
                             codebarres.setText(""+barcode.getFormat());
                            // codebarres.setText(barcode.getRawValue());
// codebarres is a TextView in the mainactivity layout.
                        }
                    })
                    .addOnCompleteListener(results -> imageProxy.close());
        }
    }
}

相关问题