1

我是zxing libraryQR 码的新手。使用zxing library 1.7我生成的 QR 码,这些 QR 码会粘贴在文件上,然后将文件扫描成 PDF。当然,我确实使用zxing库本身创建了客户端程序,它逐页读取扫描的 PDF 并在页面上找到任何 QR 码时显示 QR 码文本。我正在尝试从扫描的 PDF 的每一页中读取多个 QR。

虽然我能够读取一些二维码,但结果不一致。意味着我能够读取 PDF 页面中的一些二维码,而其中一些二维码没有被我的客户端程序识别。我已经为同一主题浏览了其他主题。并稍微修改了我的代码,尽管我无法获得 100% 的结果。

这是我的代码片段,可以让您更多地了解我在做什么。

注意:我正在使用 itext PDF 库的 PdfReaderContentParser 来提取每个 pdf 页面的扫描图像,如下所示

private void extractBarcodeText(BufferedImage bufferedImage) {

    try {
        Hashtable<DecodeHintType, Object> hints = new Hashtable<DecodeHintType, Object>();
        hints.put(DecodeHintType.TRY_HARDER, BarcodeFormat.QR_CODE);
        LuminanceSource source = new com.google.zxing.client.j2se.BufferedImageLuminanceSource(bufferedImage);
        BinaryBitmap bitmap = new BinaryBitmap(new GlobalHistogramBinarizer(source));
        List<String> innerTextList = new ArrayList<String>();
        QRCodeMultiReader multiReader = new QRCodeMultiReader();
        Result[] results = multiReader.decodeMultiple(bitmap, hints);

        for (int k = 0; k < results.length; k++) {
            String text = results[k].getText();
            innerTextList.add(text);
            System.out.println("####################  Rendered Text from Image #################"+ " " + text);
        }       
    } catch (NotFoundException e) {
        e.printStackTrace();
    }
}

我尝试了很多组合,但没有运气。是不是因为画质不好?但是,一些图像是如何被识别的,而一些图像仍然是一个谜:(

有谁知道我应该怎么做才能克服这个问题?这是底部的一个示例图像供您参考,因为使用上面的代码可以识别第一张图像,而第二张(HRA)则不是。!

4

1 回答 1

0

根据您所说,我的猜测是您需要对图像进行轻微模糊或下采样。大量的白噪声干扰检测。

于 2012-02-16T09:33:56.537 回答