import cv2 import numpy as np import glob import os # 图片文件夹路径 img_dir = r"/home/hx/yolo/LK/frames" img_files = sorted(glob.glob(os.path.join(img_dir, "*.jpg"))) print("找到图片数量:", len(img_files)) if len(img_files) == 0: raise FileNotFoundError("❌ 没有找到图片,请检查路径和后缀!") alpha = 0.01 # 学习率 mean_bg = None for idx, img_path in enumerate(img_files): frame = cv2.imread(img_path) if frame is None: print(f"⚠️ 跳过无法读取的图片: {img_path}") continue frame = frame.astype(np.float32) if mean_bg is None: mean_bg = frame.copy() else: mean_bg = (1 - alpha) * mean_bg + alpha * frame # 每张都打印 print(f"处理进度: {idx+1}/{len(img_files)}") # 最终背景图 bg_image = mean_bg.astype(np.uint8) # 保存到 frames 文件夹下 save_path = os.path.join(img_dir, "background.jpg") cv2.imwrite(save_path, bg_image) print(f"✅ 背景图已保存: {save_path}")