SpringBoot集成Tesseract遇到的各种问题(mac)

1.首先遇到的是版本不兼容问题:

tess4j 与Tesseract版本不兼容,最终tess4j 5.16.0,Tesseract 5.3.0

2.为了安装Tesseract 5.3.0又遇到各种问题:

Tesseract官网最新版好像是5.8,想要安装Tesseract 5.3.0只能通过源码本地编译,编译过程又需要安装各种前置工具,一通折腾,最终Tesseract 5.3.0安装成功,在终端输入

Tesseract --version

得到

tesseract 5.3.0
 leptonica-1.85.0
  libgif 5.2.2 : libjpeg 8d (libjpeg-turbo 3.0.4) : libpng 1.6.50 : libtiff 4.7.0 : zlib 1.2.12 : libwebp 1.5.0 : libopenjp2 2.5.3
 Found NEON
 Found libcurl/8.7.1 SecureTransport (LibreSSL/3.3.6) zlib/1.2.12 nghttp2/1.64.0
3.JNA又不兼容了

最终解决如下:

  <!-- OCR识别(Tesseract Java绑定) -->
        <dependency>
            <groupId>net.sourceforge.tess4j</groupId>
            <artifactId>tess4j</artifactId>
            <version>5.16.0</version> <!-- 或更高的 6.x 版本 -->
            <!-- 排除自带的JNA依赖 -->
            <exclusions>
                <exclusion>
                    <groupId>net.java.dev.jna</groupId>
                    <artifactId>jna</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- 手动添加兼容版本的JNA -->
        <dependency>
            <groupId>net.java.dev.jna</groupId>
            <artifactId>jna</artifactId>
            <version>5.13.0</version> <!-- 与Tess4J 5.16.0兼容的版本 -->
        </dependency>
4.加载libtesseract.dylib、libleptonica.dylib失败
##查找libtesseract.dylib的路径
find / -name "libtesseract.dylib" 2>/dev/null
##查找libleptonica.dylib的路径
find / -name "libleptonica.dylib" 2>/dev/null

最终查到:

libtesseract.dylib路径:/usr/local/lib/libtesseract.dylib
libleptonica.dylib路径:/opt/homebrew/lib/libleptonica.dylib

于是在代码中指定Tesseract库路径:

private String doOcr(BufferedImage image, String lang) throws TesseractException {
  System.setProperty("jna.library.path", "/usr/local/lib:/opt/homebrew/lib");  // 替换为实际路径
  ITesseract tesseract = new Tesseract();
  tesseract.setDatapath("/usr/local/share/tessdata/"); // 替换为你的语言包路径
  tesseract.setLanguage(lang); // 语言参数:eng(英文)、chi_sim(简体中文)
  return tesseract.doOCR(image);
}
最终成功
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容