读取号码Pytesseract的清洁图像

时间:2019-08-12 22:23:33

标签: python python-imaging-library python-tesseract image-preprocessing

我正在尝试从一个数据表中读取一些条目,该数据表先填充名称,然后填充数字列。这是原始图片:

enter image description here

在二值化,转换为黑白之间以及仅反转之间,我发现反转图像可产生最佳效果。

 image = PIL.ImageOps.invert(image

当我向下滚动到更多图像时,这使我可以处理大约90%以上的列,但是我仍然无法处理其中的一堆。有时,列中的括号会合并我在每列中拥有的两个数字。我有什么办法可以解决括号与数字混合的问题,或者删除所有绿色文本?

1 个答案:

答案 0 :(得分:0)

调整图像大小似乎是解决问题的选项。

image = pyautogui.screenshot(region=(550, 354, 964, 552))
width, height = image.size
image = image.resize((args.resize*width, args.resize*height))

我将尺寸调整为至少3倍于原始尺寸。我猜想这增加了字符之间的距离,使识别一个数字的结尾和后面的括号变得更加简单。

或者,以下是更大的改进:

image = cv2.imread(output)
image = cv2.bitwise_not(image)
image = cv2.resize(image, None, fx=1.5, fy=1.7,
                               interpolation=cv2.INTER_CUBIC)  # scale
cv2.imwrite(output, image

缩放比例不是线性的,如果稍微倾斜它,效果会更好。