【发布时间】:2021-07-17 13:05:28
【问题描述】:
我正在使用如下示例代码开发 python tesseract 包:
import pytesseract
from PIL import Image
tessdata_dir_config = "--tessdata-dir \"/opt/homebrew/Cellar/tesseract-lang/4.1.0/share/tessdata/\""
image = Image.open("dataset/test.jpeg")
text = pytesseract.image_to_string(image, lang = "chi-sim", config = tessdata_dir_config)
print(text)
我收到以下错误消息:
pytesseract.pytesseract.TesseractError: (1, 'Error opening data file /opt/homebrew/Cellar/tesseract-lang/4.1.0/share/tessdata/chi-sim.traineddata 请确保已设置 TESSDATA_PREFIX 环境变量到您的“tessdata”目录。加载语言“chi-sim”失败,Tesseract 无法加载任何语言!无法初始化 tesseract。')
据我了解,读取文件chi-sim.traineddata(代表简体中文)时出现错误,我将在下面解释我为解决此问题所做的尝试。
- 我的开发环境是M1 macOS,我从Homebrew安装了
tesseract和tesseract-lang。我很确定上面指定的路径正是源文件所在的位置,因为当我调用时
print(pytesseract.get_languages(config = ""))
我打印了很长的语言列表,包括 chi-sim。
- 另外,如果我们只使用英文而不是中文,下面的代码可以成功识别图片中的英文文本:
text = pytesseract.image_to_string(image)
- 我尝试过以多种方式指定环境变量
TESSDATA_PREFIX,包括:
-
在原始代码中使用
config参数。 -
在 PyCharm 中添加全局环境变量。
-
在代码中添加以下行
os.environ["TESSDATA_PREFIX"] = "tesseract/4.1.1/share/tessdata/"
- 将以下行添加到终端中的
bash_profile
export TESSDATA_PREFIX=/opt/homebrew/Cellar/tesseract-lang/4.1.0/share/tessdata/
但不幸的是,这些都不起作用。
- 好像我的文件
chi-sim.traineddata不知何故坏了,所以我直接从GitHub(https://github.com/tesseract-ocr/tessdata/blob/master/chi_sim.traineddata)下载了训练好的数据文件,点击右侧的“下载”按钮,将下载的文件放在tesseract-lang 和原始 tesseract 目录(eng.traineddata所在的位置)。是的,我都试过了,但都不管用。
关于这个问题,有没有潜在的解决方案?
【问题讨论】:
-
如果你在windows上,你是否为tesseract设置了环境路径?
-
如果
get_languages(config = "")显示chi-sim那么为什么要设置tessdata-dir?你试过不改变tessdata-dir吗? -
另外,您的 Mac OS 中的语言设置是什么? tesseract 的非英语系统语言曾经存在一些问题
-
有问题(未发表评论),您可以在找到
chi-sim.traineddata的地方添加指向 GitHub 的链接 - 您可以描述您是如何下载它的。也许你以错误的方式下载它(即在text-mode而不是bytes-mode)或者你可能获得旧版本的文件 - 请参阅带有tessdata for 4.x的GitHub有tessdata for 3.x的链接 -
@seraph 嗯...这是一个很好的观点,因为我的设备的通用语言设置是 chi-sim。我稍后会检查它,如果有什么好的,我会更新这篇文章。
标签: python macos tesseract python-tesseract