对视频进行抽帧提取图像

对视频进行抽帧提取图像 

import cv2
import os

def extract_frames(video_path, output_folder, frames_per_second):
    # 打开视频文件
    cap = cv2.VideoCapture(video_path)

    # 获取视频的帧率
    fps = int(cap.get(cv2.CAP_PROP_FPS))

    # 计算抽帧的间隔
    frame_interval = fps // frames_per_second

    # 确保输出文件夹存在
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)

    # 初始化帧计数器
    frame_count = 0

    while True:
        # 读取视频帧
        ret, frame = cap.read()

        # 如果到达视频末尾,则退出循环
        if not ret:
            break

        # 检查是否满足抽帧条件
        if frame_count % frame_interval == 0:
            # 构造输出文件路径
            output_path = os.path.join(output_folder, f"frame_{frame_count // frame_interval}.jpg")

            # 保存帧为JPG图片
            cv2.imwrite(output_path, frame)

        # 增加帧计数器
        frame_count += 1

    # 释放视频对象
    cap.release()
    print('完成抽帧!')

if __name__ == "__main__":
    video_path = "A.MOV"  # 替换成你的视频文件路径
    output_folder = "A"  # 替换成你想要保存帧的文件夹路径
    frames_per_second = 10  # 抽帧频率,每秒10张

    extract_frames(video_path, output_folder, frames_per_second)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值