C++ OpenCV视频操作之如何实现背景消除建模

小编给大家分享一下C++ OpenCV视频操作之如何实现背景消除建模,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!


背景消除建模(BSM)

BS的算法里面一般分为两种

  • 图像分割(GMM - 高斯混合模型)

  • 机器学习(KNN - K个最近邻)

相关API

BackgroundSubtractor

BackgroundSubtractorMOG2

BackgroundSubtractorKNN

代码演示

我们再新建一个项目名为opencv--video1,按照配置属性(VS2017配置OpenCV通用属性),然后在源文件写入#include和main方法

C++ OpenCV视频操作之如何实现背景消除建模

C++ OpenCV视频操作之如何实现背景消除建模

我们直接加载了一个本地的视频 ,下面这个就是本地加载的原视频,从视频中可以看出我的镜头是没动了,然后手就出来了。

今天我们来先看看高斯混合模型的算法BackgroundSubtractorMOG2

核心代码:

C++ OpenCV视频操作之如何实现背景消除建模

C++ OpenCV视频操作之如何实现背景消除建模

贴上完整的代码:

C++ OpenCV视频操作之如何实现背景消除建模

C++ OpenCV视频操作之如何实现背景消除建模

C++ OpenCV视频操作之如何实现背景消除建模

运行中的截图:

C++ OpenCV视频操作之如何实现背景消除建模

看完了这篇文章,相信你对“C++ OpenCV视频操作之如何实现背景消除建模”有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!