如何在Java中设置Tesseract OCR?
我正在用VisualStudio代码进行一个非常简单的Java项目,该项目需要使用一些基本的光学字符识别,但我没有在代码中设置API或访问第三方软件的实际经验。我使用Maven访问SoeSeFig中的TESSACTE包,我访问了一个TestSerAt类(API),它包含一个文件路径(我相信它是用来访问C++的东西的)。我使用自制软件安装Tesseract,它为我提供了文件路径:如何在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
/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版本不兼容。以下是解决方案:
tesseract-ocr-w64-setup-v4.0.0.20181030.exe
。确保它已成功安装
tessdata
和.jpg文件的路径
设置instance.setHocr(false)
以确保正确读取内容:
instance.setHocr(true)
将向您显示xml代码:
我复制了您的项目,第一次出现了相同的错误。这是因为Tesseract版本不兼容。以下是解决方案:
tesseract-ocr-w64-setup-v4.0.0.20181030.exe
。确保它已成功安装
tessdata
和.jpg文件的路径
设置instance.setHocr(false)
以确保正确读取内容:
instance.setHocr(true)
将向您显示xml代码:
我以前没有使用过该工具,只是粗略地在Internet上搜索了一些答案,但请尝试下载此文件并指向它的本地副本(假设您试图阅读英文文本):。
setDatapath
应设置为tessdata
文件夹,其中包含*.traineddata
文件。我以前没有使用过该工具,只是在Internet上粗略搜索了一些答案,但请尝试下载此文件并指向其本地副本(假设您正在尝试阅读英文文本):。setDatapath
应设置为tessdata
文件夹,其中包含*.traineddata
文件。