程序员人生 网站导航

ocr之多字库联合使用

栏目:综合技术时间:2015-05-26 08:26:46

        之前在网上看到有很多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下命令:

[plain] view plaincopy
  1. cd tess-two  
  2. ndk-build  
  3. android update project -t 1 --path .  
  4. ant release  
  5.   
  6.   
  7. cd ..  
  8. cd eyes-two  
  9. ndk-build  
  10. android update project -t 1 --path .  
  11. 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的使用方法。
[java] view plaincopy
  1.        private static final String TESSBASE_PATH = "/mnt/sdcard/tesseract/";  
  2. private static final String DEFAULT_LANGUAGE = "eng";  
  3. private static final String CHINESE_LANGUAGE = "chi_sim";  
  4. private static final String CHINESE_CUSTOM = "custom";//自定义字库
  5.   
  6. TessBaseAPI baseApi = new TessBaseAPI();  
  7. baseApi.init(TESSBASE_PATH, CHINESE_LANGUAGE);  //单字库使用
  8. baseApi.init(TESSBASE_PATH, CHINESE_LANGUAGE+CHINESE_LANGUAGE); //多字库使用
  9. baseApi.setPageSegMode(TessBaseAPI.PageSegMode.PSM_AUTO);  
  10. baseApi.setImage(params[0]);  
  11.   
  12. // Ensure that the result is correct.  
  13. final String outputText = baseApi.getUTF8Text();  
  14. 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.如有问题,可留言讨论,大家共同进步!

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐