Tesseract 不使用自定义语言.traineddata 文件

问题描述 投票:0回答:1

我正在尝试向 OCR 教授一种新字体,Beaufort for LOL。

为此,我遵循了使用 QT-Box 编辑器的视频中的教程:https://youtu.be/N5Y6gZgvryQ 但完成所有步骤并设置 Tesseract 使用新语言后,输出始终为空。

我设法以 1:1 的方式完成每一步(除了将“arial”重命名为“beaufortforlol”,这也是在 QT-Box 编辑器中设置的),但是运行后“output.txt”文件中没有保存任何内容:

tesseract testlan.beaufortforlol.exp0.png output.txt -l testlan
在cmd中,而它应该包含输入图像的文本。我还尝试将 python 脚本与 pytesseract 一起使用,指定新的“testlan”语言,但同样没有生成任何内容。有趣的是,我的“testlan.traineddata”肯定被识别,因为脚本甚至不返回任何错误 - 只有当我尝试设置无法识别的语言时才会发生这种情况。 我确保我的“testlan.traineddata”位于正确的目录中(“C:\Program Files\Tesseract-OCR essdata”以及 eng.traineddata”)。

编辑:相关文件(traineddata、.png、python 脚本):https://fileport.io/mUqmJTyr659Z

import pytesseract
from PIL import Image
img_file = "OCRdata/no_noise.jpg"
img = Image.open(img_file)
ocr_result = pytesseract.image_to_string(img, lang='testlan')
print(ocr_result)
ocr tesseract python-tesseract
1个回答
-1
投票

这并不完全正确。 Tesseract 绝对可以使用自定义语言 .traineddata 文件。可能存在配置问题,导致其无法识别您的配置。以下是如何使用自定义文件:

放置:确保您的自定义 .traineddata 文件(例如 mycustom.traineddata)放置在 Tesseract 的数据目录中,通常称为 tessdata。

指定语言:在 Tesseract 代码中,指定自定义文件的名称(不带 .traineddata 扩展名)作为语言参数。例如,如果您的文件是 mycustom.traineddata,请使用“mycustom”作为语言。

Tesseract 数据前缀(可选):如果 tessdata 目录不在默认位置,您可能需要设置 TESSDATA_PREFIX 环境变量以指向包含自定义文件的目录。

© www.soinside.com 2019 - 2024. All rights reserved.