import cv2
import os
from tqdm import tqdm
def extract_frames(video_path, output_folder, frame_interval=30):
cap = cv2.VideoCapture(video_path)
fps = int(cap.get(cv2.CAP_PROP_FPS))
os.makedirs(output_folder, exist_ok=True)
count = 0
total_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
# 使用tqdm显示进度条
with tqdm(total=total_frames, desc=f"Processing {video_path}") as pbar:
while True:
ret, frame = cap.read()
if not ret:
break
if count % frame_interval == 0:
output_filename = f"{os.path.splitext(os.path.basename(video_path))[0]}_{count // frame_interval}_frame.jpg"
output_path = os.path.join(output_folder, output_filename)
cv2.imwrite(output_path, frame)
count += 1
pbar.update(1)
cap.release()
# 视频文件夹路径
videos_folder = r"G:\desktop\lvguandataset\video"
# 图片输出文件夹路径
output_folder = r"G:\desktop\lvguandataset\images"
# 循环处理每个视频文件
for video_file in os.listdir(videos_folder):
print("正在分割这个视频:",video_file)
if video_file.endswith(".mp4"): # 假设视频文件是mp4格式,根据实际情况修改
video_path = os.path.join(videos_folder, video_file)
extract_frames(video_path, output_folder)
print("提取完成")
切分视频为图像
最新推荐文章于 2024-09-30 08:36:50 发布