2012-02-16 81 views
1

我是zxing library的新用戶,因此QR代碼也是如此。使用zxing library 1.7我已經生成QR碼,那些QR碼被粘貼到論文中,並且論文稍後在PDF中被掃描。我確實創建了使用zxing庫本身的客戶端程序,它可以逐頁讀取此掃描的PDF頁面,並顯示QR碼文本(如果在頁面上找到任何QR碼)。我正嘗試從掃描PDF的每個頁面讀取多個QR。使用zxing庫從掃描的PDF中讀取多個QR碼時,結果不一致結果

雖然我能夠讀取一些QR碼,但結果不一致。意味着我能夠閱讀PDF頁面中的一些QR碼,而其中一些QR碼未被我的客戶端程序識別。我已經去了through other threads for same topic。並修改了我的代碼,雖然我無法獲得100%的結果。

這是我的代碼片段,讓我更加了解我正在做的事情。

注:我使用iText的PDF庫的PdfReaderContentParser提取每個PDF頁面as shown here

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

我已經嘗試了多種組合,但沒有運氣的掃描圖像。是否由於圖像質量差?但再怎麼有些圖片得到公認,有些遺體作爲一個謎:(

做任何人都知道我應該怎麼做才能解決這個問題呢?下面是一個sample image在底部,供大家參考,首先圖像中得到使用認可上面的代碼中第二個(HRA)不是。

回答

0

我的猜測基於你所說的是你需要對圖像進行輕微的模糊或者下采樣,大量的白噪聲會干擾檢測

+0

感謝肖恩的回覆 但是,請你讓我知道我該怎麼做,輕微模糊或縮小圖像和zxing庫我們可以做到這一點? – 2012-02-16 10:00:16

+0

您可以使用AWT的轉換來調整大小或模糊 - 在互聯網上搜索。它將在'BufferedImage'上運行。 – 2012-02-16 10:33:15

+0

謝謝肖恩。我添加了模糊,它提高了識別率,但我仍然看到約20%-30%的錯誤。請查看底部未識別的附件圖片。這是我使用的代碼。有什麼我可以做的,以提高檢測率。另外,我應該調整大一點還是小一點。另外還有其他的圖像處理功能嗎?該算法對彩色或黑白圖像效果更好嗎? – 2012-02-17 13:25:10

相關問題