之前在网上看到有很多OCR的相干资料,自己训练字库的资料也很多,但是关于训练字库后的多自字库联合使用资料则少之又少,其实在OCR3.02出来以后就已支持多字库联合使用了,故记录下来,希望能对大家有所帮助!
1.首先在github上下载最新的项tess-two.,地址为:https://github.com/rmtheis/tess-two;
2.如果电脑没安装NDK的还需要下载ndk,由于tess-two是靠ndk编译的地址:https://dl.google.com/android/ndk/android-ndk-r8e-windows-x86.zip
安装ndk后履行1下命令:
-
cd tess-two
-
ndk-build
-
android update project -t 1 --path .
-
ant release
-
-
-
cd ..
-
cd eyes-two
-
ndk-build
-
android update project -t 1 --path .
-
ant release
3. 调用tesseract辨认图片
eclipse里面导入编译好的android project,共3个项目,tess-two,
tess-two-test 和eyes-two。其中tess-two和eyes-two为android lib项目,供其它项目援用。tess-two封装Tesseract的Android API,eyes-two封装leptonica的Android API。tess-two-test为OCR的测试,先读1下TessBaseAPITest.java的代码,了解API的使用方法。
-
private static final String TESSBASE_PATH = "/mnt/sdcard/tesseract/";
-
private static final String DEFAULT_LANGUAGE = "eng";
-
private static final String CHINESE_LANGUAGE = "chi_sim";
-
private static final String CHINESE_CUSTOM
= "custom";//自定义字库
-
-
TessBaseAPI baseApi = new TessBaseAPI();
-
baseApi.init(TESSBASE_PATH, CHINESE_LANGUAGE); //单字库使用
-
baseApi.init(TESSBASE_PATH, CHINESE_LANGUAGE+CHINESE_LANGUAGE);
//多字库使用
-
baseApi.setPageSegMode(TessBaseAPI.PageSegMode.PSM_AUTO);
-
baseApi.setImage(params[0]);
-
-
-
final String outputText = baseApi.getUTF8Text();
-
baseApi.end();
最后自己在tess-two-test项目里加个Activity测试下就好了。
注:1.多字库的联合使用必须在ocr3.02版本以上才能实现,3.01是支持的,其次测试的时候数据放在手机的根目录的tessdata下。
2.代码:http://download.csdn.net/detail/u010897392/8649197;
3.自定义字库请看另外一篇文章:http://blog.csdn.net/u010897392/article/details/45339301
4.如有问题,可留言讨论,大家共同进步!