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

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

python 复制代码
import os
import cv2

def 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 = 0

            while 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 += 1

            cap.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_"开头,后面跟随帧的索引号。

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

相关推荐
The_Ticker18 分钟前
印度股票实时行情API(低成本方案)
python·websocket·算法·金融·区块链
輕華22 分钟前
OpenCV答题卡识别:从图像预处理到自动评分
人工智能·opencv·计算机视觉
ZC跨境爬虫25 分钟前
Scrapy工作空间搭建与目录结构解析:从初始化到基础配置全流程
前端·爬虫·python·scrapy·自动化
EAIReport28 分钟前
国外网站数据批量采集技术实现路径
开发语言·python
Ulyanov32 分钟前
基于ttk的现代化Python音视频播放器:UI设计与可视化技术深度解析
python·ui·音视频
Freak嵌入式40 分钟前
MicroPython LVGL基础知识和概念:时序与动态效果
开发语言·python·github·php·gui·lvgl·micropython
zhangzeyuaaa1 小时前
Python 中的 Map 和 Reduce 详解
开发语言·python
七夜zippoe2 小时前
Java技术未来展望:GraalVM、Quarkus、Helidon等新趋势探讨
java·开发语言·python·quarkus·graaivm·helidon
m0_738120722 小时前
网络安全编程——Python编写基于UDP的主机发现工具(解码IP header)
python·网络协议·tcp/ip·安全·web安全·udp
北冥有羽Victoria2 小时前
OpenCLI 操作网页 从0到1完整实操指南
vscode·爬虫·python·github·api·ai编程·opencli