原理
背景差分法的思想是用图像序列中的当前帧和背景参考模型比较来检测运动物体。其核心是背景的建模方法。这里实现一种简单的背景建模方法,即对视频的全部帧取像素平均值得到背景。
当然这种简单的算法局限性很大,视频的时长,光线与背景的变化都会对检测效果产生极大的影响。
实现步骤
背景建模:对视频的全部帧取像素平均值得到背景
比较:当前帧与背景作做差,差值大于一定阈值的像素点识别为前景
提取:在原始帧上扣取出前景
效果
原始图像
建立的背景
目标检测结果
源代码
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image
# 读取帧数
img_number = 48
# 各帧的集合
all_img = [np.array(Image.open('F:/input/'+str(i+1)+'.jpg', 'r')) for i in range(img_number)]
# 帧的宽高
h = all_img[0].shape[0]
v = all_img[0].shape[1]
# 计算得到背景
back_img = np.zeros((h,