通过仅拍摄一些帧而不将其写入文件,从另一个视频创建视频

时间:2013-07-26 09:29:20

标签: python opencv

我这里有一点奇怪的问题!

我在一个文件中有一个视频。我想从这个视频中提取一些帧并制作一个视频,然后用它来显示(注意:我不想为此使用imshow())。我想这样做而不将其写入文件。

Algorithm:
1. Read the video from file
2. extract the frames
3. make a video out of these frames(save it as a variable; do not write it into a file)
4. Use this variable which holds the new video for displaying

任何建议都会有很大的帮助!

1 个答案:

答案 0 :(得分:1)

创建cap = cv2.VideoCapture(file_name)。使用

获取电影的宽度和高度
h = cap.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT)
w = cap.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH)

创建一个numpy数组

frames = np.zeros((h, w, 3, number_of_frames), np.uint8)

并将要保留的帧保存到此数组中:

error, frame = cap.read()
frames[:,:,:,i] = frame

如果您事先不知道有多少帧,只需将它们连接到Python列表中即可。

然后,显示你的画面。