将 Tess4J 作为 Eclipse 中的库包含到 Java 项目中

Posted

技术标签:

【中文标题】将 Tess4J 作为 Eclipse 中的库包含到 Java 项目中【英文标题】:Including Tess4J to a Java project as library in Eclipse 【发布时间】:2012-06-04 16:04:56 【问题描述】:

到目前为止,我有一个空且干净的 Eclipse Java 项目。 我需要做什么才能使用Tess4J 作为我想要开发的 Web 服务的库? 甚至可以将它用作 android 项目的库吗? (会走捷径很多) 我遇到了一个关于.tif 与android 的问题。

Tess4J 是原生代码的包装器,因为 tesseract-ocr 是用 C/C++ 编写的。我到目前为止。但是如何将这个包装器包含到我的项目中呢?

在我决定放弃tesseract.Net 之前,我已经在 Google 上搜索了很多,因为这个项目的维护/记录很差,并且会迫使我使用 C#(这没关系),但我没能成功工作,所以我不得不默认使用 C/C++(这不行);)

我现在有点迷茫,所以欢迎任何帮助。 问候。

编辑:按照提到的步骤here(来自 nguyenq 的回答)

1:新的 Eclipse 工作区

2:创建了一个名为lib的新目录

3:将\Tess4J\dist\tess4j.jar\Tess4J\lib\jna.jar\Tess4J\lib\jai_imageio.jar复制到lib(2)

4:在Eclipse中新建一个Java项目

5:在项目属性 (4) 中,我将 (3) 中的 .jar 作为库下的外部 jar 添加到 Java 构建路径

6:我将目录\tessdatalibtesseract302.dll复制到项目根目录\workspace\project\

7:我创建了一个新类 Main 并实例化了一个 Tesseract1 tesseract = new Tesseract1(); 用于测试

8:我运行应用程序但抛出异常:Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'libtesseract302' Module not found

编辑2:

7.1:我创建了一个新类 Main 并实例化了一个 Tesseract tesseract = new Tesseract.getInstance(); 用于测试(来源:here)

8.1:目前看起来还不错,但没有实现任何逻辑,只是尝试构建它。

编辑3:

9:不,不起作用。仍然 UnsatisfiedLinkError。这可能是关于 32 位与 64 位的问题吗? 我正在开发 Win7 64 位。

【问题讨论】:

哦,差点忘了:它必须是 tesseract 3.x 引擎,因为它支持多列。 这个 Apache licensed app 可能是一个很好的起点 - 它的 tesseract 2.03,所以可能需要做很多工作来适应 3.x。 比您正在使用的操作系统更有趣的是:您在哪个 JVM 上执行您的应用程序? 【参考方案1】:

按照以下链接中描述的步骤让 Tess4J 在 Eclipse 中运行:

http://sourceforge.net/projects/tess4j/forums/forum/1202294/topic/4506433

我不确定该库是否会在 Android 上运行,因为似乎该平台上的 JNA 支持尚不存在。

如果您想要 Tesseract 3.01 的 .NET 包装器,请查看 https://github.com/charlesw/tesseract-ocr-dotnet。

【讨论】:

谢谢!你能这么好心,看看我的步骤,我在我的问题中写了编辑吗?似乎有一个我找不到的小故障。 项目结构和文件放置看起来正确。您错过了 1 个文件 liblept168.dll,这是 libtesseract302.dll 操作图像所需的 Leptonica 库。请务必将示例图像 eurotext.tif 也添加到 workspace\project\。 切换到 32 位 JRE 似乎可以解决问题。现在它在加载 traineedata 时与“\”和“/”混淆了,但如果我解决了这个问题,我想我将能够使用 Tess4J。 恭喜!自从您提到它以来,我正要询问JDK bit-ness,但您已经弄清楚了。 Tesseract 和 Leptonica DLL 都是 32 位二进制文​​件。【参考方案2】:

这个问题是因为 .dll 库不支持 64 位版本的 Eclipse 和 JDK(带有 JRE)。您必须安装 32 位版本的 JDK 和 Eclipse 并再次重复此过程。对我来说工作得很好。

【讨论】:

谢谢,这已经讨论过了。在这种情况下,IDE 的位数并不重要。

以上是关于将 Tess4J 作为 Eclipse 中的库包含到 Java 项目中的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse:覆盖 project.properties 中定义的库路径

tess4j

Tesseract - 错误 net.sourceforge.tess4j.Tesseract - null

Eclipse中的JavaScript编辑器[关闭]

OpenCV - 如何使用 Eclipse C++ IDE 将 /home 中编译的 opencv 库优先于 /usr/lib/ 中编译的库

如何将 Eclipse 运行配置转换为 .bat 文件