# 将视频图像分离为单帧序列 import cv2 import os def main(): # 视频路径 # TODO: 修改视频路径为自己的视频路径 path = r'/video/day_202511211129\4_video_202511211127.dav' output_rootpath = r'D:\code\water_turbidity_det\data' # 输出路径的根目录 # 我们将图像输出到根目录下的子目录中,子目录和视频名称相同 # 创建路径 img_base = os.path.basename(path).split('.')[0] imgs_output_path = os.path.join(output_rootpath, img_base) # 视频名称不要有.符号混淆后缀名 if not os.path.exists(imgs_output_path): os.mkdir(imgs_output_path) # 打开视频文件 cap = cv2.VideoCapture(path) # 检查视频是否成功打开 if not cap.isOpened(): raise Exception('错误:无法打开视频文件。') frame_count = 0 while True: ret, frame = cap.read() if not ret: break img_save_path = os.path.join(imgs_output_path,f"{frame_count:06d}.jpg") cv2.imwrite(img_save_path, frame) frame_count += 1 print(f"已处理{frame_count}帧, 保存至{img_save_path}") if __name__ == '__main__': main()