如何获取特定宽度和高度的网络摄像头视频提要?
我对OpenCV库零经验,因此在这方面我需要帮助。这段代码来自geeksforgeeks.com。这是我现在唯一的东西。
我想要实现的是,我只想检测视频供稿中指定区域的运动。
import cv2, time, pandas
from datetime import datetime
static_back = None
motion_list = [ None, None ]
time = []
df = pandas.DataFrame(columns = ["Start", "End"])
video = cv2.VideoCapture(0)
while True:
check, frame = video.read()
motion = 0
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
gray = cv2.GaussianBlur(gray, (21, 21), 0)
if static_back is None:
static_back = gray
continue
diff_frame = cv2.absdiff(static_back, gray)
thresh_frame = cv2.threshold(diff_frame, 30, 255, cv2.THRESH_BINARY)[1]
thresh_frame = cv2.dilate(thresh_frame, None, iterations = 2)
(cnts, _) = cv2.findContours(thresh_frame.copy(),
cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
for contour in cnts:
if cv2.contourArea(contour) < 50000:
continue
motion = 1
(x, y, w, h) = cv2.boundingRect(contour)
# making green rectangle arround the moving object
cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 3)
motion_list.append(motion)
motion_list = motion_list[-2:]
if motion_list[-1] == 1 and motion_list[-2] == 0:
time.append(datetime.now())
if motion_list[-1] == 0 and motion_list[-2] == 1:
time.append(datetime.now())
cv2.imshow("Gray Frame", gray)
cv2.imshow("Difference Frame", diff_frame)
cv2.imshow("Threshold Frame", thresh_frame)
cv2.imshow("Color Frame", frame)
key = cv2.waitKey(1)
if key == ord('q'):
# if something is movingthen it append the end time of movement
if motion == 1:
time.append(datetime.now())
break
for i in range(0, len(time), 2):
df = df.append({"Start":time[i], "End":time[i + 1]}, ignore_index = True)
df.to_csv("Time_of_movements.csv")
video.release()
cv2.destroyAllWindows()
似乎您想获取每一帧特定区域的关注区域(ROI)。要在OpenCV中执行此操作,我们可以使用边界框坐标裁剪图像。将其(0,0)
视为图像的左上角,从左到右作为x方向,从上到下作为y方向。如果我们具有ROI(x1, y1)
的左上角和(x2,y2)
右下角,则可以通过以下方式裁剪图像:
ROI = frame[y1:y2, x1:x2]
html" target="_blank">举例说明:
-------------------------------------------
| |
| (x1, y1) |
| ------------------------ |
| | | |
| | | |
| | ROI | |
| | | |
| | | |
| | | |
| ------------------------ |
| (x2, y2) |
| |
| |
| |
-------------------------------------------
由于图像在OpenCV中存储为Numpy数组,因此我们能够做到这一点。这是Numpy数组索引和切片的重要资源。获得所需的ROI后,您就可以在该区域进行运动检测了。
到目前为止,我看到的所有方法都告诉我们如何剪切和保存刚刚剪切的部分,或者如何从开头或结尾进行剪切,我有一个60分钟的视频。。我只想剪切(删除)第31分钟,并再次保存整个视频,但不包括该部分。。我有很多视频,所以我真的需要用python实现这一点的最简单和最简单的方法。我尝试过分割视频,然后从结尾修剪,然后再将两半合并。。但这太糟糕了:D。 非常感谢。
我想从视频中的特定帧读取到特定帧。例如,我的视频由150帧组成,但我想从该视频的第5帧到第134帧读取视频。有可能吗?
问题内容: 我知道有上百万种方法可以从youtube下载视频,然后将其转换为音频或对其进行进一步处理。但是最近,我很惊讶地在Mac上看到一个名为YoutubeToMp3的应用程序实际显示“正在跳过X mb视频”,并且据说只从视频中下载音频,而无需使用bandwith下载整个视频然后进行转换。我想知道这是否真的正确,并且根本不可能,因为我找不到任何方法可以做到这一点。你有什么想法 ? 编辑:经过一些
本文向大家介绍opencv实现读取视频保存视频,包括了opencv实现读取视频保存视频的使用技巧和注意事项,需要的朋友参考一下 不得不说opencv是个强大的东东,以前做一个项目的一个模块时使用到进行图形处理,这次是想将一个视频的播放放慢,以前在网上看到opencv有这个功能,今天就不小心尝试了下,东西不多,主要是做个小记录还有一点要注意的小问题说一下,代码不多,基本上也都是copy的网上的 有几
问题内容: 因此,我尝试通过JSON格式从单个youtube视频中获取信息。像标题描述类别一样,除了评论之外,我还能得到什么。我正在尝试使用Javascript执行此操作。我注意到下面的链接,但是他们的所有示例都是如何从Feed中获取视频信息。我想从一个视频中获取信息,前提是我知道它的ID。 https://developers.google.com/youtube/2.0/developers_
请尝试在java中创建一个新的应用程序来匹配图片和视频,图片中模板的匹配工作正常,但当我尝试为视频执行此操作时,总是会出现以下错误消息: OpenCV错误:断言失败((深度==CV_8U||深度==CV_32F) 这是我的视频图片匹配功能,有人可以帮忙。