我是在做行人检测中需要将一段视频变为图片数据集,然后想将视频每秒钟的图片提取出来。

opencv中提供了读取视频每帧图片的函数,下面的代码可以将视频的每帧图片提取出来。注:我的视频名字叫 2.mp4 ,提取图片保存目录 需要自己建一个名字叫 output 的文件夹。
# 导入所需要的库
import cv2
import numpy as np
# 定义保存图片函数
# image:要保存的图片名字
# addr;图片地址与相片名字的前部分
# num: 相片,名字的后缀。int 类型
def save_image(image,addr,num):
address = addr + str(num)+ '.jpg'
cv2.imwrite(address,image)
# 读取视频文件
videoCapture = cv2.VideoCapture("2.mp4")
# 通过摄像头的方式
# videoCapture=cv2.VideoCapture(1)
#读帧
success, frame = videoCapture.read()
i = 0
while success :
i = i + 1
save_image(frame,'./output/image',m)
if success:
print('save image:',i)
success, frame = videoCapture.read()