2014-09-25 30 views
1

我正在使用tess-two庫在我的android應用程序中實現OCR。我使用的代碼是:使用tess-two庫返回錯誤文本的OCR

BitmapFactory.Options options = new BitmapFactory.Options(); 
      options.inSampleSize = 4; 

      Bitmap bitmap = BitmapFactory.decodeFile(filePath, options);  
      bitmap = Bitmap.createBitmap(bitmap, 0, 0, mPreview.getWidth(), mPreview.getHeight()/2);  

      bitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true); 

      TessBaseAPI baseApi = new TessBaseAPI(); 
      //eng.traineddata 
      baseApi.init(Environment.getExternalStorageDirectory().toString(), "eng", TessBaseAPI.OEM_TESSERACT_CUBE_COMBINED); 
      baseApi.setImage(bitmap); 
      String recognizedText = baseApi.getUTF8Text(); 

      Log.d("Recognized Text", recognizedText); 

      baseApi.end(); 

這是我掃描 -

'r8''_, IIFP"" >- . 
_ ~11 r-- _ _ 
3} . 
' at H k 
CO' f 
ty, . s 
_ 1 V Fre 111'}; 
_ _ 011g 
I .1. ' Q 
h. 

後得到的字符串是不正確的。我不明白我在這裏做錯了什麼。我已經下載了英文的語言數據。有幾個類似的問題,但沒有任何可以幫助我。我的代碼似乎是正確的。自兩天以來我一直在爲此而苦苦掙扎。任何幫助將不勝感激。

編輯:

圖片掃描: enter image description here

+0

你會附加你想要OCR的圖像的副本嗎? – rmtheis 2014-09-25 14:02:02

+0

@rmtheis:我添加了圖像。當我使用示例應用程序掃描相同的圖像時 - https://github.com/rmtheis/android-ocr。它正確讀取數據。 – Raeesaa 2014-09-26 08:47:15

+0

嗨 - 我想實現tess兩個庫。但我無法運行代碼,因爲它告訴「java.lang.UnsatisfiedLinkError:無法從加載程序加載lept .....」期待您的幫助 – Biplab 2015-03-11 09:47:29

回答

2

所以,問題是圖像保存了90度旋轉,這就是爲什麼代碼無法正確識別的文本。旋轉位圖-90度做了訣竅。現在文本被正確識別。