Files
zjsh_yolov11/LK/GMM_IMAGE.py
2025-09-05 14:29:33 +08:00

40 lines
1008 B
Python

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}")