有没有办法使用Python(也许使用OpenCV或PIL)连续抓取整个或部分屏幕的帧,至少以15 fps或更高的速度?我见过用其他语言完成的,所以理论上它应该是可能的。
我不需要将图像数据保存到文件中。实际上,我只是希望它输出一个包含原始 RGB 数据的数组(例如 numpy 数组或其他内容),因为我将把它发送到大型 LED 显示器(可能在重新调整大小之后)。
通过上述所有解决方案,我无法获得可用的帧速率,直到我按以下方式修改代码:
import numpy as np
import cv2
from mss import mss
from PIL import Image
bounding_box = {'top': 100, 'left': 0, 'width': 400, 'height': 300}
sct = mss()
while True:
sct_img = sct.grab(bounding_box)
cv2.imshow('screen', np.array(sct_img))
if (cv2.waitKey(1) & 0xFF) == ord('q'):
cv2.destroyAllWindows()
break
通过这个解决方案,我可以轻松获得每秒 20 帧以上的速度。
作为参考,请检查此链接:带有 mss 的 OpenCV/Numpy 示例 https://python-mss.readthedocs.io/examples.html#opencv-numpy
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)