代码:
import cv2 import osdef extract_frames_to_images(video_path, output_floder):# 创建存储图片的文件夹if not os.path.exists(output_floder):os.makedirs(output_floder)# 打开视频cap = cv2.VideoCapture(video_path)# 如果打开视频文件错误if not cap.isOpened():return False# 获取视频信息# 高度height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))# 宽度width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))# 帧率(一秒多少帧)fps = cap.get(cv2.CAP_PROP_FPS)# 总帧数total_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))frame_count = 0success_count = 0while True:# 读取视频帧ret, frame = cap.read()if not ret:break# 生成文件名filename = f"frame_{frame_count:06d}.jpg"filepath = os.path.join(output_floder, filename)# 保存本帧图片success = cv2.imwrite(filepath, frame)if success:success_count += 1frame_count += 1# 显示进度if frame_count % 30 == 0:progress = (frame_count / total_frames) * 100print(f"进度: {progress:.1f}% ({frame_count}/{total_frames})")cap.release()print(f"\n完成!")print(f" - 总帧数: {frame_count}")print(f" - 成功保存: {success_count} 张图片")print(f" - 保存位置: {output_floder}")return Trueif __name__ == '__main__':input_file = 'car.mp4'output_floder = 'result_images'extract_frames_to_images(input_file,output_floder)
结果:

