OpenCV高斯模型
int main(int argc, char** argv)
{
//std::string videoFile = "E:\\C_VC_code\\Text_Photo\\dingdang.avi"; //cv::VideoCapture capture;
//capture.open(videoFile);
//VideoCapture capture("E:\\C_VC_code\\Text_Photo\\大屏互动+行人检测_标清.flv");
VideoCapture capture();
if (!capture.isOpened())
{
std::cout<<"read video failure"<<std::endl;
return -;
} cv::BackgroundSubtractorMOG2 mog; cv::Mat foreground;
cv::Mat background; cv::Mat frame;
Mat frame1;
long frameNo = ;
double scalar = 0.3; while ()
{ capture>>frame1;
resize(frame1,frame,Size(frame1.cols*scalar,frame1.rows*scalar),,,); // 运动前景检测,并更新背景
mog(frame, foreground, 0.2); // 腐蚀
cv::erode(foreground, foreground, cv::Mat()); // 膨胀
cv::dilate(foreground, foreground, cv::Mat()); mog.getBackgroundImage(background); // 返回当前背景图像 threshold(foreground,foreground,,,CV_THRESH_BINARY_INV);
cv::imshow("foreground", foreground);
cv::imshow("background", background); if (cv::waitKey() > )
{
break;
}
} return ;
}
opencv-3.0.0版本的变化:
int main(int argc, char *argv[]) {
cv::Mat frame;
cv::Mat back;
cv::Mat fore;
cv::VideoCapture cap();
cv::Ptr<BackgroundSubtractorMOG2> bg = createBackgroundSubtractorMOG2();
bg->setNMixtures();
//bg.bShadowDetection = false;
std::vector<std::vector<cv::Point> > contours;
cv::namedWindow("Frame");
cv::namedWindow("Background");
for (;;) {
cap >> frame;
//bg.operator()(frame, fore);
bg->apply(frame, fore,0.01);
bg->getBackgroundImage(back);
cv::erode(fore, fore, cv::Mat());
cv::dilate(fore, fore, cv::Mat());
cv::findContours(fore, contours, CV_RETR_EXTERNAL,CV_CHAIN_APPROX_NONE);
cv::drawContours(frame, contours, -, cv::Scalar(, , ), );
threshold(fore, fore, , , CV_THRESH_BINARY_INV);
cv::imshow("Foreground", fore);
cv::imshow("Frame", frame);
cv::imshow("Background", back);
if (cv::waitKey() >= )
break;
}
return ;
}
OpenCV高斯模型的更多相关文章
- Opencv混合高斯模型前景分离
#include "stdio.h" #include "string.h" #include "iostream" #include &q ...
- 混合高斯模型:opencv中MOG2的代码结构梳理
/* 头文件:OurGaussmix2.h */ #include "opencv2/core/core.hpp" #include <list> #include&q ...
- OpenCV混合高斯模型函数注释说明
OpenCV混合高斯模型函数注释说明 一.cvaux.h #define CV_BGFG_MOG_MAX_NGAUSSIANS 500 //高斯背景检测算法的默认参数设置 #define CV_BGF ...
- [zz] 混合高斯模型 Gaussian Mixture Model
聚类(1)——混合高斯模型 Gaussian Mixture Model http://blog.csdn.net/jwh_bupt/article/details/7663885 聚类系列: 聚类( ...
- 运动检测(前景检测)之(二)混合高斯模型GMM
运动检测(前景检测)之(二)混合高斯模型GMM zouxy09@qq.com http://blog.csdn.net/zouxy09 因为监控发展的需求,目前前景检测的研究还是很多的,也出现了很多新 ...
- [转]运动检测(前景检测)之(二)混合高斯模型GMM
转自:http://blog.csdn.net/zouxy09/article/details/9622401 因为监控发展的需求,目前前景检测的研究还是很多的,也出现了很多新的方法和思路.个人了解的 ...
- PRML读书会第九章 Mixture Models and EM(Kmeans,混合高斯模型,Expectation Maximization)
主讲人 网络上的尼采 (新浪微博: @Nietzsche_复杂网络机器学习) 网络上的尼采(813394698) 9:10:56 今天的主要内容有k-means.混合高斯模型. EM算法.对于k-me ...
- [学习opencv]高斯、中值、均值、双边滤波
http://www.cnblogs.com/tiandsp/archive/2013/04/20/3031862.html [学习opencv]高斯.中值.均值.双边滤波 四种经典滤波算法,在ope ...
- 混合高斯模型(GMM)推导及实现
作者:桂. 时间:2017-03-20 06:20:54 链接:http://www.cnblogs.com/xingshansi/p/6584555.html 声明:欢迎被转载,不过记得注明出处哦 ...
随机推荐
- 提取hdfs文件名的方法
#!/bin/bash #------------------------------------------------------------- # 把目录中的所有文件getmerge到本地 # ...
- Windows XP SP3 Professional 微软(MSDN)官方原版系统
Windows XP SP3 Professional 微软(MSDN)官方原版系统 Windows XP(版本号:5.1,开发代号:Whistler)是微软公司推出供个人电脑使用的操作系统,其RTM ...
- Java数据结构——用链表实现栈
//================================================= // File Name : LinkStack_demo //---------------- ...
- Dynamic Font Programming
http://www.braynzarsoft.net/Articles/index.php?p=VA&article=Easy-Font-Rendering-in-DirectX-11 ht ...
- TEXshade教程- 多重比对着色软件包
多重比对着色软件包 TEXshade 图解安装教程 [絮语]: TEXshade 是 Latex 的一个宏包,可以对 MSF或 ALN 格式的多重比对文件以不同的方式进行着色美化,并可以对重要的位 ...
- centos 7.0 查看所有安装的包
rpm方式安装的包 默认 最小化安装centos 7.0 rpm -qa 查看所有安装的包 [root@localhost ~]# rpm -qa biosdevname-0.5.0-10.el7.x ...
- Windows系统bug
今天,发现Windows系统的一个bug 也不知道是不是bug,未深入 在网上下载图片,将图像另存为到本地的时候,图片文件名可以为空(后缀要保留) 但是,在本地,是无法直接将文件名命名为空的~
- OS命令注入
SSL http://kb.cnblogs.com/page/162080/ http://baike.baidu.com/link?url=jPitKuDw_ncDlMbOc1SkWzM9TuKX9 ...
- php 冒泡排序
public function demo($arr){ $len = count($arr); if ($len == 1) { return $arr; } else { for ($i = 1; ...
- PostgreSQL建立分区表示例
pgsql 分区表: --主表 create table test(id integer, name varchar(32)); create index idx_test_id on test us ...