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技术漫谈