这段代码可以自己找视频做自己所用的测试集或数据集。
import cv2
import os
def video_to_frames(video_path, output_dir):
# 打开视频文件
video = cv2.VideoCapture(video_path)
# 确保视频文件已成功打开
if not video.isOpened():
print("无法打开视频文件")
return
# 创建输出目录
os.makedirs(output_dir, exist_ok=True)
# 逐帧读取视频并保存为图像文件
frame_count = 0
while True:
# 读取下一帧
ret, frame = video.read()
if not ret:
break
# 生成图像文件名
image_path = os.path.join(output_dir, f"frame_{frame_count}.jpg")
# 保存图像文件
cv2.imwrite(image_path, frame)
frame_count += 1
# 释放视频对象
video.release()
# 示例用法
video_path = "/home/zhang/ultralytics-main/ultralytics/models/yolo/detect/runs/detect/train6/VID_20231225_141939.avi"
output_dir = "/home/zhang/ultralytics-main/PycharmProjects/fruit1/picture1"
cp = video_to_frames(video_path, output_dir)