Tesseract 运行错误

129

我在Linux上运行tesseract-ocr引擎时遇到了问题。我已经下载了RUS语言数据并将其放置到tessdata目录(/usr/local/share/tessdata)中。当我尝试使用命令tesseract blob.jpg out -l rus运行tesseract时,它显示一个错误:

Error opening data file /usr/local/share/tessdata/eng.traineddata

Please make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your "tessdata" directory.

Failed loading language eng
Tesseract couldn't load any languages!

Could not initialize tesseract.

根据编译指南,我使用export TESSDATA_PREFIX='/usr/local/share/'来指向我的tessdata目录。 也许我应该编辑一些配置文件?Tesseract尝试加载'eng'数据文件而不是'rus'。

Screenshot: http://i.stack.imgur.com/I0Guc.png

21个回答

2
在Google Colab中,我通过以下方式解决了这个问题:
!sudo apt-get install tesseract-ocr-*

因为如果您使用此命令!sudo apt install tesseract-ocr,那么它会导入2种语言,但当您想要处理非英语语言时,则前面的命令无效。 之后,使用此命令!pip install pytesseract 您还可以通过以下方式检查语言!tesseract --list-langs


这应该是正确的答案(通过包管理器安装语言,而不是手动下载并将训练数据移动到存储库中。我在Ubuntu 22.04上尝试了这种方法,仍然收到相同的消息,即使文件存在且具有适当的权限,并且list-langs命令已输出我要使用的语言)。 - dimisjim

1

1
我正在使用Visual Studio 2017社区版。
我通过在项目的Debug目录中创建一个名为tessdata的目录来解决这个问题。然后,我将eng.traineddata文件放入该目录中。

0
在macOS上,通过macports安装:
安装tesseract后,运行sudo port install tesseract-osd以启用'osd'。这个方法解决了我的错误。

0

0
截至2021年,我在Ubuntu上的解决方案是从https://github.com/tesseract-ocr/tessdata_best/releases/tag/4.1.0下载zip文件,然后提取并复制必要的.traineddata文件到/usr/local/share/tessdata。这是tesseract 4.1.1搜索训练数据的默认文件夹。

默认情况下,在Ubuntu 20.04上,文件位于/usr/share/tesseract-ocr/4.00/tessdata/。Tesseract版本为4.1.1。如果在此处放置tessdata_best文件,则Tesseract会抛出错误。如果您遇到了这个问题,您是如何解决的? - qwertynik

0

如何解决我在Manjaro Xfce中的问题:

出现消息“TesseractError:(1,'打开数据文件/home/julio/snap/tesseract/common/eng.traineddata时出错,请确保TESSDATA_PREFIX环境变量设置为您的“tessdata”目录。加载语言'eng'失败Tesseract无法加载任何语言!无法初始化tesseract。')”

然后,在我的Manjaro中,我键入:sudo pacman -S tesseract 然后系统安装了“tesseract”和一个名为“leptonica”的软件包

完成此步骤后,我认为一切都没问题,尝试运行我的简单脚本。但是,错误消息更改为类似于以下内容(将先前的“/home”位置更改为其他“/usr”类似位置): ““请确保TESSDATA_PREFIX环境变量设置为您的“tessdata”目录。加载语言'eng'失败Tesseract无法加载任何语言!无法初始化tesseract。”'”

然后我意识到,当我使用pacman安装“tesseract”时,出现了这条消息:“您必须安装tesseract-data-*软件包或整个tesseract-data组”

所以,我尝试了命令:“sudo pacman -S tesseract-data”,系统向我展示了许多语言选项。因此,我选择了一些语言,按照以下方式安装,模块开始正常工作:

sudo pacman -S tesseract-data-eng

sudo pacman -S tesseract-data-por

sudo pacman -S tesseract-data-fra

sudo pacman -S tesseract-data-spa

我尝试了一些葡萄牙语特殊字符(如“ão”),只有在使用参数“lang='por'”时,才能正常工作:pytesseract.image_to_string(img,lang='por')


0
将以下代码添加到您的程序中:
instance.setDatapath("C:\\somepath\\tessdata");

instance.setLanguage("eng");

0
tessdata_dir_config = r'--tessdata-dir "/usr/local/Cellar/tesseract/4.1.1/share/tessdata"'
pytesseract.image_to_string(imgCrop,lang='eng',config=tessdata_dir_config)

4
这不是一个答案。请解释一下这里发生了什么,以便其他人在阅读您的回复时可以获得有用的见解。 - AlexH

0

对于 Windows 系统,你需要完成以下步骤:

  1. 下载所需的语言文件
  2. 将其存储在任意文件夹中,最好是 tessdata 文件夹
  3. 在高级系统设置(例如:C:\Userseclipse-workspace\tessdata)中设置系统环境变量(而不是用户环境变量)
    • 变量名:TESSDATA_PREFIX
    • 变量值:例如:C:\Userseclipse-workspace\tessdata
  4. 重新启动您的计算机

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接