如何在 Windows 上为 Tesseract 安装新的语言包

How do I install a new language pack for Tesseract on Windows

我已经在我的 venv 中安装了 pytesseract 模块,想从德语文件中提取文本

pytesseract 并将语言设置为德语

import cv2

import pytesseract


try:
    from PIL import Image
except ImportError:
    import Image

print(pytesseract.image_to_string(Image.open('test.jpg')))

print(pytesseract.image_to_string(Image.open('test.jpg'), lang='ger'))

这给了我

raise TesseractError(proc.returncode, get_errors(error_string))
pytesseract.pytesseract.TesseractError: (1, 'Tesseract Open Source OCR Engine v3.05.00dev with Leptonica
 Error opening data file C:\Program Files (x86)\Tesseract-OCR/tessdata/ger.traineddata
 Please make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your "tessdata" directory. Failed loading language \'ger\' Tesseract couldn\'t load any languages! Could not initialize tesseract.')

我在 [tessdoc/Data-Files] (https://github.com/tesseract-ocr/tessdoc/blob/master/Data-Files.md)

上找到了语言数据

到目前为止,我只找到了 linux 如何在 16.04 上为 Tesseract 安装新语言包的指南
我需要将 pyteseract sidepackage 中的语言文件移动到哪里才能使脚本正常工作?

在德国网站上找到了执行此操作的指南Python Texterkennung: Bild zu Text mit PyTesseract in Windows

有两种方法。

1。为您的语言安装相应的 tesseract 包 -

  • apt-get install tesseract-ocr-YOUR_LANG_CODE

例如-在我的例子中是孟加拉语,所以我安装了-

  • apt-get install tesseract-ocr-ben

或安装所有语言 -

  • apt-get install tesseract-ocr-all.

这对我有用 Ubuntu 环境。

2。错误消息本身中提到了另一种方法。添加指向语言包的环境变量 TESSDATA_PREFIX。您可以从这里下载语言包:https://github.com/tesseract-ocr/tessdata .

下载数据包后,您还可以通过编程方式将环境变量设置为

import os
os.putenv('TESSDATA_PREFIX','path/to/your/tessdata/file'

我找到的最佳方法:

  1. 下载并安装tesseract-ocr-w64-setup-v5.0.0-rc1.20211030.exe
  2. 打开 https://github.com/tesseract-ocr/tessdata 并下载您的语言。例如,对于波斯语下载 fas.traineddata.
  3. 将下载的文件复制到tessreact_ocr安装位置,如:C:\Program Files\Tesseract-OCR\tessdata
  4. 不要忘记使用 traineddata 语言名称。对于波斯语,我使用 lang='fas'.