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 时出错