2011-04-26 106 views
2

我使用android tesseract工具構建了android的tesseract ocr,一切都很順利。我也有庫文件。當我嘗試使用java包裝來訪問本地方法時,設備崩潰。我直接在相機回調中使用tesseract。使用tesseract提取圖像中的文字時出現錯誤使用android

的代碼看起來是這樣的:

public class AndroidCamera extends Activity implements SurfaceHolder.Callback { 

    TessBaseAPI tba; 

    PictureCallback myPictureCallback_JPG = new PictureCallback() { 

     public void onPictureTaken(byte[] data, Camera arg1) { 
      Bitmap bitmapPicture = BitmapFactory.decodeByteArray(data, 0, data.length); 
      tba = new TessBaseAPI(); 
      tba.setImage(bitmapPicture); 
      String result = tba.getUTF8Text(); 
      Log.i("text: "+result); 

      Toast.makeText(AndroidCamera.this,result,Toast.LENGTH_LONG).show(); 
     } 
     camera.startPreview(); 
    }; 
} 

我在日誌貓檢查仍然setimage它的正常工作,在tba.getUTF8Text()設備崩潰。

+0

現在即時得到空指針異常,當我試圖讓使用getUTF8Text()方法的字符串。當我設置圖像時,我認爲圖像不處理。請告訴我如何繼續。 – srinivasan 2011-04-26 08:51:05

回答

3

我沒有看到任何引擎初始化代碼與所需的語言。這是通過用language /目錄調用init方法來完成的。

// if trained data is /mnt/sdcard/tessdata/eng.traineddata then 
    // the tesseractDirectory should be /mnt/sdcard/ 
    String tesseractDirectory ="path to tessdata dir"; 
    TessBaseAPI api = new TessBaseAPI(); 

    // eng - english language 
    api.init(tesseractDirectory, "eng"); 
    // you may want to provide a grayscale/high contrast image for better results 

訓練有素的數據可以在這裏下載:http://code.google.com/p/tesseract-ocr/downloads/list

相關問題