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)相关推荐

  1. GMM(Gaussian mixture model, 高斯混合模型)

    GMM全称是Gaussian mixture model (高斯混合模型).与k-means算法类似,GMM也是一种常见的聚类算法,它与k-means区别主要在于,GMM是一种"软聚类&qu ...

  2. 高斯混合模型聚类_GMM: Gaussian Mixed Model(高斯混合模型)

    0. 简介 GMM和Kmeans一样也属于聚类,其算法训练流程也十分相似,Kmeans可认为是"硬聚类",GMM是"软聚类". 给定数据集X,Kmeans算法流 ...

  3. 高斯混合模型--GMM(Gaussian Mixture Model)

    参考:http://blog.sina.com.cn/s/blog_54d460e40101ec00.html 概率指事件随机发生的机率,对于均匀分布函数,概率密度等于一段区间(事件的取值范围)的概率 ...

  4. 数字图像处理拓展题目——利用Matlab实现动态目标检测 二帧差法、ViBe法、高斯混合模型法,可应用于学生递东西行为检测

    1.二帧差法实现动态目标检测 先上效果图: 利用GUI界面显示出来效果图为: 实现流程 1.利用matlab中的VideoReader函数读取视频流. 2.帧差法:获得视频帧数,用for循环对图像每相 ...

  5. 【OCR】图像预处理-文字背景分离方法

    1. 摘要 在OCR处理文档时,经常会遇到自然拍照场景中由于光照强度不一.拍摄角度不同.相机成像元件差异,因此会导致拍摄的图片与扫描文档存在较大区别.为使文档文字内容更加鲜明,便于后续特征提取,本文目 ...

  6. 高斯混合模型(GMM)源代码实现(二)

    第一篇(https://blog.csdn.net/To_be_to_thought/article/details/90759715)讲了原理推导,网上有很多讲解原理的很少有实现的.Talk is ...

  7. 【机器学习笔记11】高斯混合模型(GMM)【上篇】原理与推导

    文章目录 推荐阅读 前言 高斯混合模型简介 GMM与K-mean 高斯混合模型的概率密度函数 几何角度 混合模型角度 可能会弄混的地方 隐变量的分布与隐变量的后验概率分布 极大似然估计 EM算法求近似 ...

  8. 高斯混合模型Gaussian Mixture Model (GMM)——通过增加 Model 的个数,我们可以任意地逼近任何连续的概率密分布...

    从几何上讲,单高斯分布模型在二维空间应该近似于椭圆,在三维空间上近似于椭球.遗憾的是在很多分类问题中,属于同一类别的样本点并不满足"椭圆"分布的特性.这就引入了高斯混合模型.--可 ...

  9. 高斯-赛得尔迭代式 c++_高斯混合模型(Gaussian Mixture Model)与EM算法原理(一)

    高斯混合模型(Gaussian Mixture Model)是机器学习中一种常用的聚类算法,本文介绍了其原理,并推导了其参数估计的过程.主要参考Christopher M. Bishop的<Pa ...

最新文章

  1. 【bzoj 4764】弹飞大爷
  2. 3D演示帮你一眼看懂线性规划问题,这篇可视化教程火了
  3. ajax请求提示html状态码302,快速解决ajax请求出错状态码为0的问题
  4. MATLAB插值问题
  5. 数据挖掘肿瘤预测_Nature Medicine封面文章:利用单核细胞数量预测及评估肿瘤免疫治疗效果...
  6. idea ---- 快捷键
  7. 【Linux】七种文件类型
  8. 数据库的基本命令操作
  9. 一些微信小程序demo源码
  10. 如何理解上下文有关文法(1型)和上下文无关文法(2型)
  11. U盘文件被隐藏是怎么回事?怎样恢复被隐藏文件?
  12. Java求100000以内素数_100000以内的质数表
  13. 最新的quartus ii、dsp builder、matlab版本匹配安装破解
  14. Confluence 摘要(Excerpt)宏
  15. setBounds()和setSize的区别
  16. 11.2 逃课是个需要严肃对待的问题——《逆袭大学》连载
  17. 在使用ambari进行安装部署过程中遇到的glibc问题
  18. ABP的一些特性 (Attribute)
  19. java 开源sns_JAVA开源SNS社交管理问答知识付费系统JEESNS v1.4.2
  20. Matlab/Simulink:动态系统模型的表示及仿真分析基础

热门文章

  1. 拓扑排序 Codeforces Round #290 (Div. 2) C. Fox And Names
  2. se105模板,产品详情页去掉多余的review栏目。
  3. Favorites整理v2011
  4. 【同113】LeetCode 129. Sum Root to Leaf Numbers
  5. Leetcode 410.分割数组的最大值(最优解是二分法)
  6. Linux 基本命令(六)--pwd 常用命令
  7. 如何简单快速对@RequestParam声明的参数作校验
  8. 浏览器窗口可视区域大小相关方法
  9. [笔记][随笔]近期小结
  10. 避免jQuery名字冲突--noConflict()方法