【发布时间】:2022-01-21 08:42:41
【问题描述】:
作为一名保安,我们必须留意一台 60 英寸的电视,它提供 20 个摄像头输出。所以一直看锅真的很难。我决定开发一个程序来矩形化屏幕中的移动对象并发出一些哔哔声。我的第一步是捕获屏幕帧。使用下面的代码是可能的。
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
据我了解,我们可以使用 opencv 来做一些魔术。网上有一些不错的教程,例如this one。我的问题是他们从摄像头或离线视频文件中获取帧或流,但在这里我有屏幕录制。你们能帮我如何将这些帧转发到运动检测算法中吗?谢谢
【问题讨论】:
-
那篇博文使用了我从未见过的 API。它可能已经过时了。
-
@ChristophRackwitz 是的,看起来 API 所在的 OpenCV 的最后一个版本是 2.2 ,发布于 2010 年。那个“不错的教程”的 github 存储库是从 2012 年开始的,从那以后几乎没有动过。跨度>