Вы не возражаете против использования 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)
Простое сравнение времени одного выстрела дает мне:
MSS.tools + PIL: 0.00988 s
MSS + Numpy : 0.00222 s