java - Linux下运行tess4j(tessreact java包装器)

标签 java linux tesseract tess4j

在 Linux 服务器上 tesseract 3.0.2 库已正确安装:

[root@XXX as]# rpm -qa | grep ".*tess.*"
tesseract-3.02-alt1.r723

尝试运行 tess4j 包装器时,出现此异常:

Exception in thread "main" java.lang.UnsatisfiedLinkError: Error looking up function 'TessBaseAPICreate': /usr/lib64/libtesseract.so.3.0.2: undefined symbol: TessBaseAPICreate
        at com.sun.jna.Function.<init>(Function.java:208)
        at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:536)
        at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:513)
        at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:499)
        at com.sun.jna.Library$Handler.invoke(Library.java:199)
        at com.sun.proxy.$Proxy0.TessBaseAPICreate(Unknown Source)
        at net.sourceforge.tess4j.Tesseract.init(Tesseract.java:284)
        at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:219)
        at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:200)
        at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:184)
        (... private code ...)

异常文件中提到的存在:

[root@XXX as]# test -e /usr/lib64/libtesseract.so.3.0.2  && echo "Found" || echo "Not found"
Found

tess4j 代码中引发异常的位置如下所示:

/**
 * Initializes Tesseract engine.
 */
private void init() {
    pageNum = 0;
    api = TessAPI.INSTANCE;
    handle = api.TessBaseAPICreate();  // ERROR HERE, line #184
    api.TessBaseAPIInit2(handle, datapath, language, ocrEngineMode);
    api.TessBaseAPISetPageSegMode(handle, psm);
}

我不知道如何解决这个问题,因为所有库版本都是相同的,它在 Windows 下完美运行。

最佳答案

嗯,这是使用的操作系统(“ALT Linux Centaurus 6.0”)中的软件包的特殊问题。在该操作系统下从源重建 tesseract 包后,一切都变得正常。

关于java - Linux下运行tess4j(tessreact java包装器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25404464/

相关文章:

ocr - Tesseract 3 中字典的强度

java - Eclipse 在 bin 目录中找不到文件

java - 为 Hibernate 测试配置 HSQL Server

java - 无法从 Java 中的 COM 端口读取串行数据

python - 二值图像上的 Tesseract OCR

java - Tesseract - 找不到指定的模块

java - 我有一种从 String[] 中删除空值的方法,我如何为该函数创建一个方法并稍后调用它? java

java - 正则表达式立即否定前瞻

linux - 通过 mesa 在旧硬件上运行 OpenGL 程序

c++ - 在进入 main() 之前我遇到段错误