【码农日常】将mp4转换为逐帧图片

项目场景:

拍摄了一段视频记录设备工作的状态和测量仪器的实时数据。由于测量仪器岁数比较大,不够智能,遂打算将视频转换为逐帧图片进行分析。
网上没找到现成工具,借鉴网上大神的操作方式打算用python写一个工具。


问题描述

用python写一个将mp4格式转换为逐帧图片的程序,该程序可以设置需要转换帧的步长。
将问题抛给AI。

答:
要实现这个功能,你可以使用Python中的opencv-python库,它非常适合处理视频文件和图像。下面是一个简单的示例程序,演示了如何将MP4视频按指定的帧间隔转换成图片序列。

首先,确保你已经安装了opencv-python库。如果没有安装,可以通过pip安装:

pip install opencv-python
# -*- coding: utf-8 -*-

import cv2
import os

def video_to_frames(video_path, output_folder, frame_step=1):
    """
    将视频文件转换为逐帧图片,可设置帧间隔。

    :param video_path: 视频文件路径
    :param output_folder: 输出图片的文件夹路径
    :param frame_step: 帧间隔,即每隔多少帧保存一张图片,默认为1
    """
    # 创建输出文件夹,如果不存在的话
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)

    # 打开视频文件
    video = cv2.VideoCapture(video_path)
    
    # 初始化帧计数器
    frame_count = 0
    
    while True:
        # 读取下一帧
        ret, frame = video.read()
        
        # 如果读取成功,处理帧
        if ret:
            # 检查是否达到保存帧的步长
            if frame_count % frame_step == 0:
                # 构建输出图片的文件名
                image_name = f"frame_{frame_count}.jpg"
                image_path = os.path.join(output_folder, image_name)
                
                # 保存当前帧为图片
                cv2.imwrite(image_path, frame)
                print(f"Saved {image_name}")
            
            # 更新帧计数器
            frame_count += 1
        else:
            # 读取完毕,跳出循环
            break
    
    # 释放视频文件
    video.release()
    print("Frame extraction complete.")

# 示例用法
video_file = "path/to/your/video.mp4"
output_directory = "path/to/output/folder"
frame_interval = 5  # 每隔5帧保存一张图片

video_to_frames(video_file, output_directory, frame_interval)

上面的代码需要根据实际需求微调,原回答没有导入os库,需要手动添加代码。


测试:

在这里插入图片描述
打完收工。


后记:

AI真是个好东西。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/623476.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于springboot实现政府管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现政府管理系统演示 摘要 信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲&#xff…

华为设备display查看命令

display version //查看版本信息 display current-configuration //查看配置详情 display this //查看当前视图有效配置 display ip routing-table //查看路由表 display ip routing-table 192.168.3.1 //查看去往3.1的路由 display ip interface brief //查看接口下ip信息 dis…

PXIe规格i3/i5/i7单板计算机控制器

是专为PXIe混合测试系统设计的主控制器,3U 12HP PXIe规格。该产品采用Intel Core™i3/i5/i7 第四代高性能处理器,内存可支持高达16G DDR3L。该系统PXI Express的link配置为通用的4Port 4lane的模式,数据吞吐量高达8GB/S。 CX786x提供丰富灵活…

机器学习(2)

目录 2-1泛化能力 2-2过拟合和欠拟合 2-3三大问题 2-4评估方法 2-5调参和验证集 2-6性能度量 2-7比较检验 2-1泛化能力 如何进行模型评估与选择? 2-2过拟合和欠拟合 泛化误差:在“未来”样本上的误差 经验误差:在训练集上的误差&am…

什么叫拆分盘?什么是拆分盘!一篇文章带你了解!

随着互联网金融的快速发展,各种新型投资模式层出不穷,其中拆分盘作为一种只涨不跌的理财方式,吸引了众多投资者的目光。本文将结合一个简单的拆分盘示例,对拆分盘的投资逻辑进行解析,并探讨其潜在风险,以帮…

每日一题11:Pandas:数据重塑-透视

一、每日一题 解答: import pandas as pddef pivotTable(weather: pd.DataFrame) -> pd.DataFrame:df_pivot weather.pivot(indexmonth, columnscity, valuestemperature)return df_pivot 题源:力扣 二、总结 Pandas 是一个强大的 Python 数据分析…

怎么申请一年期免费的https证书

随着互联网的推广和普及,如今HTTPS证书的普及度还是比较高的了,大家对于https证书的需求度也在日益提升。针对于一些个人用户或是企业而言,实现网站的https访问已经成为了一种标配。从去年年底开始,各大SSL证书厂商陆续下架一年期…

FOTS:一种用于机器人操作技能Sim2Real学习的快速光学触觉仿真器

类 GelSight的视触觉传感器具有高分辨率和低制造成本的优势,但是在与现实中的物体进行频繁接触时易受磨损。而触觉仿真器可大幅降低硬件成本,同时为后续技能学习任务提供仿真训练环境。为此,来自东南大学自动化学院的钱堃副教授研究团队和伦敦…

LeetCode---循环队列

循环队列就是只有固定的内存,存数据,出数据,但是也和队列一样,先进先出。如下图所示,这是他的样子 在head出,tail进,但是这个如果用数组解决的话,就有问题,力扣给我们的接…

宝塔Linux面板5.9版本升级新版失败解决方法

下载地址:宝塔Linux面板5.9升级教程 宝塔5.9版本升级最新版宝塔失败,可以参考这份详细教程(不断更新中) 安装要求: Python版本: 2.6/2.7(安装宝塔时会自动安装) 内存:1…

java生成图形验证码

java生成图形验证码 在写项目的时候登录的方式有多种多样,根据需求的不同,有些是用手机号获取验证码登录,有些是需要账号,密码 手机验证码登录,还有写是需要账号,密码 图形验证码登录,不论怎样…

【MySQL】sql表设计的注意事项

程序员的实用神器 文章目录 程序员的实用神器强烈推荐引言注意事项强烈推荐专栏集锦写在最后 强烈推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站:人工智能 推荐一个个人工作&#x…

机器学习案例:加州房产价格(四)

参考链接:https://hands1ml.apachecn.org/2/#_12 数据探索和可视化、发现规律 通过之前的工作,你只是快速查看了数据,对要处理的数据有了整体了解,现在的目标是更深的探索数据。 首先,保证你将测试集放在了一旁&…

数据库开发记录

一.MySQL相关 1.Spatial Data相关

AntDesign React 简单封装一个带错误提示的输入框

背景 没想到官方没有提供纯粹的带错误提示的输入框,官方提供了启用错误样式 status 属性。但是展示错误信息提示却需要捆绑Form 和 Form.Item。说实话有点不友好,我就一个简单的输入框,想要用户输入时用正则校验,错误时提示一些错…

电子硬件设计-LTC3839学习笔记

目录 1. 简介 2. 用法详解 2.1 工作原理 2.2 关键引脚分析 2.2.1 Pin6 - ITH 2.2.2 Pin 14/27 - BOOST1/2 3. 总结 1. 简介 具差分输出检测功能的快速、准确、两相、单路输出降压型 DC/DC 控制器。 特点: 输入:4.5V 至 38V,输出&am…

算法学习笔记(4)-基础排序算法

##O(n^2)算法时间复杂度的排序算法 目录 ##O(n^2)算法时间复杂度的排序算法 ##选择排序 ##原理 ##图例 ##代码实现示例 ##冒泡排序 ##原理 ##图例 ##代码实现示例 ##插入排序 ##原理 ##图例 ##代码实现示例 ##总结 ##选择排序 ##原理 在一个无序的数组或者列表…

使用Xshell工具连接ubuntu-方便快捷

使用Xshell连接ubuntu 在命令行输入 “sudo apt-get install openssh-server”安装openssh-server 开启 ssh-server,在命令行输入 “service ssh start”,然后输入密码即可

浅谈SiC MOSFET之双脉冲原理

1.双脉冲实验实验的必要性 在平常的使用中,我们基本通过芯片手册来了解功率器件的各种性能参数,但是手册中的参数的测量环境都是在理想状态下,与实际使用或多或少都会有差别。通过双脉冲实验可以获取器件在真实工况下的参数,对于产…