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 11 Python
Python使用代理抓取网站图片(多线程)
Mar 14 Python
Windows下PyMongo下载及安装教程
Apr 27 Python
Python实现遍历目录的方法【测试可用】
Mar 22 Python
Python常用字符串替换函数strip、replace及sub用法示例
May 21 Python
解决python3 Pycharm上连接数据库时报错的问题
Dec 03 Python
Python3爬虫全国地址信息
Jan 05 Python
Python爬虫beautifulsoup4常用的解析方法总结
Feb 25 Python
通过pycharm使用git的步骤(图文详解)
Jun 13 Python
Python使用numpy模块实现矩阵和列表的连接操作方法
Jun 26 Python
Pyecharts绘制全球流向图的示例代码
Jan 08 Python
详细总结Python常见的安全问题
May 21 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.MVC的模板标签系统(五)
2006/09/05 PHP
php使HTML标签自动补全闭合函数代码
2012/10/04 PHP
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
2013/12/25 PHP
PHP几个实用自定义函数小结
2016/01/25 PHP
PHP中如何判断exec函数执行成功?
2016/08/04 PHP
php使用GD2绘制几何图形示例
2017/02/15 PHP
JavaScript入门教程 Cookies
2009/01/31 Javascript
在js文件中如何获取basePath处理js路径问题
2013/07/10 Javascript
使用非html5实现js板连连看游戏示例代码
2013/09/22 Javascript
JS批量修改PS中图层名称的方法
2014/01/26 Javascript
SeaJS入门教程系列之完整示例(三)
2014/03/03 Javascript
使用JavaScript制作一个简单的计数器的方法
2015/07/07 Javascript
jQuery+HTML5+CSS3制作支持响应式布局时间轴插件
2016/08/10 Javascript
ReactNative中使用Redux架构总结
2017/12/15 Javascript
深入学习JavaScript中的bom
2019/05/27 Javascript
Angular8 Http拦截器简单使用教程
2019/08/20 Javascript
Vue3 源码导读(推荐)
2019/10/14 Javascript
简单了解JS打开url的方法
2020/02/21 Javascript
python通过邮件服务器端口发送邮件的方法
2015/04/30 Python
详解Python中time()方法的使用的教程
2015/05/22 Python
对python 矩阵转置transpose的实例讲解
2018/04/17 Python
python爬虫自动创建文件夹的功能
2018/08/01 Python
python2爬取百度贴吧指定关键字和图片代码实例
2019/08/14 Python
pytorch下大型数据集(大型图片)的导入方式
2020/01/08 Python
如何在django中运行scrapy框架
2020/04/22 Python
Python pip安装模块提示错误解决方案
2020/05/22 Python
一款利用html5和css3实现的3D滚动特效的教程
2015/01/04 HTML / CSS
Html5页面获取微信公众号的openid的方法
2020/05/12 HTML / CSS
PHP引擎php.ini参数优化深入讲解
2021/03/24 PHP
日语专业毕业生自荐信
2013/11/11 职场文书
早餐连锁店计划书
2014/01/08 职场文书
支部鉴定材料
2014/06/02 职场文书
小浪底导游词
2015/02/12 职场文书
甲午大海战观后感
2015/06/02 职场文书
2015秋季幼儿园开学通知
2015/07/16 职场文书
会计入职心得体会
2016/01/22 职场文书