有没有一种方法可以使用 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+ 帧/秒。
作为引用,请查看此链接:OpenCV/Numpy example with mss
关于python - 在 Python 中从屏幕捕获视频数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35097837/