2014-04-29 75 views
4

我想使用OpenCV(Android)處理使用相機拍攝的圖像,然後將其傳遞給Tesseract以進行文本(數字)識別,但是直到圖像非常(幾乎沒有噪音)才能獲得好結果。 目前我正在對拍攝的圖像進行如下處理: 1.應用高斯模糊。 2.自適應閾值:二值化圖像。 3.反轉顏色使背景變黑。 然後將處理後的圖像傳遞給Tesseract。如何使用OpenCV + Tesseract在Android中進行準確的文本識別?

但是我沒有得到好的結果。

請提出在進入Tesseract之前或在Tesseract處理階段,我可能會採取哪些步驟/措施來進一步處理圖像。

此外,有沒有其他更好的圖書館在這個Android?

回答

10

您可以隔離/檢測圖像中的字符。這可以使用強大的算法完成,例如Stroke Width Transform

下面的步驟,我工作得好:

  1. 獲取圖像的灰度。
  2. 在灰度圖像上執行canny edge detection
  3. 應用灰度圖像高斯模糊(在單獨的矩陣存儲)
  4. 從步驟2 & 3輸入矩陣轉換成SWT algorithm
  5. 二值化(門限)得到的圖像。
  6. 將圖像傳送到tesseract。

請注意,對於第4步,您需要在鏈接中構建C++庫,然後用JNI包裝器導入到您的android項目中。此外,您需要對所有步驟進行微調,以獲得最佳效果。但是,這至少應該讓你開始。

相關問題