自己编译 tess-two几个库文件用于android OCR开发并合入你的工程项目

4 篇文章 0 订阅

1 首先需要到 github下载: tess-two 源码。https://github.com/rmtheis/tess-two
2 把下载后的tess-two-master.zip解压到D:\搜狗高速下载\tess-two-master
3 进入windows cmd 命令提示符模式
4 进入tess-two 目录下去,d:;cd D:\搜狗高速下载\tess-two-master\tess-two
5: 开始编译 d:\android-ndk-r14b\ndk-build.cmd -j4
这样系统会开始编译tess-ocr 需要的库
armeabi armea-v7a mips x86 4种不同的so,编译时间大约20分钟。
编译好的libjpgt.so,liblept.so,libpngt.so,libtess.so会保存在tess-two\libs目录下
如果需要定制不同的版本,比如一些64位的版本 arm64-v8a x86_64 mips64
那么就需要修改jni\Appliction.mk 为如下,那么系统就会编译7种不同的so
APP_ABI := armeabi armeabi-v7a x86 mips arm64-v8a x86_64 mips64

当然这些so 也可以和你的项目一起在android studio 里去编译。
具体操作如下:
1 把 tess-two 目录复制到你的项目的根目录下。
2 在settings.gradle 文件里添加include ‘:tess-two’
3 要编译so 就和一般的jni 配置一样去配置tess-two 下的build.gradle,使得它能编译jni。
这个过程比较长,这个的好处就是方便在线编译并修改一些算法,但是当要进行clean 项目的时候,就比较耗时间,大约全部编译一次 7个so,要40到50分钟。
4 把tess-two添加到项目里,在app 的build.gradle里添加下面

dependencies {
     ...
    compile project(':tess-two')
}

这个整个tess-two 就成为你项目的一个module了。

5 Tess-two接口调用如下:
把要识别的图片,解码为bmp 格式后传给下面的doOcr(textbitmap,”/chi_sim”);

import com.googlecode.tesseract.android.TessBaseAPI;

public static String getSDPath() {
    File sdDir = null;
    boolean sdCardExist = Environment.getExternalStorageState().equals(
            android.os.Environment.MEDIA_MOUNTED); // 判断sd卡是否存在
    if (sdCardExist) {
        sdDir = Environment.getExternalStorageDirectory();// 获取外存目录
    }
    return sdDir.toString();
}


public String doOcr(Bitmap bitmap, String language) {
    TessBaseAPI baseApi = new TessBaseAPI();

    baseApi.init(getSDPath(), language);

    bitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true);

    baseApi.setImage(bitmap);

    String text = baseApi.getUTF8Text();

    baseApi.clear();
    baseApi.end();

    return text;
}

要让系统能使用ocr,还需要把相关字符训练数据放到 sdcard 下的tessdata/ 目录下。
相关资源文件也可以到如下网址去下:
英文字符,eng.traineddata https://github.com/tesseract-ocr/langdata
中文字符,chi_sim.traineddata http://download.csdn.net/download/fu_shuwu/10021639

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要确保Tess4JTesseract OCR引擎的JNI已正确添加到您的项目中,可以按照以下步骤进行检查: 1. 确认您已正确配置Tess4J的依赖项。这通常涉及到将Tess4J的JAR文件添加到您的项目的构建路径中。可以使用构建工具(如Maven或Gradle)或手动添加JAR文件到项目的lib目录中。 2. 检查JNI的存在。Tess4J依赖于Tesseract OCR引擎的JNI,这些通常是与操作系统和架构相关的共享文件。您需要确保这些文件存在于您的项目中,并且能够在运行时正确加载。 - 首先,确认您已正确安装了Tesseract OCR引擎。您可以从Tesseract的官方网站(https://github.com/tesseract-ocr/tesseract)下载适用于您的操作系统的最新版本,并按照官方文档进行安装。 - 接下来,检查您的项目中是否包含了与操作系统和架构相匹配的JNI文件。这些文件通常是以`.dll`(Windows)、`.so`(Linux)或`.dylib`(macOS)为后缀的文件。确保这些文件存在于项目的正确位置,并且能够在运行时被访问到。 3. 检查运行时环境的配置。如果您的项目在特定的运行时环境中运行,例如Tomcat或其他应用服务器,确保您已正确配置了该环境,以便能够加载Tess4J和相关的JNI。这可能涉及到设置环境变量、配置文件路径或其他相关配置。 4. 运行项目并检查日志。在项目运行时,观察控制台输出或日志文件中是否有与Tess4J或Tesseract OCR引擎相关的错误或警告信息。这些信息可能会提供更多关于缺失或加载失败的JNI的线索。 通过以上步骤的检查,您应该能够确定是否已正确添加了Tess4JTesseract OCR引擎相关的JNI到您的项目中。如果问题仍然存在,请提供更多的上下文信息,以便我们能够更好地帮助您解决问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值