试图让 Tess4J 工作

Posted

技术标签:

【中文标题】试图让 Tess4J 工作【英文标题】:Trying to get Tess4J to work 【发布时间】:2019-02-01 02:07:54 【问题描述】:

我一直在尝试让 Tess4J 在 NetBeans 上工作,但到目前为止没有成功。我在这里学习教程:- http://tess4j.sourceforge.net/tutorial/

我已经逐字逐句地遵循它,但收到以下错误消息:-

“打开数据文件时出错./tessdata/eng.traineddata 请确保将 TESSDATA_PREFIX 环境变量设置为“tessdata”目录的父目录。 加载语言“eng”失败 Tesseract 无法加载任何语言!”

谁能告诉我这是什么意思,以及如何纠正它?

我在这里有一个 NetBeans 项目的屏幕截图:-

【问题讨论】:

你是在windows机器上吗? 您是否考虑过设置它所抱怨的环境变量? @sorfiend 是的,我是 @feelingunwelcome 我不得不承认这里的无知。我正在做这整件事作为一个工作项目。尽管我的编程技术不差,但我并不是最懂 IT 的人。我什至不知道他的错误在说什么,或者意味着什么,更不用说如何解决了。我用谷歌搜索了这个错误,并没有发现太多可以说明问题的地方。 @JeremyWatts 我宁愿在这里回答,这样你就可以自己做。您需要从此处下载“eng.traineddata”:github.com/tesseract-ocr/tessdata/raw/master/eng.traineddata,然后将其放入项目文件夹内的“tessdata”文件夹中。 【参考方案1】:

如下设置数据完整路径:

process.setDatapath("F:/Jar/Tess4J-3.4.8-src/Tess4J/tessdata");

或者把tessdata文件放到项目根目录下。它应该可以正常工作。

【讨论】:

【参考方案2】:

您的环境变量中缺少其他必需的文件。

我们可以在您链接的说明页面上看到:

由于 DLL 是使用 Visual Studio 2015/2017 构建的,请确保 你有 Visual C++ 2015 Redistributable 或 VC++ 2017 Redistributable 已安装。

解决问题的最快方法是确保安装了 VC++ 2017 Redistributable。

或者,您可以在其他地方获取所需的文件,然后手动将它们添加到您的项目位置或类路径中的其他地方。

编辑:如果您不在 Windows 机器上,或者只是想完全构建库,请参见此处:https://github.com/tesseract-ocr/tesseract/wiki/Compiling

【讨论】:

为什么投反对票?如果有问题,请添加评论或提出建议。 我已经安装了 VC++ 2017 Redistributable,但仍然没有运行它 @JeremyWatts 你知道你的“tessdata”文件夹在哪里吗?如果您按照教程进行操作,它们应该位于项目的根目录中。在 Netbeans 中选择 Files 视图,它应该会显示出来。如果它不存在,那就是你的问题。如果存在,请确保它包含 eng.traineddata 文件。 好的,是的,您需要获取语言包。请参阅此问题和答案以获取大量有用信息:***.com/questions/14800730/tesseract-running-error 具体而言,您可以在这里找到它们:github.com/tesseract-ocr/tessdata 我看到的试图安装这个东西的在线漫游,都是从找到 Tess4J 项目开始的,然后将文件从它拖放到一个名为 OCR 的新项目中(或一些其他名字)。将 Tess4J 项目导入到您正在处理的项目中肯定不是更好吗?【参考方案3】:

ITesseract 实例 = new Tesseract(); instance.setDatapath("C:\Users\Tux\Documents\tessdata");

这对我有用。您可以将语言文件放在“tessdata”文件夹中。您可以在任何地方创建“tessdata”文件夹

【讨论】:

以上是关于试图让 Tess4J 工作的主要内容,如果未能解决你的问题,请参考以下文章

Tess4J IllegalStateException:未设置输入

在 Tomcat 上使用 Tess4J

java 怎么调用tess4j

基于tess4j的图片文字提取

利用Tess4J实现图片识别

Tess4J Linux 实践[解决:Tess4J - Native library (linux-x86-64/libtesseract.so) not found in resource path