视频转图片 Python代码 用于大量原创图片数据集 深度学习

import os
import cv2
def capture_frames(video_path, output_folder, interval=3):
    # 获取视频文件名(不包括扩展名)
    video_name = os.path.splitext(os.path.basename(video_path))[0]
    # 在输出文件夹中创建以视频名命名的子文件夹
    video_output_folder = os.path.join(output_folder, video_name)
    os.makedirs(video_output_folder, exist_ok=True)

    # 读取视频文件
    video = cv2.VideoCapture(video_path)
    # 获取视频的帧数
    total_frames = int(video.get(cv2.CAP_PROP_FRAME_COUNT))

    # 遍历视频的每一帧
    for i in range(total_frames):
        # 读取当前帧
        ret, frame = video.read()
        # 如果当前帧存在且是间隔帧,则保存为图片
        if ret and i % interval == 0:
            output_path = os.path.join(video_output_folder, f"frame_{i}.png")
            cv2.imwrite(output_path, frame)
            print(f'frame_{i}.png')
            # 检查图片大小,如果超过1MB,降低图片质量
            while os.path.getsize(output_path) > 1024 * 1024:
                frame = cv2.resize(frame, None, fx=0.9, fy=0.9)
                cv2.imwrite(output_path, frame)
    # 释放视频资源
    video.release()

if __name__ == "__main__":
    video_path = "C:\\Users\\24117\\Pictures\\Camera Roll\\3.mp4"  # 请替换为实际的视频文件路径
    output_folder = "C:\\Users\\24117\\Pictures\\Camera Roll\\video_output_folder"  
    capture_frames(video_path, output_folder)

环境需求Python Opencv库

如果没有open cv库,键盘win+r ,输入pip install Opencv-Python安装

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值