安装Tesseract以使用Selenium WebDriver(Java)进行一些OCR测试。
这是我对Tess4J
的依赖<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
我在4个不同的位置发现了tessdata文件夹。
/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
答案 0 :(得分:3)
// change
var amountgrabbed = document.getElementById("revese-amt").value;
// to
var amountgrabbed = document.getElementById("revese-amt").textContent;
应设置为TESSDATA_PREFIX
的父目录,即tessdata
。
答案 1 :(得分:0)
通过使用该方法以编程方式设置路径可以解决此问题 instance.setDatapath(parentPath);
你可能会看到一个弹出“你最后一次打开java时,它在重新打开窗口时意外退出。你想再尝试重新打开它吗?”,点击“重新打开”,它将永远不再出现。
我现在所有的测试都运行得非常好。
答案 2 :(得分:0)
对于那些在Tesseract上有路径问题的人(可能会发生),我发现通常你可以将tessdata的路径作为第一个参数传递给实例。
在其他人身上,您可以以编程方式设置它。
我刚刚做过Python和Tesserwrap的案例:https://stackoverflow.com/a/38821791/2480481
我知道那个MacOS,但答案的关键是&#34;把路径放在实例上并祈祷#34;它对我有用。