Согласно этому ответу , mss должен быть очень быстрым, но больше нет метода mss.mss.get_pixels (), а mss.mss.grab () дает мне плохие результаты (0.074 на экране 1440p для захвата ()). Большую часть времени я получаю почти одинаковые результаты, используя PIL.ImageGrab.grab () или pyautogui.screenshot ().
Это нормально?
Я попытался установить 32-битный Python, чтобы увидеть, была ли проблема в 64-битной версии, но безрезультатно
Я также сделал простой тест
import mss
import PIL
import pyautogui
from time import time
sct = mss.mss()
m = {
'left': 0,
'top': 0,
'width': 2440,
'height': 1440
}
t = time()
data = sct.grab(m)
t = time() - t
print("MSS grab(): {}".format(t))
t = time()
data = PIL.ImageGrab.grab()
t = time() - t
print("PIL grab(): {}".format(t))
t = time()
data = pyautogui.screenshot()
t = time() - t
print("pyautogui screenshot(): {}".format(t))
Вот результаты:
MSS grab(): 0.07446518135070801
PIL grab(): 0.10441708564758301
pyautogui screenshot(): 0.07911845970153809
Редактировать: MSS работает лучше, чем все остальное, но в настоящее время я пытаюсь использовать openCV с ним, и 70 мсек, чтобы просто получить кадр, недостаточно быстро