【问题标题】:Can tesseract correctly recognise underscores in images?tesseract 可以正确识别图像中的下划线吗?
【发布时间】:2020-05-09 18:10:00
【问题描述】:

我有这样的图片:

我正在尝试获取输出:“_ _ _ _ _ _ _ _ _ _ c _。”

我在 Python 3.6 中工作,并尝试为此使用 tesseract。到目前为止我得到的是以下代码:

import pytesseract
from PIL import Image

# set tesseract file path
pytesseract.pytesseract.tesseract_cmd = "C:/Program Files/Tesseract-OCR/tesseract.exe"
# configurations
config = "--psm 10 --oem 3 -c tessedit_char_whitelist=abcdefghijklmnopqrstuvwxyzßäöü0123456789_-"

image = Image.open("test2.png")

text = pytesseract.image_to_string(image, config=config)    

但是,这不起作用。它只是产生“ee”作为输出。对于其他图片,它有时会识别正确的字母,但不能识别下划线。我试图将它们列入白名单,但这也不起作用。怎样才能做得更好?如有任何建议,我将不胜感激。

【问题讨论】:

    标签: image tesseract python-tesseract


    【解决方案1】:

    我目前遇到了类似的问题。

    我认为一种可能的解决方案可能有效(但我认为性能很重要),是使用 cv2 模块检测水平线并使用检测到的像素位置用下划线填充中间的空间。

    您还必须获取与最小和最大行像素相邻的单词,然后在 pytesseract 的结果字符串中找到单词,将下划线放在字符串中的正确位置。

    这是一个关于在图片中查找线条的好帖子,可能会有所帮助: Horizontal Line detection with OpenCV

    编辑:我现在做的可能有点脏,但我使用上面链接中的水平线检测,然后使用 cv2.putText 写一个字符串 就像这个“QQQQQQ”在该行的开始位置。然后我搜索OCR识别的Q,再次用下划线替换。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-13
      • 2011-10-13
      • 1970-01-01
      • 2020-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多