Проблема производительности MSS - PullRequest
0 голосов
/ 03 июня 2019

Согласно этому ответу , 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 мсек, чтобы просто получить кадр, недостаточно быстро

...