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')
,但对于I
和l
对于I
仍然得到结果|
?
@SKR 你在tessedit_char_whitelest
中包含了I
和1
,所以这是意料之中的。您可能会将白名单与黑名单混淆?
@Cole 我认为白名单意味着指示 tesseract 只给出集合中的字符的结果,对吧?我得到了结果,管道字符 |
和小写字母 L l
。这就是我提到的,我仍然从集合之外获得结果。
@SKR 哦,我明白你的意思了。可悲的是,我不知道为什么会这样。我建议在这里打开一个新问题,有人可能知道:-)以上是关于Pytesseract 设置字符白名单的主要内容,如果未能解决你的问题,请参考以下文章