Tesseract -tessdata-dir 选项在 ubuntu 18.04 中不起作用

Tesseract -tessdata-dir 选项在 ubuntu 18.04 中不起作用

我正在尝试使用 tesseract 中的最佳模型。但是,我收到以下错误:

tesseract sample.jpg stdout --tessdata-dir tessdata/
Error opening data file tessdata/eng.traineddata
Please make sure the TESSDATA_PREFIX environment variable is set to your "tessdata" directory.
Failed loading language 'eng'
Tesseract couldn't load any languages!
Could not initialize tesseract.

以下是文件夹结构:。

├── sample.jpg
└── tessdata
    └── eng.traineddata

Ubuntu Version:
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.1 LTS
Release:        18.04
Codename:       bionic
tesseract version:
tesseract 4.0.0-beta.1
 leptonica-1.75.3
  libgif 5.1.4 : libjpeg 8d (libjpeg-turbo 1.5.2) : libpng 1.6.34 : libtiff 4.0.9 : zlib 1.2.11 : libwebp 0.6.1 : libopenjp2 2.3.0

答案1

我遇到了同样的问题,我花了很多时间寻找解决方案,这些解决方案看起来很复杂但并不总是成功 - 然后我意识到问题实际上相当简单,一个快速修复就在那里,错误消息明确说明了文件应该在何处,在 tessdata 的父文件夹中。

请确保 TESSDATA_PREFIX 环境变量设置为父目录你的“tessdata”目录

似乎配置文件希望文件位于上一级,所以在我的情况下是 /usr/share/tesseract-ocr/4.00/

将 tessdata 文件夹 /usr/share/tesseract-ocr/4.00/tessdata 中的语言文件和训练数据(在我的情况下是 eng.traineddata 和 osd.traineddata)复制到上一级的父文件夹

之后这个 tesseract 不再有问题

这些是 Ubuntu 19.10 安装的正确位置

答案2

一些有趣的发现,--tessdata-dir 现在在我的python 脚本,但无论如何它在命令行

tesseract sample.png --tessdata-dir /home/nmpai/MyPC/tesseract/ocrb/tessdata -l ocrb_int

正如其他答案所建议的,外部设置 TESSDATA_PREFIX 环境变量是可行的,但这很麻烦。

我们可以在不从外部设置 TESSDATA_PREFIX 的情况下解决这个问题,通过在 python 脚本内部设置它,我猜部署会很顺利。

import os
os.environ['TESSDATA_PREFIX'] = os.path.join(os.getcwd(),"tessdata")

我已经从配置中删除了 --tessdata-dir,因为上述操作有效并且在 python 脚本中很简洁。

答案3

您似乎没有设置TESSDATA_PREFIX变量。编辑~/.bashrc使用任何文本编辑器,例如nano ~/.bashrc'添加一行 export TESSDATA_PREFIX='<absolute path to tessdata>'我认为特斯数据指的是您提到的文件夹。

source ~/.bashrc编辑完成后,请运行并保存 .bashrc。希望这能有所帮助!

相关内容