如何通过Tesseract开源OCR引擎创建Android OCR应用
2014-12-23 10:18
274 查看
Tesseract是遵守 Apache
License 2.0协议的开源OCR引擎。这里介绍下如何在Android平台编译Tesseract,以及如何快速创建一个简单的OCR应用。
参考原文:Making an Android OCR Application
with Tesseract
要编译Android平台的Tesseract,需要使用Google提供的tesseract-android-tools。
代码获取方式:
?
打开README,在命令行工具中执行下面的步骤:
注意:如果你在使用NDK r9,编译的时候会出现错误:
?
解决的方法就是在Application.mk中加入一行:
?
编译之后会生成class.jar和一些*.so。
创建一个Android应用,把生成的jar和so导入进来。
创建TessOCR:
构造函数中需要在存储卡上创建一个目录tessdata,如果不创建程序运行就会出错。因为源码中会检测这个目录,不存在就抛出异常:
就这么简单。现在通过三种方式获取图片做OCR:
在AndroidManifest.xml中加入IntentFilter,让OCR应用出现在图库的分享列表中:
?
获得URI之后,对URI解码,获取bitmap:
发送Intent调用图库,在onActivityResult中获取返回的URI做OCR:
为了获取高质量的图片,在Intent中加入图片路径。返回之后就可以直接使用这个图片路径解码:
最后不要忘记下载语言包,并push到存储卡的tessdata目录下。
https://github.com/DynamsoftRD/android-tesseract-ocr
?
License 2.0协议的开源OCR引擎。这里介绍下如何在Android平台编译Tesseract,以及如何快速创建一个简单的OCR应用。
参考原文:Making an Android OCR Application
with Tesseract
Tesseract Android Tools
要编译Android平台的Tesseract,需要使用Google提供的tesseract-android-tools。代码获取方式:
?
注意:如果你在使用NDK r9,编译的时候会出现错误:
?
?
Android OCR Application
创建一个Android应用,把生成的jar和so导入进来。创建TessOCR:
构造函数中需要在存储卡上创建一个目录tessdata,如果不创建程序运行就会出错。因为源码中会检测这个目录,不存在就抛出异常:
就这么简单。现在通过三种方式获取图片做OCR:
在图库中选取一张图,选择发送或者分享,选择OCR应用
在AndroidManifest.xml中加入IntentFilter,让OCR应用出现在图库的分享列表中:?
启动OCR应用,从图库中选择一张图做OCR
发送Intent调用图库,在onActivityResult中获取返回的URI做OCR:
启动OCR应用,拍照之后做OCR
为了获取高质量的图片,在Intent中加入图片路径。返回之后就可以直接使用这个图片路径解码:最后不要忘记下载语言包,并push到存储卡的tessdata目录下。
源码
https://github.com/DynamsoftRD/android-tesseract-ocr?
相关文章推荐
- 开源OCR引擎Tesseract 3.0发布
- Tesseract-OCR(开源光学字符识别引擎)
- tesseract-ocr开源的OCR识别引擎
- 开源OCR引擎Tesseract
- 开源OCR引擎Tesseract-OCR
- 开源OCR引擎Tesseract
- 开源OCR引擎Tesseract-OCR简介
- Flex中如何通过创建新的XML命名空间(namespace),在MXML中使用flash.filters类
- 通过了解MySpace的六次重构经历,来认识分布式系统到底该如何创建
- 如何在CodePlex 创建开源项目
- 如何通过pfile来创建spfile来启动数据库
- 如何通过编程的方法创建SharePoint提醒
- 如何通过使用 ADOX 和 VisualC # .NET 创建 Access 数据库
- 如何删除通过主键和唯一约束创建的索引
- JAVA动态模块的设计实现以及如何通过newInstance()来创建带参的构造类实例
- .NET 2.0 OCR文字识别技术(Tesseract 引擎)
- Flex中如何通过liveScrolling属性,创建立现滚动方式的TextArea控件
- 通过了解MySpace的六次重构经历,来认识分布式系统到底该如何创建
- Flex中如何通过variableRowHeight和wordWrap属性,创建行高度可变的Tree
- [转]通过了解MySpace的六次重构经历,来认识分布式系统到底该如何创建