以下是一个使用OpenCV库在给定的文件夹中的子文件夹中提取视频帧的Python代码示例:

import os
import cv2

def extract_frames(input_folder, output_folder):
    # 遍历文件夹及其子文件夹
    for root, dirs, files in os.walk(input_folder):
        for file in files:
            if file.endswith('.mp4') or file.endswith('.avi') or file.endswith('.mov'):
                video_path = os.path.join(root, file)
                # 创建一个与视频文件名相同的文件夹
                frame_folder = os.path.join(output_folder, os.path.splitext(file)[0])
                os.makedirs(frame_folder, exist_ok=True)
                
                # 打开视频文件
                cap = cv2.VideoCapture(video_path)
                frame_count = 0
                frame_skip = 25  # 每隔25帧取1帧
                
                while True:
                    ret, frame = cap.read()
                    if not ret:
                        break
                    
                    # 每隔 frame_skip 帧保存一帧图像
                    if frame_count % frame_skip == 0:
                        frame_path = os.path.join(frame_folder, f"frame_{frame_count}.jpg")
                        cv2.imwrite(frame_path, frame)
                    
                    frame_count += 1
                
                cap.release()

# 使用示例
input_folder = "path/to/input/folder"
output_folder = "path/to/output/folder"
extract_frames(input_folder, output_folder)

请将代码中的input_folderoutput_folder替换为实际的文件夹路径。代码会遍历input_folder中的所有子文件夹,查找扩展名为.mp4.avi.mov的视频文件,并从中提取每隔25帧的图像帧。提取的图像帧将按照原始视频文件的路径类别保存在output_folder中的相应子文件夹中

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

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

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