【发布时间】:2015-02-13 10:16:12
【问题描述】:
我的任务是制作一个可以在几秒钟内拍摄视频和时间的实用程序。
该实用程序应使用给定的输入从视频中写出 jpeg 图像。
例如让视频名称为abc.mpeg,并将时间作为20 秒提供给工具。该实用程序应在第 20 秒时从视频中写出图像。
# Import the necessary packages
import argparse
import cv2
vidcap = cv2.VideoCapture('Wildlife.mp4')
success,image = vidcap.read()
count = 0;
while success:
success,image = vidcap.read()
cv2.imwrite("frame%d.jpg" % count, image) # save frame as JPEG file
if cv2.waitKey(10) == 27: # exit if Escape is hit
break
count += 1
上面的代码给出了整个视频的所有帧,我关心的是如何打发时间并在指定时间获取帧?
【问题讨论】:
-
在 C++ 中,您可以使用
vidcap.set(CV_CAP_PROP_POS_MSEC, 20000);将捕获设置为位置 20 秒 = 20000 毫秒。在 python 中,它可能看起来非常相似。如果您想在给定时间后停止,可以使用vidcap.get(CV_CAP_PROP_POS_MSEC)询问当前位置。
标签: python image opencv video computer-vision