python按帧数提取视频为图片
2021-02-19 本文已影响0人
水煮鱼又失败了
1 场景
使用python,将视频
按照帧数
提取为图片
。
2 版本
python:3.6.3
3 依赖
安装cv2依赖
pip install opencv-python
4 代码
4.1 引入依赖
import cv2
import os
4.2 定义函数
def video_to_image(video_path, out_image_folder_path, frame_frequency):
"""
视频解析为图片到指定文件夹
:param video_path:视频路径
:param out_image_folder_path:解析后的图片文件夹路径
:param frame_frequency:帧数(每多少帧读解析一张图片)
:return:
"""
# 如果文件目录不存在则创建目录
if not os.path.exists(out_image_folder_path):
os.makedirs(out_image_folder_path)
# 加载视频文件
camera = cv2.VideoCapture(video_path)
# 帧数
times = 0
while True:
times += 1
res, image = camera.read()
if not res:
break
if times % frame_frequency == 0:
cv2.imwrite(out_image_folder_path + str(times) + '.jpg', image)
4.3 使用
if __name__ == '__main__':
# 视频路径
tmp_video_path = os.path.join("", "", 'video/v1.mp4')
# 输出目录
tmp_out_image_folder_path = os.path.join("", "", 'picOut/')
# 视频转换为图片
video_to_image(tmp_video_path, tmp_out_image_folder_path, 50)
4.4 结果
可以看到,视频对应帧数的图片被输出到指定目录(当前测试,每50帧获取一次图片)
1.png