【发布时间】:2020-11-10 23:08:56
【问题描述】:
我已经能够获得一个可以读取单个视频并将其转换为图像的程序。但是,实际上,我有很多视频,我想编写一个函数,可以一个一个地读取视频并将它们转换为图像。我的目标是将视频转换为图像,以便于处理。转换单个视频的代码如下。
import sys
import argparse
import cv2
vidcap = cv2.VideoCapture('E:/DATA/1/12.mp4')
path_out = "E:/DATA_Synth/12"
success,image = vidcap.read()
#image=cv2.resize(image, (640, 480))
count = 0
while success:
cv2.imwrite(path_out + "/frame%03d.jpg" % count, image)
#cv2.imwrite(path_out + "/frame%d.jpg" % count, image)
success,image = vidcap.read()
#image = cv2.resize(image, (640, 480))
print ('Read a new frame: ', success)
count += 1
任何建议和cmets将不胜感激
【问题讨论】:
-
封装你当前的代码,从
vidcap = ...到count+=1在一个方法里面说:def get_frames(vid_file_path)然后你遍历所有的视频文件,比如:for vid_file_name in os.listdir("/your/local/directory")然后调用@ 987654326@ 在这个for循环内。 -
非常感谢您的贡献。拜托,能给个例子吗?我想通过引用目录中相应视频的指示以不同方式保存帧。