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即可. 类似于一个封装的完成多类识别器功能单层网络. 优点: 尤其 ...
随机推荐
- iOS开发之 获取手机的网络的ip地址
首先在使用的地方导入 #include <ifaddrs.h> #include <arpa/inet.h> 然后直接调用 - (NSString *)getIPAddress ...
- 数据分析学习(zhuan)
http://www.zhihu.com/question/22119753 http://www.zhihu.com/question/20757000 ********************** ...
- python字符串替换的2种有效方法
python 字符串替换可以用2种方法实现:1是用字符串本身的方法.2用正则来替换字符串 下面用个例子来实验下:a = 'hello word'我把a字符串里的word替换为python1用字符串本身 ...
- 在腾讯云上创建您的SQL Cluster(3)
版权声明:本文由李斯达原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/250 来源:腾云阁 https://www.qclo ...
- 调用webservice 417
在调用webservice时有些服务器一直返回“远程服务器返回错误: (417) Expectation failed” 这个提示,解决方案: 在调用代码的最开始加入如下一句:System.Net. ...
- robotframework笔记16
发布处理具有相同名称的关键字 使用机器人框架要么是关键词 图书馆 关键字 或 用户的关键字 . 前来自 标准 库 或 外部库 ,后者 中创建相同的文件在使用或进口 资源文件 . 许多关键字使用时,是很 ...
- PLI与Pillow
PIL概念 XXXXX 注意 PIL不兼容setuptools. Pillow概念 Pillow(PIL fork)是用来处理raster图像的Python图像库,即像素数据的矩阵. 查阅PIL的 ...
- Runner站立会议之个人记录
备注: 为方便记录,此随笔每日更新(因会议在晚上开,所以将昨天今天改成了今天明天) 2016.4.19 站立会议 今天学习到了:文件创建,adt基本知识,分别在虚拟机和手机上运行软件 明天要:继续学 ...
- Android之ScrollView嵌套ListView
在ScrollView中嵌套使用ListView,ListView只会显示的内容只有一行多一点 解决方案: public class Utility { public void setListView ...
- cycleInterpolator 循环加速器
CycleInterpolator Repeats the animation for a specified number of cycles. The rate of change follows ...