不通过URL读取QR码时,zxing QRCodeReader中的ChecksumException

Pet*_*ter 5 java qr-code zxing

如果我正在扫描带有URL的QR码,则以下代码可以完美,快速地运行。但是,如果我使用简单的字符串或数字序列(这是我想做的)对QR码进行解码,则有时它会随机工作,但有99%的时间它会因ChecksumException而不断失败。

if (webcam.isOpen()) {

            if ((image = webcam.getImage()) == null) {
                continue;
            }

            LuminanceSource source = new BufferedImageLuminanceSource(image);
            BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));

            try {
                result = new QRCodeReader().decode(bitmap);
            } catch (NotFoundException e) {
                 //exception handling omitted
            } catch (ChecksumException ex) {
                //exception handling omitted
            } catch (FormatException ex) {
               //exception handling omitted
            }
        }
Run Code Online (Sandbox Code Playgroud)

有人经历过吗?有什么解决方案?

顺便说一句,我正在使用http://goqr.me/生成代码

Pet*_*ter 4

这个问题其实有点误导。带有数字序列的简单二维码失败的原因是它们的图案更大,因为代码包含的信息较少。URL QR 码包含更多信息,因此分辨率更高,“图案”更小。问题的根源在于我测试的网络摄像头对焦点问题(或色差,我不知道)极其敏感,因此低分辨率的二维码必须远离网络摄像头才能读取正确地,比 URL QR 码...这个问题仅对我的开发 PC 的 Asus 网络摄像头如此重要,我尝试的所有其他网络摄像头基本上都适用于我所有的测试 QR 码。