前景背景分离方法(二)高斯混合模型法GMM(Gaussian Mixture Model)
int main()
{VideoCapture capture("D:/videos/shadow/use3.MPG");if( !capture.isOpened() ){cout<<"读取视频失败"<<endl;return -1;}//获取整个帧数long totalFrameNumber = capture.get(CV_CAP_PROP_FRAME_COUNT);cout<<"整个视频共"<<totalFrameNumber<<"帧"<<endl;//设置开始帧()long frameToStart = 200;capture.set( CV_CAP_PROP_POS_FRAMES,frameToStart);cout<<"从第"<<frameToStart<<"帧开始读"<<endl;//设置结束帧int frameToStop = 650;if(frameToStop < frameToStart){cout<<"结束帧小于开始帧,程序错误,即将退出!"<<endl;return -1;}else{cout<<"结束帧为:第"<<frameToStop<<"帧"<<endl;}double rate = capture.get(CV_CAP_PROP_FPS);int delay = 1000/rate;Mat frame;//前景图片Mat foreground;//使用默认参数调用混合高斯模型BackgroundSubtractorMOG mog;bool stop(false);//currentFrame是在循环体中控制读取到指定的帧后循环结束的变量long currentFrame = frameToStart;while( !stop ){if( !capture.read(frame) ){cout<<"从视频中读取图像失败或者读完整个视频"<<endl;return -2;}cvtColor(frame,frame,CV_RGB2GRAY);imshow("输入视频",frame);//参数为:输入图像、输出图像、学习速率mog(frame,foreground,0.01);imshow("前景",foreground);//按ESC键退出,按其他键会停止在当前帧int c = waitKey(delay);if ( (char)c == 27 || currentFrame >= frameToStop){stop = true;}if ( c >= 0){waitKey(0);}currentFrame++;}waitKey(0);
}
// 基于混合高斯模型的运动目标检测
// Author: http://blog.csdn.net/icvpr #include <iostream>
#include <string>#include <opencv2/opencv.hpp>int main(int argc, char** argv)
{std::string videoFile = "../test.avi";cv::VideoCapture capture;capture.open(videoFile);if (!capture.isOpened()){std::cout<<"read video failure"<<std::endl;return -1;}cv::BackgroundSubtractorMOG2 mog;cv::Mat foreground;cv::Mat background;cv::Mat frame;long frameNo = 0;while (capture.read(frame)){++frameNo;std::cout<<frameNo<<std::endl;// 运动前景检测,并更新背景mog(frame, foreground, 0.001); // 腐蚀cv::erode(foreground, foreground, cv::Mat());// 膨胀cv::dilate(foreground, foreground, cv::Mat());mog.getBackgroundImage(background); // 返回当前背景图像cv::imshow("video", foreground);cv::imshow("background", background);if (cv::waitKey(25) > 0){break;}}return 0;
}
前景背景分离方法(二)高斯混合模型法GMM(Gaussian Mixture Model)相关推荐
- GMM(Gaussian mixture model, 高斯混合模型)
GMM全称是Gaussian mixture model (高斯混合模型).与k-means算法类似,GMM也是一种常见的聚类算法,它与k-means区别主要在于,GMM是一种"软聚类&qu ...
- 高斯混合模型聚类_GMM: Gaussian Mixed Model(高斯混合模型)
0. 简介 GMM和Kmeans一样也属于聚类,其算法训练流程也十分相似,Kmeans可认为是"硬聚类",GMM是"软聚类". 给定数据集X,Kmeans算法流 ...
- 高斯混合模型--GMM(Gaussian Mixture Model)
参考:http://blog.sina.com.cn/s/blog_54d460e40101ec00.html 概率指事件随机发生的机率,对于均匀分布函数,概率密度等于一段区间(事件的取值范围)的概率 ...
- 数字图像处理拓展题目——利用Matlab实现动态目标检测 二帧差法、ViBe法、高斯混合模型法,可应用于学生递东西行为检测
1.二帧差法实现动态目标检测 先上效果图: 利用GUI界面显示出来效果图为: 实现流程 1.利用matlab中的VideoReader函数读取视频流. 2.帧差法:获得视频帧数,用for循环对图像每相 ...
- 【OCR】图像预处理-文字背景分离方法
1. 摘要 在OCR处理文档时,经常会遇到自然拍照场景中由于光照强度不一.拍摄角度不同.相机成像元件差异,因此会导致拍摄的图片与扫描文档存在较大区别.为使文档文字内容更加鲜明,便于后续特征提取,本文目 ...
- 高斯混合模型(GMM)源代码实现(二)
第一篇(https://blog.csdn.net/To_be_to_thought/article/details/90759715)讲了原理推导,网上有很多讲解原理的很少有实现的.Talk is ...
- 【机器学习笔记11】高斯混合模型(GMM)【上篇】原理与推导
文章目录 推荐阅读 前言 高斯混合模型简介 GMM与K-mean 高斯混合模型的概率密度函数 几何角度 混合模型角度 可能会弄混的地方 隐变量的分布与隐变量的后验概率分布 极大似然估计 EM算法求近似 ...
- 高斯混合模型Gaussian Mixture Model (GMM)——通过增加 Model 的个数,我们可以任意地逼近任何连续的概率密分布...
从几何上讲,单高斯分布模型在二维空间应该近似于椭圆,在三维空间上近似于椭球.遗憾的是在很多分类问题中,属于同一类别的样本点并不满足"椭圆"分布的特性.这就引入了高斯混合模型.--可 ...
- 高斯-赛得尔迭代式 c++_高斯混合模型(Gaussian Mixture Model)与EM算法原理(一)
高斯混合模型(Gaussian Mixture Model)是机器学习中一种常用的聚类算法,本文介绍了其原理,并推导了其参数估计的过程.主要参考Christopher M. Bishop的<Pa ...
最新文章
- 【bzoj 4764】弹飞大爷
- 3D演示帮你一眼看懂线性规划问题,这篇可视化教程火了
- ajax请求提示html状态码302,快速解决ajax请求出错状态码为0的问题
- MATLAB插值问题
- 数据挖掘肿瘤预测_Nature Medicine封面文章:利用单核细胞数量预测及评估肿瘤免疫治疗效果...
- idea ---- 快捷键
- 【Linux】七种文件类型
- 数据库的基本命令操作
- 一些微信小程序demo源码
- 如何理解上下文有关文法(1型)和上下文无关文法(2型)
- U盘文件被隐藏是怎么回事?怎样恢复被隐藏文件?
- Java求100000以内素数_100000以内的质数表
- 最新的quartus ii、dsp builder、matlab版本匹配安装破解
- Confluence 摘要(Excerpt)宏
- setBounds()和setSize的区别
- 11.2 逃课是个需要严肃对待的问题——《逆袭大学》连载
- 在使用ambari进行安装部署过程中遇到的glibc问题
- ABP的一些特性 (Attribute)
- java 开源sns_JAVA开源SNS社交管理问答知识付费系统JEESNS v1.4.2
- Matlab/Simulink:动态系统模型的表示及仿真分析基础
热门文章
- 拓扑排序 Codeforces Round #290 (Div. 2) C. Fox And Names
- se105模板,产品详情页去掉多余的review栏目。
- Favorites整理v2011
- 【同113】LeetCode 129. Sum Root to Leaf Numbers
- Leetcode 410.分割数组的最大值(最优解是二分法)
- Linux 基本命令(六)--pwd 常用命令
- 如何简单快速对@RequestParam声明的参数作校验
- 浏览器窗口可视区域大小相关方法
- [笔记][随笔]近期小结
- 避免jQuery名字冲突--noConflict()方法