我正在使用Python 3.5.1和OpenCV 3.0.0。
我正在开发一个可以玩游戏的Python程序,因此需要“看到”屏幕上发生的事情。如何实现这一点?
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
while(True):
#work with frames here
有没有一个整数'a',可以使cv2.VideoCapture(a)将桌面屏幕作为视频输入?我尝试了一种比较笨拙的方法,重复使用以下代码来捕获屏幕:
import os
os.system('screencapture test.jpg')
然后使用cv2.imread打开test.jpg。这是一个非常缓慢的方法,在网上搜索时,我发现了这个问题:Screen Capture with OpenCV and Python-2.7可以做同样的事情,但效率更高。但事实仍然是它捕获单个截图并逐一处理它们,而不是真正的视频流。我还找到了如何在OpenCV中捕获桌面(即将位图转换为Mat)?,我认为这就接近我尝试的东西了,但它是用C++编写的,如果有人可以帮我将其转换为Python,我将非常感激。
主要问题是程序将执行类似MarI/O的操作,因此速度是个问题,任何帮助都将不胜感激,请对我好点,我(相对而言)刚开始接触OpenCV。
谢谢。