我想要做的是用 pyautogui 制作一个数字的屏幕截图,然后用 pytesseract 将数字转换为字符串。代码: import pyautogui import time import PIL from PIL import Image import pytesseract
pytesseract.pytesseract.tesseract_cmd = 'C://Program Files (x86)//Tesseract-OCR//tesseract'
# Create image
time.sleep(5)
image = pyautogui.screenshot('projects/output.png', region=(1608, 314, 57, 41))
# Resize image
basewidth = 2000
img = Image.open('projects/output.png')
wpercent = (basewidth/float(img.size[0]))
hsize = int((float(img.size[1])*float(wpercent)))
img = img.resize((basewidth,hsize), PIL.Image.ANTIALIAS)
img.save('projects/output.png')
col = Image.open('projects/output.png')
gray = col.convert('L')
bw = gray.point(lambda x: 0 if x<128 else 255, '1')
bw.save('projects/output.png')
# Image to string
screen = Image.open('projects/output.png')
print(pytesseract.image_to_string(screen, config='tessedit_char_whitelist=0123456789'))
现在看来 pytesseract 不接受 pyautogui 创建的屏幕截图。代码运行良好,没有问题,但打印一个空字符串。但是,如果我在绘画中创建图像,并将其作为“output.png”保存到正确的文件夹中,就像截屏一样,它确实可以工作。
有人知道我在哪里遗漏了什么吗?