我想从附件图像(png文件)中读取数字表。
我的代码如下:
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
我们可以看到,它错过了以蓝色突出显示的行。
我的问题是,我们可以调整图像以使我们可以正确读取此缺失的行吗?
我仅通过将图像调整为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