opencv3/C++实现视频背景去除建模(BSM)


Posted in Python onDecember 11, 2019

视频背景建模主要使用到:

高斯混合模型(Mixture Of Gauss,MOG)

createBackgroundSubtractorMOG2(int history=500, double varThreshold=16,bool detectShadows=true);

K最近邻(k-NearestNeighbor,kNN)

createBackgroundSubtractorKNN(int history=500, double dist2Threshold=400.0, bool detectShadows=true);

history:history的长度。

varThreshold:像素和模型之间马氏距离的平方的阈值。

detectShadows:默认为true,检测阴影并标记它们(影子会被标记为灰色)。 会降低了部分速度。

实例:

#include<opencv2/opencv.hpp>
using namespace cv;

int main()
{
  VideoCapture capture;
  capture.open("E:/image/01.avi");
  if(!capture.isOpened())
  {
    printf("can not open video file  \n");
    return -1;
  }
  Mat frame;
  namedWindow("input", CV_WINDOW_AUTOSIZE);
  namedWindow("MOG2", CV_WINDOW_AUTOSIZE);
  namedWindow("KNN", CV_WINDOW_AUTOSIZE);
  Mat maskMOG2, maskKNN;
  Ptr<BackgroundSubtractor> pMOG2 = createBackgroundSubtractorMOG2(500,25,true);
  Ptr<BackgroundSubtractor> pKNN = createBackgroundSubtractorKNN();

  Mat kernel = getStructuringElement(MORPH_RECT, Size(5,5));
  while (capture.read(frame))
  {
    imshow("input", frame);

    pMOG2->apply(frame, maskMOG2);
    pKNN->apply(frame, maskKNN);
    //对处理后的帧进行开操作,减少视频中较小的波动造成的影响
    morphologyEx(maskMOG2,maskMOG2, MORPH_OPEN, kernel, Point(-1,-1));
    morphologyEx(maskKNN,maskKNN, MORPH_OPEN, kernel, Point(-1,-1));

    imshow("MOG2", maskMOG2);
    imshow("KNN", maskKNN);
    waitKey(3);
  }

  capture.release();
  return 0;

}

视频中移动的玻璃球:

opencv3/C++实现视频背景去除建模(BSM)

MOG分离出的小球区域:

opencv3/C++实现视频背景去除建模(BSM)

KNN分离出的小球区域:

opencv3/C++实现视频背景去除建模(BSM)

以上这篇opencv3/C++实现视频背景去除建模(BSM)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
部署Python的框架下的web app的详细教程
Apr 30 Python
Django框架下在视图中使用模版的方法
Jul 16 Python
Python实现字典(dict)的迭代操作示例
Jun 05 Python
Python/ArcPy遍历指定目录中的MDB文件方法
Oct 27 Python
Python图像处理之图像的缩放、旋转与翻转实现方法示例
Jan 04 Python
python 环境搭建 及python-3.4.4的下载和安装过程
Jul 20 Python
django项目简单调取百度翻译接口的方法
Aug 06 Python
使用OpenCV实现仿射变换—旋转功能
Aug 29 Python
python 实现Flask中返回图片流给前端展示
Jan 09 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
Feb 04 Python
Centos7下源码安装Python3 及shell 脚本自动安装Python3的教程
Mar 07 Python
python 邮件检测工具mmpi的使用
Jan 04 Python
opencv3/C++实现视频读取、视频写入
Dec 11 #Python
django框架两个使用模板实例
Dec 11 #Python
Python enumerate函数遍历数据对象组合过程解析
Dec 11 #Python
django框架基于queryset和双下划线的跨表查询操作详解
Dec 11 #Python
django框架ModelForm组件用法详解
Dec 11 #Python
django框架中ajax的使用及避开CSRF 验证的方式详解
Dec 11 #Python
通过实例解析Python调用json模块
Dec 11 #Python
You might like
[转帖]PHP世纪万年历
2006/12/06 PHP
js下弹出窗口的变通
2007/04/18 Javascript
基于jQuery的倒计时实现代码
2012/05/30 Javascript
JS获取当前日期时间并定时刷新示例
2021/03/04 Javascript
jQuery插件slider实现拖动滑块选取价格范围
2015/04/30 Javascript
javascript 广告移动特效的实现代码
2016/06/25 Javascript
javascript 数组的正态分布排序的问题
2016/07/31 Javascript
AngularJS基础 ng-open 指令简单实例
2016/08/02 Javascript
JS实现页面跳转参数不丢失的方法
2016/11/28 Javascript
vue中mint-ui环境搭建详细介绍
2017/04/06 Javascript
微信小程序-横向滑动scroll-view隐藏滚动条
2017/04/20 Javascript
Vue.js划分组件的方法
2017/10/29 Javascript
PyMongo安装使用笔记
2015/04/27 Python
Python多进程机制实例详解
2015/07/02 Python
sublime text 3配置使用python操作方法
2017/06/11 Python
Python线程下使用锁的技巧分享
2018/09/13 Python
python bmp转换为jpg 并删除原图的方法
2018/10/25 Python
对Python模块导入时全局变量__all__的作用详解
2019/01/11 Python
python学生管理系统学习笔记
2019/03/19 Python
python实现微信机器人: 登录微信、消息接收、自动回复功能
2019/04/29 Python
Python爬取腾讯视频评论的思路详解
2019/12/19 Python
Python正则表达式高级使用方法汇总
2020/06/18 Python
PyQt5中QSpinBox计数器的实现
2021/01/18 Python
CSS3的新特性介绍
2008/10/31 HTML / CSS
Html5无刷新修改browser Url的方法
2014/01/15 HTML / CSS
StubHub哥伦比亚:购买和出售您的门票
2016/10/20 全球购物
Contém1g官网:巴西彩妆品牌
2020/01/17 全球购物
怎样声明接口
2014/09/19 面试题
体育教育毕业生自荐信
2013/11/21 职场文书
春节联欢会策划方案
2014/05/16 职场文书
软弱涣散基层党组织整改方案
2014/10/25 职场文书
作文评语怎么写
2014/12/25 职场文书
研究生个人学年总结
2015/02/14 职场文书
初中班主任工作随笔
2015/08/15 职场文书
2016年公务员六五普法心得体会
2016/01/21 职场文书
分享几个实用的CSS代码块
2022/06/10 HTML / CSS