Android OCR之tesseract

Android OCR之tesseract


1. 開源工具簡介


tesseract是很是有名的開源OCR工具,可是要將它配置到Android開發環境中可能要費點功夫,別擔憂,github上面有好人幫助咱們封裝了Android開發環境的tesseract配置,這就是Android平臺上OCR開源項目tess-twogit

2. 環境配置


利用tess-two配置OCR環境很是簡單。github

  • 首先,設置工程的ndk路徑。緩存

  • 其次,在模塊中添加依賴:compile 'com.rmtheis:tess-two:6.0.0'微信

3. 數據準備


要進行OCR還要獲取訓練數據tessdata,下載該訓練數據,到時候將訓練數據弄到本身的Android設備上就好了。 工具

注意:不要把全部訓練數據都弄到Android設備上,由於訓練數據比較大,須要用到什麼語言的數據就只把這些語言對應的數據弄到Android設備上。 spa

好比,我通常識別只用到識別英文與簡體中文,所以只須要將eng.traineddata,chi_sim.traineddata弄到Android設備上就好了。code

4. 開始Android OCR之旅


相關常量設置:圖片

//訓練數據路徑,必須包含tesseract文件夾
    static final String TESSBASE_PATH = "/storage/emulated/0/Download/tesseract/";
    //識別語言英文
    static final String DEFAULT_LANGUAGE = "eng";
    //識別語言簡體中文
    static final String CHINESE_LANGUAGE = "chi_sim";

英文識別:開發

public void EnglishOCR(){
        //設置圖片能夠緩存
        english.setDrawingCacheEnabled(true);
        //獲取緩存的bitmap
        final Bitmap bmp = english.getDrawingCache();
        final TessBaseAPI baseApi = new TessBaseAPI();
        //初始化OCR的訓練數據路徑與語言
        baseApi.init(TESSBASE_PATH, DEFAULT_LANGUAGE);
        //設置識別模式
        baseApi.setPageSegMode(TessBaseAPI.PageSegMode.PSM_SINGLE_LINE);
        //設置要識別的圖片
        baseApi.setImage(bmp);
        english.setImageBitmap(bmp);
        englishtext.setText(baseApi.getUTF8Text());
        baseApi.clear();
        baseApi.end();
     }

簡體中文識別與英文識別相似。rem

5. 程序界面


程序源代碼下載:https://github.com/lavor-zl/FunctionsDemo

歡迎關注個人微信公衆號:Android技術漫談

相關文章
相關標籤/搜索