首先查看视频的帧率。一般情况下随便用一个播放器打开视频后右键查看其属性就可以看到帧率。
现在我的视频帧率为25 ,即每隔25帧提取一次就可以得到每秒的图片。
运行环境 win10+python3.6+opencv4.0+numpy1.20
代码如下:
# 导入所需要的库
import cv2
import numpy as np
# 定义保存图片函数
def save_image(image, addr, num):
address = addr + str(num) + '.jpg'
cv2.imwrite(address, image)
# 读取视频文件
videoCapture = cv2.VideoCapture("D:\output\1.mp4") #视频路径
# 通过摄像头的方式
# videoCapture=cv2.VideoCapture(1)
# 读帧
success, frame = videoCapture.read()
i = 0
timeF = 25 #视频帧率设置
j = 0
while success:
i = i + 1
if (i % timeF == 0):
j = j + 1
save_image(frame, './output/image', j)
#图片保存目录,需提前建立好一个名为output的文件夹
print('save image:', i)
success, frame = videoCapture.read()
happy coding~