首页 > 解决方案 > 在 pytesseract 中应用用户模式

问题描述

我正在使用 pytesseract 尝试检测图像中的某些字符串模式。据我了解,正确使用user patterns将有助于 pytesseract 更好地扫描特定模式的字符串。但是,我不知道如何让它发挥作用。这个问题有助于澄清要使用我必须使用config参数 (pytesseract.pytesseract.image_to_string(image, config='),但我不知道如何将其应用于我的案例。

我试图找到这个正则表达式模式:\d{5}\.?\d{5} \.?\d{6} ?\d{5}\.?\d{6} ?\d ?\d{14}。我应该如何应用它user patterns来帮助 tesseract 进行更好的 OCR 扫描?

标签: pythontesseractpython-tesseract

解决方案


有点难找。是的,user-patternintesseract在旧版本的tesseract.

请参阅github 上的此 Pull Request

最后我找到了如何使用user-patternin的示例tesseract。在您的情况下,您可以尝试:

  1. 首先,确保版本tesseract> = 4.0。(我建议你安装tesseract5.x,因为我在我的电脑上使用的是5.x)

  2. 创建一个名为xxx.patterns.The 内容的文件(带有UNIX行结尾(换行符)和末尾的空行):

\d{5}\.?\d{5} \.?\d{6} ?\d{5}\.?\d{6} ?\d ?\d{14}
 
  1. 然后尝试使用:
pytesseract.image_to_string("test.png", config="--user-patterns yourpath/xxx.patterns")

最后,它对我有用(这是文档中的一个示例。): 在此处输入图像描述


您也可以参考此文档


推荐阅读