如何配置PyteSeract以支持windows 10中非英语语言的文本检测?

2024-05-16 18:35:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经试用了pytesseract English。它工作正常,产生了预期的结果。但对于英语以外的其他语言(如阿拉伯语),它无法做到这一点,并给出以下错误:

TesseractError: (1, 'Error opening data file C:\\Program Files (x86)\\Tesseract-OCR\\ara.traineddata 
Please make sure the TESSDATA_PREFIX environment variable is set to your "tessdata" directory. 
Failed loading language \'ara\' Tesseract couldn\'t load any languages! 
Could not initialize tesseract.')

试图从github完成(ara.traineddata),但无法完成


Tags: 语言dataenglish错误errorfilesprogramx86
1条回答
网友
1楼 · 发布于 2024-05-16 18:35:16

pytesseract是程序tesseract(由谷歌开发的OCR)上唯一的包装器

tesseract需要使用语言的文件,您可以在其文档中找到:Data Files

您可以将ara.traineddata下载到某个文件夹,并使用选项 tessdata-dir some_folder运行它,然后它将从此文件夹中使用ara.traineddata

如果将ara.traineddata保存在与运行代码相同的文件夹中,则可以使用.(点)

tesseract image.jpg stdout -l ara  tessdata-dir .

你也可以用config=pytesseract中做同样的事情

import pytesseract

text = pytesseract.image_to_string('image.jpg', lang='ara', config=' tessdata-dir .')

print(text)

最终,您可以使用环境变量TESSDATA_PREFIX来实现此目的

import pytesseract
import os

os.environ['TESSDATA_PREFIX'] = '.'

text = pytesseract.image_to_string('text-ara.jpg', lang='ara')

print(text)

稍后,您可以直接在系统中设置TESSDATA_PREFIX,也可以尝试将ara.traineddata移动到包含其他文件的文件夹.traineddata。应该有eng.traineddata的地方,你可以用find之类的程序/命令来找到


我用我在文档中找到的这个图像对它进行了测试:Command Line Usage

enter image description here


顺便说一句:tesseract通常将文本保存在文件中,但如果使用stdout,则它会在控制台中显示文本

相关问题 更多 >