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抓取网页内容示例分享
Feb 24 Python
使用Python的Twisted框架编写非阻塞程序的代码示例
May 25 Python
python获取多线程及子线程的返回值
Nov 15 Python
简单了解什么是神经网络
Dec 23 Python
Python3实现爬取指定百度贴吧页面并保存页面数据生成本地文档的方法
Apr 22 Python
Python编程在flask中模拟进行Restful的CRUD操作
Dec 28 Python
python实现剪切功能
Jan 23 Python
使用python实现简单五子棋游戏
Jun 18 Python
Python爬虫爬取新闻资讯案例详解
Jul 14 Python
python识别围棋定位棋盘位置
Jul 26 Python
Python NumPy灰度图像的压缩原理讲解
Aug 04 Python
Python通过loop.run_in_executor执行同步代码 同步变为异步
Apr 11 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 利用AJAX获取网页并输出的实现代码(Zjmainstay)
2012/08/31 PHP
php抓取页面的几种方法详解
2013/06/17 PHP
zend optimizer在wamp的基础上安装图文教程
2013/10/26 PHP
php多文件上传下载示例分享
2014/02/20 PHP
PHP7新特性
2021/03/09 PHP
js中的时间转换—毫秒转换成日期时间的示例代码
2014/01/26 Javascript
JavaScript实现select添加option
2015/07/03 Javascript
JS实现的仿QQ空间图片弹出效果代码
2016/02/23 Javascript
Nodejs下用submit提交表单提示cannot post错误的解决方法
2016/11/21 NodeJs
原生js实现弹出层登录拖拽功能
2016/12/05 Javascript
利用jquery实现验证输入的是否是数字、小数,包含保留几位小数
2016/12/07 Javascript
nodejs 实现钉钉ISV接入的加密解密方法
2017/01/16 NodeJs
Node.js操作redis实现添加查询功能
2017/05/25 Javascript
JS实现的走迷宫小游戏完整实例
2017/07/19 Javascript
Angular2开发环境搭建教程之VS Code
2017/12/15 Javascript
Angular如何由模板生成DOM树的方法
2019/12/23 Javascript
python利用beautifulSoup实现爬虫
2014/09/29 Python
Python中操作文件之write()方法的使用教程
2015/05/25 Python
Python import用法以及与from...import的区别
2015/05/28 Python
Ubuntu下安装PyV8
2016/03/13 Python
python 删除指定时间间隔之前的文件实例
2018/04/24 Python
Python 类的特殊成员解析
2018/06/20 Python
Python中交换两个元素的实现方法
2018/06/29 Python
使用 Python 处理3万多条数据只要几秒钟
2020/01/19 Python
在pycharm中为项目导入anacodna环境的操作方法
2020/02/12 Python
python 数据类型强制转换的总结
2021/01/25 Python
HTML5 input元素类型:email及url介绍
2013/08/13 HTML / CSS
华为菲律宾官方网站:HUAWEI Philippines
2021/02/23 全球购物
优秀员工自荐书范文
2013/12/08 职场文书
简历中的自我评价范文
2014/02/05 职场文书
毕业生如何写自我鉴定
2014/03/15 职场文书
党员四风问题对照检查材料
2014/09/27 职场文书
村主任“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
老人节主持词
2015/07/04 职场文书
消防安全主题班会
2015/08/12 职场文书
MySQL数据库优化之通过索引解决SQL性能问题
2022/04/10 MySQL