FG模型
一直没搞懂CvBGStatModel和CvFGDStatModel有什么区别。CvBGStatModel模型的创建用cvCreateGaussianBGModel,CvFGDStatModel模型的创建用cvCreateFGDStatModel,它们的更新都用cvUpdateBGStatModel。
#include<iostream>
#include<opencv2/opencv.hpp>
#include<opencv/cvaux.hpp>
using namespace std; int main()
{
IplImage *pFrame=NULL;
IplImage *pFrImg=NULL;
IplImage *pBkImg=NULL;
CvCapture *pCapture=NULL;
pCapture= cvCreateFileCapture("video.avi"); cvNamedWindow("video",1);
cvNamedWindow("background",1);
cvNamedWindow("foreground",1);
cvMoveWindow("video",30,0);
cvMoveWindow("background",450,0);
cvMoveWindow("foreground",900,0); CvFGDStatModel* fg_model=NULL; int nFrmNum=0;
while(pFrame=cvQueryFrame(pCapture))
{
nFrmNum++;
if(nFrmNum==1)
{
pBkImg=cvCreateImage(cvSize(pFrame->width, pFrame->height),IPL_DEPTH_8U,3);
pFrImg=cvCreateImage(cvSize(pFrame->width, pFrame->height),IPL_DEPTH_8U,3);
fg_model = (CvFGDStatModel*)cvCreateFGDStatModel(pFrame, 0); }
else
{
cvUpdateBGStatModel(pFrame, (CvBGStatModel *)fg_model );
pFrImg=fg_model->foreground;
cvDilate(pFrImg,pFrImg);
// cvErode(pFrImg,pFrImg);//腐蚀
pBkImg=fg_model->background; cvShowImage("video",pFrame);
cvShowImage("background",pBkImg);
cvShowImage("foreground",pFrImg); } if(cvWaitKey(20)>=0)
break;
} cvReleaseBGStatModel((CvBGStatModel**)&fg_model);
cvDestroyAllWindows();
cvReleaseImage(&pFrame);
cvReleaseImage(&pFrImg);
cvReleaseImage(&pBkImg);
cvReleaseCapture(&pCapture);
return 0;
}
程序运行结果:

FG模型的更多相关文章
- 浅析java内存模型--JMM(Java Memory Model)
在并发编程中,多个线程之间采取什么机制进行通信(信息交换),什么机制进行数据的同步? 在Java语言中,采用的是共享内存模型来实现多线程之间的信息交换和数据同步的. 线程之间通过共享程序公共的状态,通 ...
- ASP.NET MVC系列:添加模型的验证规则
首先,在模型类中引用 System.ComponentModel.DataAnnotations 命名空间;System.ComponentModel.DataAnnotations 命名空间提供定义 ...
- CSS3与页面布局学习笔记(二)——盒子模型(Box Model)、边距折叠、内联与块标签、CSSReset
一.盒子模型(Box Model) 盒子模型也有人称为框模型,HTML中的多数元素都会在浏览器中生成一个矩形的区域,每个区域包含四个组成部分,从外向内依次是:外边距(Margin).边框(Border ...
- springmvc学习(五)——处理模型数据
Spring MVC 提供了以下几种途径输出模型数据: ModelAndView: 处理方法返回值类型为 ModelAndView 时, 方法体即可通过该对象添加模型数据Map 及 Model: 入参 ...
- yii学习笔记--使用gii快速创建控制器和模型
配置gii 'gii'=>array( 'class'=>'system.gii.GiiModule', 'password'=>'123456',//使用gii的密码 // If ...
- [转]kaldi特征和模型空间转换
转:http://blog.csdn.net/shmilyforyq/article/details/76807431 博主话:这篇博客是对kaldi官网中Feature and model-spac ...
- JVM内存模型 二
在并发编程中,多个线程之间采取什么机制进行通信(信息交换),什么机制进行数据的同步? 在Java语言中,采用的是共享内存模型来实现多线程之间的信息交换和数据同步的. 线程之间通过共享程序公共的状态,通 ...
- 多线程与Java的JMM内存模型
共享内存模型指的就是Java内存模型(简称JMM),JMM决定一个线程对共享变量的写入时,能对另一个线程可见.从抽象的角度来看,JMM定义了线程和主内存之间的抽象关系:线程之间的共享变量存储在主内存( ...
- 时序分析:HMM模型(状态空间)
关于HMM模型:时序分析:隐马尔科夫模型 HMM用于手势识别: 训练时每一种手势对应一个HMM-Model,识别率取最大的一个HMM即可. 类似于一个封装的完成多类识别器功能单层网络. 优点: 尤其 ...
随机推荐
- 转:Jeff Atwood倾情推荐——程序员必读之书
Jeff Atwood倾情推荐——程序员必读之书 英文版:<Code Complete 2>中文版:<代码大全(第二版)>作者:Steve McConnell译者:金戈 汤凌 ...
- 转:SQL的内连接与外连接
参考:http://www.cuiyongjian.com/post-130.html 在oracle的SQL语句常用的连接有内连接(inner join),外连接(outer join)等,内连接又 ...
- Jquery_改变背景颜色
$(this).addClass("car_check").siblings().removeClass("car_check");//设置全部车辆为选中状态
- phalcon: 官方多模块
目录结构如下 public/index.php: use Phalcon\Mvc\Router; use Phalcon\Tag; use Phalcon\Mvc\Url; use Phalcon\M ...
- graph-tool文档(一)- 快速开始使用Graph-tool - 2.属性映射、图的IO和Price网络
目录: 属性映射 -- 内部属性映射 图的I/O 构建一个 Price网络(例) 名词解释: Property maps:属性映射 PropertyMap:一个类 scalar value types ...
- toolbar
toolbar= (Toolbar) findViewById(R.id.toolbar_mainactivity); // 设置主标题及其颜色 toolbar.setTitle("Andr ...
- PC-1500与PC通讯
目录 第1章说明 2 第2章音频通讯 3 2.1 下载 3 2.2 上传 8 2.2.1 操作 8 2.2.2 音量 8 2.3 直接将BASIC代码转换为wav文 ...
- 【转】 C++的深拷贝与浅拷贝
对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量.下面看一个类对象拷贝的简单例子. ...
- 025-ViewData、ViewBag与TempData概述
Action向View传递数据很简单,方式也很多,最直接的就是我们向View传递Model,这本身就是MVC的意义所在.如果是显示一些消息,像是错误信息,可以使用ViewData.ViewBag.Te ...
- NodeJS 各websocket框架性能分析
For a current project at WhoScored, I needed to learn JavaScript, Node.js and WebSocket channel, aft ...