Need to use mss witchout saving and open images in order to "optimize" this task here is mine code and sorry my bad english.
from PIL import Image
import pytesseract
import mss
import mss.tools
with mss.mss() as sct:
monitor = {'top': 171, 'left': 1090, 'width': 40, 'height': 17}
output = 'capture.png'.format(**monitor)
sct_img = sct.grab(monitor)
mss.tools.to_png(sct_img.rgb, sct_img.size, output=output)
text = pytesseract.image_to_string(Image.open('capture.png'))
print(text)
Do you mind using Numpy?
import mss
import numpy
import pytesseract
monitor = {'top': 171, 'left': 1090, 'width': 40, 'height': 17}
with mss.mss() as sct:
im = numpy.array(sct.grab(monitor), dtype=numpy.uint8)
im = numpy.flip(im[:, :, :3], 2) # BGRA -> RGB conversion
text = pytesseract.image_to_string(im)
print(text)
A simple one shot time comparison gives me:
MSS.tools + PIL: 0.00988 s
MSS + Numpy : 0.00222 s