【问题标题】:Pytesseract set character whitelistPytesseract 设置字符白名单
【发布时间】: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,因此我想限制可能字符的选项。

【问题讨论】:

    标签: python ocr tesseract python-tesseract


    【解决方案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 哦,我明白你的意思了。可悲的是,我不知道为什么会这样。我建议在这里打开一个新问题,有人可能知道:-)
    猜你喜欢
    • 2011-09-19
    • 2016-12-28
    • 2022-06-26
    • 2020-04-14
    • 2022-07-10
    • 1970-01-01
    • 2012-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多