前言
前面我有几章是专门设置怎么读取视频操作的文章《C++ OpenCV播放视频及调用摄像头显示》,最近学完了一些形态学的基础操作及特征提取后,我们开始重新学习视频一操作,今天我们先来研究一下背景消除建模BSM。
背景消除建模(BSM)
BS的算法里面一般分为两种
图像分割(GMM - 高斯混合模型)
机器学习(KNN - K个最近邻)
相关API
BackgroundSubtractor
BackgroundSubtractorMOG2
BackgroundSubtractorKNN
代码演示
我们再新建一个项目名为opencv--video1,按照配置属性(VS2017配置OpenCV通用属性),然后在源文件写入#include和main方法
我们直接加载了一个本地的视频 ,下面这个就是本地加载的原视频,从视频中可以看出我的镜头是没动了,然后手就出来了。
今天我们来先看看高斯混合模型的算法BackgroundSubtractorMOG2
核心代码:
贴上完整的代码:
运行中的截图:
接下来我们看看整个视频的运行效果:
注:如果我们录的镜头在不停的移动的话,这个背景检测效果就基本作用不大了,所以这个还是要求必须是固定的镜头效果,才能检测的比较准确,应该后面的学习中会有比较不错的解决方案。
-END-
长按下方二维码关注微卡智享