根据此answer,mss应该非常快,但是没有更多的mss.mss.get_pixels()方法,而mss.mss.grab()给我的结果很差(0.074s 1440p屏幕(grab())。在大多数情况下,使用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与之结合使用,而70ms仅仅获得一个帧还不够快