tesseract是很是有名的開源OCR工具,可是要將它配置到Android開發環境中可能要費點功夫,別擔憂,github上面有好人幫助咱們封裝了Android開發環境的tesseract配置,這就是Android平臺上OCR開源項目tess-two。git
利用tess-two配置OCR環境很是簡單。github
首先,設置工程的ndk路徑。緩存
其次,在模塊中添加依賴:compile 'com.rmtheis:tess-two:6.0.0'
。微信
要進行OCR還要獲取訓練數據tessdata,下載該訓練數據,到時候將訓練數據弄到本身的Android設備上就好了。 工具
注意:不要把全部訓練數據都弄到Android設備上,由於訓練數據比較大,須要用到什麼語言的數據就只把這些語言對應的數據弄到Android設備上。 spa
好比,我通常識別只用到識別英文與簡體中文,所以只須要將eng.traineddata,chi_sim.traineddata弄到Android設備上就好了。code
相關常量設置:圖片
//訓練數據路徑,必須包含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
程序源代碼下載:https://github.com/lavor-zl/FunctionsDemo
歡迎關注個人微信公衆號:Android技術漫談