目的保存视频片段:检测的运动,只有在保存文件中的运动时间与起始时间名。OpenCV的 - 基于certion条件
现在我遇到了关于如何将视频保存到具有视频开始时间的文件的问题。
我测试:
我的一部分测试了我的计划的一部分。看起来,除了保存部分以外,每个部分都工作得很好。
运行状态:没有错误。但在保存文件夹中,没有视频。如果我使用静态保存路径,视频将被成功保存,但视频将被下一个视频覆盖。我的代码如下所示:
import cv2
import numpy as np
import time
cap = cv2.VideoCapture(0)
bgst = cv2.createBackgroundSubtractorMOG2()
fourcc=cv2.VideoWriter_fourcc(*'DIVX')
size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)), int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))
n = "start_time"
while True:
ret, frame = cap.read()
dst = bgst.apply(frame)
dst = np.array(dst, np.int8)
if np.count_nonzero(dst)>3000: # use this value to adjust the "Sensitivity“
print('something is moving %s' %(time.ctime()))
path = r'E:\OpenCV\Motion_Detection\%s.avi' %n
out = cv2.VideoWriter(path, fourcc, 50, size)
out.write(frame)
key = cv2.waitKey(3)
if key == 32:
break
else:
out.release()
n = time.ctime()
print("No motion Detected %s" %n)
为了避免覆盖已保存的视频,请使用“for”循环。尝试在'for'循环中包含'if'和'else'条件。 –
对不起,请您说清楚,我仍然....不能解决问题 – Guang