2017-09-05 33 views
0

我正在使用tesseract從圖像中讀取文本。由於我的BinaryImage輸入不會是純白色背景中的簡單文本,所以我只能獲得50%的正確輸出。如何在使用tesseract閱讀之前清潔圖像的文本?

有沒有辦法預處理圖像,以便我可以從tesseract得到正確的輸出?我已經嘗試過使用Otsu's method進行灰度縮放和二值化圖像,但沒有任何改進。

由於我正在使用java做所有這些工作,如果有人可以共享任何java lib的詳細信息或步驟以從tesseract中獲得更好的結果,將會有所幫助。

我沒有得到正確的ImageMagick文檔在我的Java代碼中使用它。任何對此的幫助表示讚賞。

sample image (any wireless bill of AT & T)

回答

0

看到的例子我試圖通過灰度縮放和二值化圖像優化我的輸出,但它沒有幫助。然後我嘗試boofcv來銳化我的圖像,並獲得了90%的優化輸出。

銳化圖像之前,我們就可以重新調整圖像如果分辨率不夠大,使用下面的代碼:

public static BufferedImage scale(BufferedImage img, int imageType, int dWidth, int dHeight, double fWidth, double fHeight) { 
BufferedImage img = null; 
if(img != null) { 
    img = new BufferedImage(dWidth, dHeight, imageType); 
    Graphics2D g = img.createGraphics(); 
    AffineTransform at = AffineTransform.getScaleInstance(fWidth, fHeight); 
    g.drawRenderedImage(img, at); 
} 
return img; 

}

的情況下,任何人都陷在同樣的情況。

0

我覺得你的帳單的掃描可能是在太小的分辨率。如果你有更高分辨率的圖像(更大的尺寸),我相信你會得到更好的結果。您也可以嘗試以非損失壓縮格式保存掃描。你可以嘗試局部區域閾值。但我認爲這不會對這樣的小文本有幫助。不過,在ImageMagick中,你可以用-lat命令來完成。

convert image.jpg -negate -lat 25x25+10% -negate result.png 

enter image description here

根據需要調整值。我也有一個bash unix shell腳本,textcleaner,可能會更好在其他圖像。你可以在http://www.fmwconcepts.com/imagemagick/textcleaner/index.php

+0

感謝您的幫助。我發現寫得很好的用於圖像處理的java庫。我現在可以優化輸出。我會在我的回答中解釋更多。 –

相關問題