Tesseract MacOS 错误打开数据文件 ./tessdata/eng.traineddata

Posted

技术标签:

【中文标题】Tesseract MacOS 错误打开数据文件 ./tessdata/eng.traineddata【英文标题】:Tesseract MacOS Error opening data file ./tessdata/eng.traineddata 【发布时间】:2016-05-12 22:03:59 【问题描述】:

安装了 Tesseract 以使用 Selenium WebDriver (Java) 进行一些 OCR 测试。

这是我对 Tess4J 的 maven 依赖项

<dependency>
<groupId>net.sourceforge.tess4j</groupId>
<artifactId`enter code here`>tess4j</artifactId>
<version>2.0.0</version>
<scope>test</scope>
</dependency>

通过 brew 安装了 Tesseract 3.03.00。将 TESSDATA_PREFIX 设置为路径

/usr/local/Cellar/tesseract/3.04.00/share/tessdata

但是,实际上,当我执行以下命令时

sudo find / -name tessdata 

我发现 tessdata 文件夹位于 4 个不同的位置。

/Users/<username>/Downloads/Tess4J/tessdata
/Users/<username>/tesseract-ocr/tessdata
/usr/local/Cellar/tesseract/3.04.00/share/tessdata
/usr/local/share/tessdata

现在我是否正确设置了 TESSDATA_PREFIX 感到困惑,因为在尝试运行 junit 测试时出现以下错误

    Error opening data file ./tessdata/eng.traineddata
    Please make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your "tessdata" directory.`enter code here`
    Failed loading language 'eng'
    Tesseract couldn't load any languages!
    AdaptedTemplates != NULL:Error:Assert failed:in file adaptmatch.cpp, line 174

【问题讨论】:

【参考方案1】:

TESSDATA_PREFIX应设置为tessdata的父目录,即/usr/local/Cellar/tesseract/3.04.00/share/

【讨论】:

我试过这个,但还是没有运气。由于同样的原因,它仍然失败。 尝试通过instance.setDatapath(parentPath);方法以编程方式设置它。 太棒了。谢谢@nguyenq,它现在对我有用。但是,唯一的问题是,每当我运行这个测试时,我都会弹出窗口说“你上次打开 java 时,它在重新打开窗口时意外退出。你想再次尝试重新打开它的窗口吗?”为什么我会看到这个? 另外,对于其他面临类似问题的人,这个博客帮助了我很多。 tphangout.com/?p=18【参考方案2】:

通过使用方法以编程方式设置路径解决了这个问题 instance.setDatapath(parentPath);

您可能会看到弹出“上次打开 java 时,它在重新打开窗口时意外退出。是否要再次尝试重新打开它的窗口?”,单击“重新打开”,它将不再出现。

我的所有测试现在都运行良好。

【讨论】:

【参考方案3】:

对于那些在 Tesseract 上的路径有问题的人(很可能会发生),我发现通常您可以将 tessdata 的路径作为实例上的第一个参数传递。

您可以在其他人之前以编程方式设置它。

我刚刚做的 Python 和 Tesserwrap 案例:https://***.com/a/38821791/2480481

我知道那是 MacOS,但答案的关键是“将路径放在实例上并祈祷”,它对我有用。

【讨论】:

以上是关于Tesseract MacOS 错误打开数据文件 ./tessdata/eng.traineddata的主要内容,如果未能解决你的问题,请参考以下文章

Tesseract ios SDK 打开数据文件 /tessdata/eng.traineddata 时出错

Tesseract OCR win 32位编译

Tesseract 微调错误 - 计算 CTC 目标失败

Flutter:打开文件过多异常(MacOS)

tesseract3.02.02中文训练 使用jTessBoxEditor 打开BOX文件中文乱码

Tesseract OCR 无法识别除法符号“÷”