【问题标题】:How do I use Tess4j in my programs?如何在我的程序中使用 Tess4j?
【发布时间】:2016-03-19 23:53:05
【问题描述】:

我正在开展一个在 Java 中使用 OCR 的项目,并且遇到了 Tess4j。我在 Mac 上使用 netbeans,似乎没有任何可用的初学者信息。我真的需要安装 Tesseract 才能使用 Tess4j 吗?如果是这样,当我分发我的软件时,我的用户是否必须先安装 Tesseract?我已按照此处的说明进行操作:http://tess4j.sourceforge.net/tutorial/ 但我收到以下错误消息:

Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'tesseract': Native library (darwin/libtesseract.dylib) not found in resource path ([file:/Users/unknown1/Desktop/Tess4J/lib/jai_imageio.jar, file:/Users/unknown1/Desktop/Tess4J/lib/jna.jar, file:/Users/unknown1/Desktop/Tess4J/lib/commons-io-2.4.jar, file:/Users/unknown1/Desktop/Tess4J/build/classes/, file:/Users/unknown1/NetBeansProjects/TesseractExample/build/classes/])
    at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:271)
    at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:398)
    at com.sun.jna.Library$Handler.<init>(Library.java:147)
    at com.sun.jna.Native.loadLibrary(Native.java:412)
    at com.sun.jna.Native.loadLibrary(Native.java:391)
    at net.sourceforge.tess4j.util.LoadLibs.getTessAPIInstance(LoadLibs.java:78)
    at net.sourceforge.tess4j.TessAPI.<clinit>(TessAPI.java:40)
    at net.sourceforge.tess4j.Tesseract.init(Tesseract.java:360)
    at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:273)
    at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:205)
    at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:189)
    at tesseractexample.TesseractExample.main(TesseractExample.java:16)
/Users/unknown1/Library/Caches/NetBeans/8.1/executor-snippets/run.xml:53: Java returned: 1
BUILD FAILED (total time: 9 seconds)

任何想法我需要做什么?

【问题讨论】:

    标签: java netbeans tesseract tess4j netbeans-8.1


    【解决方案1】:

    您必须首先在 Mac 上构建和/或安装 Tesseract。安装后,libtesseract.dylib 将可供 Tess4J 调用。

    【讨论】:

    • 谢谢,我已经设法让它从 netbeans 运行,但是当我编译并作为独立 jar 运行时,它不起作用。如果我找到他的 libtesseract.dylib 文件,我可以将它包含在与库相同的文件夹中吗?它是否应该在不需要安装 Tesseract 本身的情况下编译和工作?我希望我的应用程序可以跨平台运行,而无需用户安装。这真的可以实现吗?
    • 我看到了一个包含以下行的 windows 示例:System.setProperty("jna.library.path", "32".equals(System.getProperty("sun.arch.data.model) ")) ? "lib/win32-x86" : "lib/win32-x86-64");我是否正确地认为除了 libesseract.dylib 我会做同样的事情?我可以将它包含在库文件夹中吗?
    • 是的,您使用 jna.library.path 变量来帮助 JNA 定位和加载自定义本机库。如果您选择捆绑它们,则需要将它们放在特定文件夹中(请参阅JNA code)。这是一个雄心勃勃的目标,即为这么多不同的操作系统和版本获取或编译所有必需的库和依赖项。
    【解决方案2】:

    您必须是 64 位操作系统,因此请尝试安装 32 位操作系统 JVM,或者如果您必须使用 64 位 JVM,则需要 Tesseract 和 Leptonica 64 位 DLL。使用https://github.com/charlesw/tesseract/tree/master/src/lib/TesseractOcr/x64提供的那些

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-29
      • 2016-01-14
      相关资源
      最近更新 更多