【问题标题】:pytesseract not idenfiying digits properly as well it is detecting dashed 0 as 8pytesseract 也没有正确识别数字,它检测到虚线 0 为 8
【发布时间】:2020-03-03 12:45:39
【问题描述】:

Pytesseract 也无法识别正确的字符,它预测斜线零错误。

这是我的图片:

from PIL import Image
import pytesseract
import cv2
import numpy as np

img = cv2.imread('dilation_1_0.png') #dilation_1.png working,eroded.png,eroded_1.png

text = pytesseract.image_to_string(img,config="--psm 6 oem 0")

print(text)
cv2.imshow("image",img)
cv2.waitKey(0)
cv2.destroyAllWindows()

【问题讨论】:

标签: python-3.x python-tesseract


【解决方案1】:

对于任何图像,您都需要对其进行预处理,使其更容易检测 有些方法是

  • 1.灰度图
  • 2.侵蚀
  • 3.opening - 先腐蚀后膨胀
  • 4.canny边缘检测
  • 5.歪斜校正
  • 6.模板匹配

选择最适合您的一种,或者您可以组合使用。检查以下链接以获取详细说明 Preprocessing for Pytesseract

注意;确保您也安装了 tesseract.exe。如果它适用于普通文本图像,则安装您的 tesseract.exe(这与 pytessearct 不同)

【讨论】:

  • 模板匹配在这种情况下不起作用,因为这是点阵 8*8 像素格式字符,我一直在密切研究您的方法,问题是我无法找到正确的显示角度机器和精明边缘在每张图像中的工作方式都不同,你有什么想法我可以做所谓的广义精明边缘检测(意味着它将从不同角度拍摄的不同图像中提取相同的部分)?
  • 提取同一部分很容易,如果对象保持在同一位置,您可以切片该特定部分。如果图像相似,您可以从原始图像中减去新图像以获得差异并执行操作pyimagesearch.com/2017/06/19/…。如果您想更高级,可以尝试 EAST TEXT DETECTION pyimagesearch.com/2018/08/20/…。除了这个关于opencv中的转换的检查。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-21
  • 2019-12-04
相关资源
最近更新 更多