从具有不同行颜色的图像(OCR)中读取数字表

问题描述 投票:0回答:1

我想从附件图像(png文件)中读取数字表。

enter image description here

我的代码如下:

import cv2
import imutils
import pytesseract
import os

image = cv2.imread(os.path.join(image_path, image_name))
image = imutils.resize(image, width=500)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)[1]

thresh = 255 - cv2.GaussianBlur(thresh, (5,5), 0)
data = pytesseract.image_to_string(thresh, lang='eng', config='--psm 6')

print(data)

结果是:

0.74 0.73 0.72
0.72 0.71 0.71
0.71 0.70 0.70

我们可以看到,它错过了以蓝色突出显示的行。

我的问题是,我们可以调整图像以使我们可以正确读取此缺失的行吗?

python opencv ocr image-recognition python-tesseract
1个回答
1
投票

我仅通过将图像调整为2倍就能够获取要读取的数据。

from PIL import Image
import pytesseract

img = Image.open('PBdvo.png')
img_larger = img.resize((img.width*2,img.height*2)) 
data = pytesseract.image_to_string(img_larger)
print(data)

结果:

0.74 0.73 0.72
0.73 0.72 0.72
0.72 0.71 0.71
0.71 0.70 0.70
© www.soinside.com 2019 - 2024. All rights reserved.