一步一步教你如何在android使用tesseract識別文字(一)

Tesseract是一個HP和google先后維護的開源OCR(ocr,optical character Recognition)引擎,3.0以后已經支持中文識別.如何在android上使用它呢,那就不得不提另一個開源項目tess-twotess-two是一個在android上使用tesseract的實例,tess-two中有三個主要目錄:

  • eyes-two 對leptonica的封裝
  • tess-two-test ocr的測試代碼
  • tess-two 對Tesseract的封裝
下載tess-two源碼

首先,將tess-two代碼從github上clone下來:(也可知直接從這個地址下載)

git@github.com:rmtheis/tess-two.git

克隆下來后,還需要ndk編譯,建議linux下編譯,只需要下載ndk就行了,windows下還要下載安裝sygwin

使用ndk編譯tess-two

分別cd進tess-twoeyes-two去編譯項目

cd tess-two
ndk-build
cd eyes-two
ndk-build
簡單的調用示例

簡單的調用識別,只需要使用eclipse導入tess-two中的tess-two就行了,然后新建工程,引用這個library.

//sd卡路徑
private static final String SD_PATH=Environment.getExternalStorageDirectory();
//字典名
private static final String DICTIONARY="/custom";
@Override
protected void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main);
    TessBaseAPI baseApi = new TessBaseAPI(); 
    //記得要在你的sd卡的tessdata文件夾下放對應的字典文件,例如我這里就放的是custom.traineddata
    baseApi.init(SD_PATH, DICTIONARY);
    baseApi.setPageSegMode(TessBaseAPI.PageSegMode.PSM_AUTO);
    //記得要在對應的文件夾里放上要識別的圖片文件,比如我這里就在sd卡根目錄放了img.png
    baseApi.setImage(new File(SD_PATH+"/img.png"));
    final String result= baseApi.getUTF8Text();  
    //這里,你可以把result的值賦值給你的TextView
    baseApi.end();  
}

如上,一個簡單的android ocr程序就完成了

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容