如何在Java中设置Tesseract OCR?

如何在Java中设置Tesseract OCR?,java,api,ocr,tesseract,Java,Api,Ocr,Tesseract,我正在用VisualStudio代码进行一个非常简单的Java项目,该项目需要使用一些基本的光学字符识别,但我没有在代码中设置API或访问第三方软件的实际经验。我使用Maven访问SoeSeFig中的TESSACTE包,我访问了一个TestSerAt类(API),它包含一个文件路径(我相信它是用来访问C++的东西的)。我使用自制软件安装Tesseract,它为我提供了文件路径: /usr/local/Cellar/tesseract/4.1.1 但当我把它插入这个 Tesseract inst

我正在用VisualStudio代码进行一个非常简单的Java项目,该项目需要使用一些基本的光学字符识别,但我没有在代码中设置API或访问第三方软件的实际经验。我使用Maven访问SoeSeFig中的TESSACTE包,我访问了一个TestSerAt类(API),它包含一个文件路径(我相信它是用来访问C++的东西的)。我使用自制软件安装Tesseract,它为我提供了文件路径:

/usr/local/Cellar/tesseract/4.1.1
但当我把它插入这个

Tesseract instance = new Tesseract();
instance.setDatapath("/usr/local/Cellar/tesseract/4.1.1");
运行doOCR方法,它总是会导致相同的空指针错误,这使我认为它无法正确访问Tesseract,特别是因为无论输入的文件路径如何,都会出现相同的错误。这些是错误

21:25:56.021 [main] ERROR net.sourceforge.tess4j.Tesseract - null
java.lang.NullPointerException: null
        at net.sourceforge.tess4j.Tesseract.dispose(Tesseract.java:819)
        at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:239)
        at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:194)
        at com.liamross.tess4j.TessClass.main(TessClass.java:14)
Exception in thread "main" net.sourceforge.tess4j.TesseractException: java.lang.NullPointerException
        at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:245)
        at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:194)
        at com.liamross.tess4j.TessClass.main(TessClass.java:14)
Caused by: java.lang.NullPointerException
        at net.sourceforge.tess4j.Tesseract.dispose(Tesseract.java:819)
        at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:239)
我尽可能地紧跟其后,但不管发生什么,我总是收到这些错误。另外,似乎还有另一个名为libtesseract的目录或库?我不太清楚它是用来做什么的,或者它是否是我需要的东西

我知道,对于一个没有太多经验的人来说,这是一个有点雄心勃勃的项目,但任何帮助都将不胜感激——我花了很多时间试图弄清楚这一点,但似乎没有太多可理解的材料。


谢谢

我复制了您的项目,第一次出现了相同的错误。这是因为Tesseract版本不兼容。以下是解决方案:

  • 安装。我的机器是Win10-64位的,所以我安装了
    tesseract-ocr-w64-setup-v4.0.0.20181030.exe
    。确保它已成功安装

  • 在VS代码中清理Java语言服务器Worspace,然后再次运行

  • 请注意
    tessdata
    和.jpg文件的路径

    设置
    instance.setHocr(false)
    以确保正确读取内容:

    instance.setHocr(true)
    将向您显示xml代码:


    我复制了您的项目,第一次出现了相同的错误。这是因为Tesseract版本不兼容。以下是解决方案:

  • 安装。我的机器是Win10-64位的,所以我安装了
    tesseract-ocr-w64-setup-v4.0.0.20181030.exe
    。确保它已成功安装

  • 在VS代码中清理Java语言服务器Worspace,然后再次运行

  • 请注意
    tessdata
    和.jpg文件的路径

    设置
    instance.setHocr(false)
    以确保正确读取内容:

    instance.setHocr(true)
    将向您显示xml代码:


    我以前没有使用过该工具,只是粗略地在Internet上搜索了一些答案,但请尝试下载此文件并指向它的本地副本(假设您试图阅读英文文本):。
    setDatapath
    应设置为
    tessdata
    文件夹,其中包含
    *.traineddata
    文件。我以前没有使用过该工具,只是在Internet上粗略搜索了一些答案,但请尝试下载此文件并指向其本地副本(假设您正在尝试阅读英文文本):。
    setDatapath
    应设置为
    tessdata
    文件夹,其中包含
    *.traineddata
    文件。