【问题标题】:tesseract not recognize one number imagetesseract 无法识别一个数字图像
【发布时间】:2018-03-26 20:20:11
【问题描述】:

我正在将 tesseract 与 python 一起使用。它几乎可以识别我所有带有 2 个或更多数字或字符的图像。 但是 tesseract 无法识别只有一个数字的图像。 我尝试使用命令行,它给了我“空白页”作为响应。

我不想用“只有数字”来训练 tesseract,因为我也在识别字符。

有什么问题?

在正方体无法识别的图像下方。

代码:

 #getPng(pathImg, '3') -> creates the path to the figure.
 pytesseract.image_to_string( Image.open(getPng(pathImg, '3')) 

【问题讨论】:

  • 从技术上讲,这不是 python 问题,因为它的 python 方面似乎运行良好。您可以尝试将图像二值化,使文本变小。如果文本太大,有时 Tesseract 无法识别符号。
  • 如果有帮助的话,如果你能向我们展示你到目前为止所拥有的代码。 stackoverflow.com/help/mcve
  • @hikerjobs 我添加了我正在使用 tesseract 的代码。
  • @SrinivasSuresh 我去掉了“python”标签。如果我尝试放大图像以查看是否可以改进某些内容,我会尝试将其缩小,就像您现在建议的那样。
  • @SrinivasSuresh,缩小图像不起作用。

标签: tesseract


【解决方案1】:

如果您添加参数--psm 13,它应该可以工作,因为它会将其视为原始文本行,而无需搜索页面和段落。

那就试试吧:

pytesseract.image_to_string(PATH, config="--psm 13") 

【讨论】:

  • 你好,最后,我制作了自己的图像(零)并将两张图像连接起来。每次 tesseract 无法单独识别数字时,我都会将图像放在零处。现在我有了两位数,它可以工作了。
  • 这对我有一些帮助,但它认为 1 是 4 :(
【解决方案2】:

尝试将图像转换为灰度图像,然后再转换为二进制图像,那么它很可能会读取。 如果不复制图像,那么您有 2 个字母要阅读。因此,您可以简单地提取单个字母

【讨论】:

  • 另外,尝试更新 tesseract 版本。 tesseract 4.0.0-beta.1 和 tesseract 4.0.0 效果更好
【解决方案3】:

基于ceccoemianswer,您可以尝试其他页面分割模式--psm 标志)。

对于这种特殊情况,我建议使用--psm 7(单个文本行)或--psm 10(单个字符):

psm7 = pytesseract.image_to_string(Image.open(getPng(pathImg, '3'), config='--psm 7')
psm10 = pytesseract.image_to_string(Image.open(getPng(pathImg, '3'), config='--psm 10')

有关这些模式的更多信息,请访问tesseract wiki

【讨论】:

    【解决方案4】:

    你可以像这样对单个数字使用 -l osd。

    tesseract VYO0C.png stdout -l osd --oem 3 --psm 6
    2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-11
      • 2020-07-28
      • 2012-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-28
      相关资源
      最近更新 更多