Pytesseract 设置字符白名单

Posted

技术标签:

【中文标题】Pytesseract 设置字符白名单【英文标题】:Pytesseract set character whitelist 【发布时间】:2017-09-28 01:32:41 【问题描述】:

有人知道如何设置 Pytesseract 的字符白名单吗?我希望它只输出 A-z 和 0-9。这可能吗?我有以下内容:

img = Image.open('test.jpg')
result = pytesseract.image_to_string(img, config='-psm 6')

我正在获取其他字符,例如 / 表示 1,因此我想限制可能字符的选项。

【问题讨论】:

【参考方案1】:

您可以使用下面的行来完成此操作。或者你可以设置 tesseract 的配置文件来做同样的事情 Limit characters tesseract is looking for

pytesseract.image_to_string(question_img, config="-c tessedit_char_whitelist=0123456789abcdefghijklmnopqrstuvwxyz -psm 6")

我确信还有其他方法可以让它发挥作用,但这对我有用。

【讨论】:

供将来参考:tessedit_char_whitelist 的值区分大小写,因此要捕获aA-zZ0-9,您需要完整的01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz @Cole 上述答案是否仍然有效?我尝试了pyt.image_to_data(im_gray_res, lang='eng', config='-c tessedit_char_whitelist=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ --psm 11 --oem 3'),但对于Il 对于I 仍然得到结果| @SKR 你在tessedit_char_whitelest 中包含了I1,所以这是意料之中的。您可能会将白名单与黑名单混淆? @Cole 我认为白名单意味着指示 tesseract 只给出集合中的字符的结果,对吧?我得到了结果,管道字符 | 和小写字母 L l。这就是我提到的,我仍然从集合之外获得结果。 @SKR 哦,我明白你的意思了。可悲的是,我不知道为什么会这样。我建议在这里打开一个新问题,有人可能知道:-)

以上是关于Pytesseract 设置字符白名单的主要内容,如果未能解决你的问题,请参考以下文章

Python - PIL-pytesseract-tesseract验证码识别

pytesseract:将 7 段数字的图片转换为文本

Pytesseract:FileNotFound

如何设置urlfilter的白名单?

微信设置应用白名单 怎么设置微信白名单

UAC白名单设置工具怎么用