【问题标题】:OCR detecting E as £OCR 将 E 检测为 £
【发布时间】:2020-02-02 17:35:55
【问题描述】:

我正在使用 pytesseract(tesseract 的第 5 版)来扫描图像。我已将图像更改为黑白以消除噪点,但仍将 E 检测为 196893 英镑。
还尝试设置大多数人建议的语言、dpi 和 psm 值。以下是我现在使用的设置。请提出建议。

pytesseract.image_to_string(Image.open(impath), config=" --dpi 120 --psm 6 -l eng")

示例图片如下所示。对于某些示例,它可以正常工作,但对于某些示例,它会给出如此奇怪的字符。

【问题讨论】:

    标签: ocr tesseract python-tesseract


    【解决方案1】:

    解决此问题的一个解决方案是限制 Tesseract 查找的字符。为此,您必须:

    1. 在 tesseract 配置目录中创建一个具有任意名称(即“白名单”)的文件。在 linux 中,该目录通常放在/usr/share/tesseract/tessdata/configs
    2. 在该文件中添加一行,其中仅包含您要在文本中搜索的字符: tessedit_char_whitelist *list_of_characters*
    3. 然后使用白名单词汇调用您的脚本:
      tesseract input.tif output nobatch whitelist

    在这种情况下,必须在 Python 脚本中将参数设置为:

    pytesseract.image_to_string(Image.open(impath), config=" --dpi 120 --psm 6 -l nobatch whitelist")
    

    【讨论】:

    • 设置 -l eng 不等于这个(我已经做过)? £ 似乎不是英文字母
    • 我认为不等价。 £ 不是字母表中的字母,而是一个符号,它可以出现在英文字符集中。它也是“英磅”的符号!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 2014-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多