【问题标题】:ChecksumException in zxing QRCodeReader when NOT reading a QR-code with an URL不读取带有 URL 的 QR 码时 zxing QRCodeReader 中的 ChecksumException
【发布时间】:2014-01-15 05:15:55
【问题描述】:

如果我正在扫描带有 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
            }
        }

以前有人经历过吗?有什么解决办法?

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

【问题讨论】:

标签: java zxing qr-code


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    ChecksumException一般表示开始解码正确,但是二维码的编码无效。这可能表明 QR 码的创建方式存在问题,尤其是如果它始终如一地发生。

    但是,您在此处链接到的二维码看起来不错,因为它可以很好地解码:

    http://zxing.org/w/decode?u=http%3A%2F%2Fapi.qrserver.com%2Fv1%2Fcreate-qr-code%2F%3Fdata%3D12345%26size%3D250x250 http://zxing.org/w/decode?u=http%3A%2F%2Fgoqrme.remotefile.net%2Fimg%2Fact%2Fqrcode_generator%2Fqr_default.png

    它还可以使用条形码扫描仪进行即时扫描。都是zxing的。

    我想知道您是否正在翻转图像 - 或者,不是取消翻转网络摄像头通常为您提供的翻转图像。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-07
      • 1970-01-01
      • 2016-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多