视频背景扣除原理
- 视频是一组连续的帧(一幅幅图组成)
- 帧与帧之间关系密切(GOP)
- 在GOP中,背景几乎是不变的
MOG去背景
- 混合高斯模型为基础的前景、背景分割算法
- createBackgroundSubtractorMOG(…)
- history,//默认为200
- nmixtures,// 高斯范围值,默认值为5
- backgroundRatio,//背景比率,默认0.7
- noiseSigma//默认0,自动降噪
MOG2去背景
- 同MOG类似,不过对亮度产生的阴影有更好的识别
- cv.createBackgroundSubtractorMOG2()
- history,//500毫秒
- detectShadows//是否检测阴影,True
- 会产生许多的噪点,鉴于此有了GMG方法
GMG去背景
- 静态背景图像估计和每个像素的贝叶斯分割抗噪性更强
- cv.bgsegm.createBackgroundSubtractorGMG()
- initializationFrames,//初始帧数,120
import cv2 as cv
import numpy as np
cap = cv.VideoCapture(r'H:\learnOpenCV4_Python-main\learnOpenCV4_Python-main\chapter11\data\vtest.avi')
mog = cv.bgsegm.createBackgroundSubtractorGMG()
while True:
ret, frame = cap.read()
fgmask = mog.apply(frame)
cv.imshow('img', fgmask)
k = cv.waitKey(10)
if k == 27:
break
cap.release()
cv.destroyAllWindows()