Python程序
import cv2 import numpy as np import os # 指定视频文件路径 video_path = '文件.mp4' # 打开视频文件 cap = cv2.VideoCapture(video_path) # 模糊度阈值,可修改 threshold = 41.7 # 指定保存模糊帧的文件夹 save_dir = '自定义文件夹' if not os.path.exists(save_dir): os.makedirs(save_dir) # 如果文件夹不存在,则创建它 # 读取视频的每一帧 frame_count = 0 while cap.isOpened(): ret, frame = cap.read() if not ret: break # 如果正确读取帧,ret为True frame_count += 1 # 转换为灰度图像 gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 计算Laplace算子 blur_map = cv2.Laplacian(gray_frame, cv2.CV_64F) # 计算方差作为模糊度评分 score = np.var(blur_map) # 判断图像是否模糊 is_blurry = score < threshold print(f"Blur score: {score}") print(f"Is blurry: {is_blurry}") if is_blurry: # 保存模糊的帧 save_path = os.path.join(save_dir, f'blur_frame_{frame_count}.png') cv2.imwrite(save_path, frame) print(f"Blurry frame saved to {save_path}") # 显示原始帧和模糊度映射 cv2.imshow('Frame', frame) cv2.imshow('Blur Map', np.abs(blur_map)) # 按 'q' 退出 if cv2.waitKey(1) & 0xFF == ord('q'): break print("总共多少帧:", frame_count) # 释放视频捕获对象并关闭窗口 cap.release() cv2.destroyAllWindows()