我正在尝试使用 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。希望这能有所帮助!