0

根据这个答案,mss 应该非常快,但是没有更多的 mss.mss.get_pixels() 方法和 mss.mss.grab() 给我的结果很差(在 1440p 屏幕上为 grab() 0.074s) . 大多数时候,我使用 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 毫秒来获得一帧还不够快

4

0 回答 0