Android平台OCR工具之Tess-two的编译

本文涉及的产品
企业资质识别,企业资质识别 200次/月
自定义KV模板,自定义KV模板 500次/账号
OCR统一识别,每月200次
简介: Android平台OCR工具之Tess-two的编译

1.Tesseract简介


Tesseract是Ray Smith于1985到1995年间在惠普布里斯托实验室开发的一个OCR引擎,曾经在1995 UNLV精确度测试中名列前茅。但1996年后基本停止了开发。2006年,Google邀请Smith加盟,重启该项目。目前项目的许可证是Apache 2.0。该项目目前支持Windows、Linux和Mac OS等主流平台。但作为一个引擎,它只提供命令行工具。


现阶段的Tesseract由Google负责维护,是最好的开源OCR Engine之一,并且支持中文。


主页地址:https://github.com/tesseract-ocr


在Tesseract的主页中,我们可以下载到Tesseract的源码及语言包,常用的语言包为

中文:chi-sim.traineddata

英文:eng.traineddata


2.Tess-two


因为Tesseract使用C++实现的,在Android中不能直接使用,需要封装JavaAPI才能在Android平台中进行调用,这里我们直接使用TessTwo项目,tess-two是TesseraToolsForAndroid的一个Git分支,使用简单,切集成了leptonica,在使用之前需要先从git上下载源码进行编译。


2.1.1 项目地址


Tess-two在git上地址为:https://github.com/rmtheis/tess-two


2.1.2 编译


我编译使用的环境:

  • NDK R12
  • Cygwin


NDK环境的具体配置及Cygwin的安装方法可以参照这篇博客:Windows下NDK环境的具体配置及Cygwin的安装


配置好NDK环境后,将从git上下载的Tess-two进行解压,放置的路径是: C:\cygwin64\tess-two-master,下边开始进行编译:


  • 第一步:在Cygwin软件中使用cd命令打开Tesstwo的根目录(cd /cygdrive/c/cygwin64/tess-two-master/)。
  • 第二步:切换到tess-two目录下的jni目录(cd tess-two/jni)。
  • 第三步:输入命令进行编译($NDK/ndk-build.cmd)


编译之前可以用记事本打开jni目录下的文件Application.mk修改这里可以修改要编译的平台,以减少不必要的编译来节约时间。这个文件用来配置编译平台相关内容,我们最常用的估计只是APP_ABI字段,它用来指定我们需要基于哪些CPU架构的.so文件,当然你可以配置多个平台:


APP_STL := gnustl_static
APP_ABI := armeabi armeabi-v7a x86 mips arm64-v8a x86_64 mips64
APP_OPTIM := release
APP_PLATFORM := android-9
APP_CPPFLAGS += -fexceptions -frtti
NDK_TOOLCHAIN_VERSION := clang


我在安卓开发过程中APP_ABI := 后面只保留了 armeabi armeabi-v7a

编译需要耗费挺长时间,编译完成后,会在tess-two目录下生成libs文件夹,其中包含了编译生成的.so文件,可以进行使用。

也可以直接下载我编译好的包,这里给出下载地址,我测试了一下,是没有问题的。


我编译的Tess-two要求,Android 2.3 或更高版本,v3.04 trained data file  for a language. 数据必须复制到安卓设备上子目录命名为tessdata.

tess-two下载(Tesseract 3.05、Leptonica 1.74.1、libjpeg 9b、libpng 1.6.25)

相关文章
|
3月前
|
Java Android开发 C++
Android Studio JNI 使用模板:c/cpp源文件的集成编译,快速上手
本文提供了一个Android Studio中JNI使用的模板,包括创建C/C++源文件、编辑CMakeLists.txt、编写JNI接口代码、配置build.gradle以及编译生成.so库的详细步骤,以帮助开发者快速上手Android平台的JNI开发和编译过程。
233 1
|
27天前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
75 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
1月前
|
编译器 Android开发
配置环境变量,使CMakeLists.txt可直接使用Android NDK工具链编译项目
配置环境变量,使CMakeLists.txt可直接使用Android NDK工具链编译项目
|
1月前
|
Ubuntu Shell API
Ubuntu 64系统编译android arm64-v8a 的openssl静态库libssl.a和libcrypto.a
Ubuntu 64系统编译android arm64-v8a 的openssl静态库libssl.a和libcrypto.a
|
3月前
|
编解码 Android开发
【Android Studio】使用UI工具绘制,ConstraintLayout 限制性布局,快速上手
本文介绍了Android Studio中使用ConstraintLayout布局的方法,通过创建布局文件、设置控件约束等步骤,快速上手UI设计,并提供了一个TV Launcher界面布局的绘制示例。
55 1
|
3月前
|
Java Android开发 芯片
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
本文介绍了如何将基于全志H713芯片的AOSP Android源码导入Android Studio以解决编译和编码问题,通过操作步骤的详细说明,展示了在Android Studio中利用代码提示和补全功能快速定位并修复编译错误的方法。
123 0
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
|
3月前
|
API 开发工具 Android开发
Android Studio:解决AOSP自编译framework.jar引用不到的问题
在Android Studio中解决AOSP自编译framework.jar引用问题的几种方法,包括使用相对路径、绝对路径和通过`${project.rootDir}`动态获取路径的方法,以避免硬编码路径带来的配置问题。
208 0
Android Studio:解决AOSP自编译framework.jar引用不到的问题
|
3月前
|
Ubuntu 开发工具 Android开发
Repo下载、编译AOSP源码:基于Ubuntu 21.04,android-12.1.0_r27
文章记录了作者在Ubuntu 21.04服务器上配置环境、下载并编译基于Android 12.1.0_r27版本的AOSP源码的过程,包括解决编译过程中遇到的问题和错误处理方法。
179 0
|
开发工具 Android开发 iOS开发
|
Java Linux 开发工具
android 编译过程
引用:http://www.cnblogs.com/devinzhang/archive/2011/12/20/2294686.html http://blog.sina.com.cn/s/blog_7bee201901013nkk.html Android工程的编译过程 现在很多人想对Android工程的编译和打包进行自动化,比如建立每日构建系统、自动生成发布文件等等。
1001 0