import numpy as np
import cv2
def save_to_vid(video):
path = ".../output.avi"
height , width , layers = video[0].shape
out = cv2.VideoWriter(path, cv2.cv.FOURCC("X", "V", "I", "D"),
20.0, (width, height))
for frame in frames:
out.write(frame)
out.release()
##CAPTURING SOME TEST FRAMES
cap = cv2.VideoCapture(0)
frames = list() #THIS IS YOUR VIDEO
while(cap.isOpened()):
ret, frame = cap.read()
if ret==True:
frame = cv2.flip(frame,0)
frames.append(frame)
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
cap.release()
cv2.destroyAllWindows()
#SOMETIMES LATER IN THE RPOGRAM
doYouWantToSave = True
if doYouWantToSave:
save_to_vid(frames)
else:
del frames
我现在明白你的意思了,不过,我想这会在某种程度上破坏了录影机的目的。它的工作是把视频写到磁盘上。但是,我同意,如果有一个视频类,我们可以在cv2中操作它。在
同时,对我们来说,幸运的是,视频只不过是一系列的帧序列,而这些帧序列只是numpy数组。我们可以用它们做很多事情,所以我建议:
当然,这一切都可以通过创建你自己的类视频,然后实例化并在你的代码中作为一个对象来处理。视频也可以有一个方法“writeToFile”。它甚至可以编写得更聪明一些,以节省一些空间,或者作为一个实际的缓冲区来工作,如果这正是您所需要的。在
相关问题 更多 >
编程相关推荐