当前位置: 首页 > news >正文

python opencv 读取文件夹下所有MP4文件并解析成jpg图像

你可以使用Python的OpenCV库来读取文件夹中的所有MP4文件,并将其解析为JPG图像。以下是一个示例代码,演示了如何实现这个功能,并设置解析间隔为3帧:

import os
import cv2def extract_frames(input_folder, output_folder, interval):# 遍历输入文件夹中的所有文件for filename in os.listdir(input_folder):if filename.endswith(".mp4"):file_path = os.path.join(input_folder, filename)output_subfolder = os.path.join(output_folder, os.path.splitext(filename)[0])os.makedirs(output_subfolder, exist_ok=True)# 打开视频文件cap = cv2.VideoCapture(file_path)frame_count = 0while cap.isOpened():ret, frame = cap.read()if not ret:break# 按照设定的间隔保存帧if frame_count % interval == 0:output_filename = os.path.join(output_subfolder, f"frame_{frame_count}.jpg")cv2.imwrite(output_filename, frame)frame_count += 1cap.release()# 设置输入文件夹路径、输出文件夹路径和解析间隔
input_folder = "path/to/input/folder"
output_folder = "path/to/output/folder"
interval = 3# 调用函数进行帧解析
extract_frames(input_folder, output_folder, interval)

请确保你已经安装了OpenCV库(可以使用pip install opencv-python进行安装)。将代码中的"path/to/input/folder"替换为包含MP4文件的实际输入文件夹的路径,将"path/to/output/folder"替换为希望保存JPG图像的实际输出文件夹的路径。

这段代码会遍历输入文件夹中的所有MP4文件,并将每个文件解析为JPG图像。解析间隔由interval变量控制,这里设置为3,表示每隔3帧解析一帧。解析后的图像将保存在输出文件夹中,每个MP4文件会在输出文件夹中创建一个子文件夹,其中包含解析后的JPG图像。图像文件名以"frame_"开头,后面跟随帧的索引号。

请注意,解析视频帧可能需要一些时间,具体取决于视频的帧率和长度。

http://www.lryc.cn/news/228779.html

相关文章:

  • MySQL binlog 日志解析后的exec_time导致表示什么时间?
  • 【Linux】:git基本操作_添加文件_两种场景_查看.git文件 || git修改文件 || 版本回退
  • Django 基于ORM的CURD、外键关联,请求的生命周期
  • 集合贴4——QA机器人设计与优化
  • 【Verilog语法】
  • 阿里云通用算力型u1服务器和e实例有什么区别?选择攻略
  • modbus-TCP协议详解
  • 爬虫项目(12):正则、多线程抓取腾讯动漫,Flask展示数据
  • gedit编辑文件时常用快捷键
  • 【C++干货铺】剖析string | 底层实现
  • nmap原理与使用
  • AI批量剪辑矩阵托管系统----源码技术开发
  • Pandas数据预处理python 数据分析之4——pandas 预处理在线闯关_头歌实践教学平台
  • [html] 动态炫彩渐变背景
  • AI 绘画 | Stable Diffusion 高清修复、细节优化
  • 想要检测TikTok网络是否安全?这五个网站请收好
  • 【docker:容器提交成镜像】
  • UE5中一机一码功能
  • gpt支持json格式的数据返回(response_format: ‘json_object‘)
  • MySQL(13):约束
  • 可以为一个servlet定义多个servlet-mapping、或url-pattern
  • .net在使用存储过程中IN参数的拼接方案,使用Join()方法
  • 基于RK3399的室内健身魔镜方案
  • leetCode 25.K 个一组翻转链表
  • ElasticSearch中常见的分词器介绍
  • 前端案例-css实现ul中对li进行换行
  • 【Unity】 场景优化策略
  • JavaWeb Day09 Mybatis-基础操作01-增删改查
  • 2.前端调试(控制台使用)
  • Jenkins简介及Docker Compose部署