该方法可以用来做运动检测,用法:
Ptr<BackgroundSubtractorMOG2> mog = createBackgroundSubtractorMOG2(100,25,false);
-
history:用于训练背景的帧数,默认帧数为500帧,如果不动手设置learingRate,history就被用于计算当前的learningRate, 此时history越大,learningRate越小,背景更新越慢;
-
varThreshold:方差阈值,用于判断当前像素是前景还是背景。一般默认为16,如果光照变化明显,如阳光下的水面,建议设为25,值越大灵敏度越低。
-
detectShadows:是否检测影子,设为true为检测,false为不检测,检测影子会增加程序时间复杂度,一般设置为false;
eg:mog->apply(src_YCrCb, foreGround, 0.005);
-
image 源图
-
fmask 前景(二值图像)
-
learningRate 学习速率,值为0-1,为0时背景不更新,为1时逐帧更新,默认为-1,即算法自动更新;
该方法可以用来做运动检测,用法:Ptr<BackgroundSubtractorMOG2> mog = createBackgroundSubtractorMOG2(100,25,false);history:用于训练背景的帧数,默认帧数为500帧,如果不动手设置learingRate,history就被用于计算当前的learningRate, 此时history越大,learningRate越小,背景更新越慢; varThreshold:方差阈值,用于判断当前像素是前景还是背景。一般
在我们使用Opencv进行视频处理跟踪对象时,我们通常可以借助视频原先的
背景
与当前的获取帧进行比较,通过一定的比较方法和API,我们可以有效地区分开视频中的
背景
和前景。这种方法我们称为
背景
减除(Background Subtraction)。
我们在比较
背景
和当前帧时,通常采用两种算法:图像分割(GMM-高斯混合模型)和机器学习(KNN-K邻值算法)
高斯混合模型分离算法:
将图像分为3-5个高斯...
cv::BackgroundSubtractorMOG2和cv::bgsegm::BackgroundSubtractorMOG一样,都是基于高斯混合模型的
背景
与前景分割算法。
cv::BackgroundSubtractorMOG2是对cv::bgsegm::BackgroundSubtractorMOG的改进,经过改进,它实现了自适应高斯混合模型参数的更新,增强了复杂场景
背景
检测的性能。
具体的算法原理可以参见下面两篇论文:
Zoran Zivkovic and Ferdinand van d