以下是一个使用OpenCV从文件夹的子文件夹中提取视频帧并保存为图像文件的Python代码:

import cv2
import os

# 输入文件夹路径
folder_path = "/path/to/folder"

# 获取文件夹中的所有子文件夹
subfolders = [f.path for f in os.scandir(folder_path) if f.is_dir()]

# 循环遍历每个子文件夹
for subfolder in subfolders:
    # 获取子文件夹的名称
    category = os.path.basename(subfolder)
    
    # 获取子文件夹中的所有视频文件
    video_files = [f.path for f in os.scandir(subfolder) if f.is_file() and f.name.endswith((".mp4", ".avi", ".mov"))]
    
    # 循环遍历每个视频文件
    for video_file in video_files:
        # 打开视频文件
        video = cv2.VideoCapture(video_file)
        
        # 获取视频文件的基本名称(不包含扩展名)
        file_name = os.path.splitext(os.path.basename(video_file))[0]
        
        # 设置帧计数器
        frame_count = 0
        
        # 循环遍历视频的每一帧
        while True:
            # 读取视频的下一帧
            ret, frame = video.read()
            
            # 检查是否成功读取帧
            if not ret:
                break
            
            # 每隔25帧取1帧
            if frame_count % 25 == 0:
                # 生成保存图像的文件路径
                image_file = os.path.join(subfolder, f"{file_name}_{frame_count}.jpg")
                
                # 保存图像文件
                cv2.imwrite(image_file, frame)
            
            # 增加帧计数器
            frame_count += 1
        
        # 释放视频对象
        video.release()

请将/path/to/folder替换为您实际的文件夹路径。此代码假设您的视频文件是.mp4.avi.mov格式的,您可以根据需要进行修改

一段python代码:如何用opencv从文件夹的子文件夹的所有视频文件中取图片帧每隔25帧取1帧并按原路径类别保存为图片文件

原文地址: https://www.cveoy.top/t/topic/ipIa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录