我正在使用tess4j,Tesseract的java包装器.我也安装了正常的Tesseract.我不太确定tess4j是如何工作的,但由于它附带了一个tessdata文件夹,我可以假设您将语言数据文件放在那里.但是,tess4j仅在语言数据文件位于"真实"tessdata文件夹(tesseract附带的文件夹,而不是tess4j)中时才起作用.如果我删除该文件夹,我收到此错误消息:
Error opening data file C:\Program Files\Tesseract-OCR\tessdata/jpn.trained
data
Please make sure the TESSDATA_PREFIX environment variable is set to the par
ent directory of your "tessdata" directory.
Failed loading language 'jpn'
Tesseract couldn't load any languages!
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x631259dc, pid=5108, tid=
10148
#
# JRE version: 7.0_06-b24
# Java VM: Java HotSpot(TM) Client VM (23.2-b09 mixed mode, sharing windows
-x86 )
# Problematic frame:
# …Run Code Online (Sandbox Code Playgroud) 我正在为登录页面编写脚本.但我有一个我想要处理的验证码.
安装 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>
Run Code Online (Sandbox Code Playgroud)
通过 brew 安装 Tesseract 3.03.00。将 TESSDATA_PREFIX 设置为路径
/usr/local/Cellar/tesseract/3.04.00/share/tessdata
Run Code Online (Sandbox Code Playgroud)
但是,实际上,当我执行以下命令时
sudo find / -name tessdata
Run Code Online (Sandbox Code Playgroud)
我发现 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
Run Code Online (Sandbox Code Playgroud)
现在我是否正确设置了我的 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 …Run Code Online (Sandbox Code Playgroud)