我的任务是制作一个可以在几秒钟内拍摄视频和时间的实用程序。
该实用程序应使用给定的输入从视频中写出 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
上面的代码给出了整个视频的所有帧,我关心的是如何打发时间并获取指定时间的帧?
最佳答案
你为什么不直接去做,@micka 提出了什么?
import cv2
vidcap = cv2.VideoCapture('d:/video/keep/Le Sang Des Betes.mp4')
vidcap.set(cv2.CAP_PROP_POS_MSEC,20000) # just cue to 20 sec. position
success,image = vidcap.read()
if success:
cv2.imwrite("frame20sec.jpg", image) # save frame as JPEG file
cv2.imshow("20sec",image)
cv2.waitKey()
关于python - 使用 OpenCV 在给定时间从视频中提取图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27481993/