我正在使用 Python 2.7 和 OpenCV 2.4.9 。
我需要捕获显示给用户的当前帧,并将其作为 cv :: Mat 对象加载到Python中。
你们知道递归的快速方法吗?
我需要类似下面示例中的操作,该操作以递归方式从网络摄像头捕获 _ Mat_ 帧:
import cv2
cap = cv2.VideoCapture(0)
while(cap.isOpened()):
ret, frame = cap.read()
cv2.imshow('WindowName', frame)
if cv2.waitKey(25) & 0xFF == ord('q'):
cap.release()
cv2.destroyAllWindows()
break
在示例中,它使用了 VideoCapture类 来处理从网络摄像头捕获的图像。
通过VideoCapture.read(),始终可以读取新帧并将其存储到 Mat 对象中。
我可以将 “ printscreens流”
加载到VideoCapture对象中吗?我可以使用Python中的OpenCV创建计算机屏幕的流,而不必每秒保存和删除许多 .bmp 文件吗?
我需要将这些帧作为 Mat 对象或 NumPy数组 ,以便可以使用此帧实时执行一些计算机视觉例程。
这是@Neabfi的答案的更新答案
import time
import cv2
import numpy as np
from mss import mss
mon = {'top': 160, 'left': 160, 'width': 200, 'height': 200}
with mss() as sct:
# mon = sct.monitors[0]
while True:
last_time = time.time()
img = sct.grab(mon)
print('fps: {0}'.format(1 / (time.time()-last_time)))
cv2.imw('test', np.array(img))
if cv2.waitKey(25) & 0xFF == ord('q'):
cv2.destroyAllWindows()
break
并保存到mp4视频
import time
import cv2
import numpy as np
from mss import mss
def record(name):
with mss() as sct:
# mon = {'top': 160, 'left': 160, 'width': 200, 'height': 200}
mon = sct.monitors[0]
name = name + '.mp4'
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
desired_fps = 30.0
out = cv2.VideoWriter(name, fourcc, desired_fps,
(mon['width'], mon['height']))
last_time = 0
while True:
img = sct.grab(mon)
# cv2.imshow('test', np.array(img))
if time.time() - last_time > 1./desired_fps:
last_time = time.time()
destRGB = cv2.cvtColor(np.array(img), cv2.COLOR_BGRA2BGR)
out.write(destRGB)
if cv2.waitKey(25) & 0xFF == ord('q'):
cv2.destroyAllWindows()
break
record("Video")
我正在使用Python 2.7和OpenCV 2.4。9 我需要捕获显示给用户的当前帧,并将其加载为Python中的cv::Mat对象。 你们知道一种快速递归的方法吗? 我需要像下面的例子中所做的那样,从网络摄像头递归地捕获Mat帧: 在本例中,它使用了VideoCapture类来处理从网络摄像头捕获的图像。 用视频捕捉。read()新帧总是被读取并存储到Mat对象中。 我可以将“打印屏幕流”加载
我试图在windows中导入软件包,但出现错误: 回溯(最近一次调用last):导入cv2 ImportError:numpy中第1行的文件“”。果心多重数组导入失败 我也试过numpy verson 1.11。1但它不起作用。
问题内容: 我正在拼命尝试使OpenCV在Windows 7上运行。我下载并安装了它,但它不起作用,我得到了 当我尝试运行其中一个示例时。我用谷歌搜索我的问题,只得到了行不通的解决方案。任何人都可以指导我进行安装,或者知道在哪里可以为编程新手获得清晰的安装指南设计。 问题答案: 从OpenCV 2.2.0开始,Python绑定的软件包名称为“ cv”。名为“ opencv”的旧绑定不再保留。您可能
问题内容: 在Python 3.3中(如或)中的“抽象基类”被移至了第二级模块。因此,在Python 3.3+中,实际类型为依此类推。文档指出,旧别名(例如)在Python 3.7(当前是最新版本)中可用,但是在3.8中,这些别名将被删除。 当您使用别名时,当前版本的Python 3.7甚至会产生警告: 在python 2.7中没有。 当Python脚本打算(几乎)与任何Python版本一起使用时
问题内容: 我正在使用其他库在使用OpenCV(2.3.1)的python中进行项目开发。到目前为止,我只是apt- get安装了所有内容,但是现在我想与可能尚未安装所有内容的人共享我的代码。因此,virtualenv似乎是完美的解决方案,但我明白了。 我如何设置virtualenv时是否有问题,还是必须执行其他步骤才能看到我的opencv python绑定? 问题答案: Virtualenv创建
问题内容: 我正在研究使用OpenCV(2.3.1)和其他库的python项目。到目前为止,我只是apt- get安装了所有内容,但是现在我想与可能尚未安装所有内容的人共享我的代码。因此,virtualenv似乎是完美的解决方案,但是我明白了。 我如何设置virtualenv时是否有问题,还是必须做一些其他步骤才能看到我的opencv python绑定? 问题答案: Virtualenv创建一个单