资源简介
VIBE前景检测方法,老外09年提出的新背景建模方法,速度比混合高斯背景模型提高几倍,检测效果也好于混合高斯模型。该包中包含了基本原理以及算法源代码。
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
#include “vibeRely.h“
using namespace std;
using namespace cv;
int nFrmNum = 0;//记录帧数
int main(int argc char* argv[])
{
clock_t startTime;
clock_t endTime;
double duration;
IplImage* pframe=NULL;CvMat* pframeMat = NULL;//pframe对象
IplImage* pAfter=NULL;CvMat* pAfterMat=NULL;//保存pframe对应的灰度图像
IplImage* segMap=NULL;CvMat* segMat=NULL;//保存处理后的信息
IplImage* bframe=NULL;
RNG rng(0xFFFFFFFF); //创建一个随机数生成器
char pBuf[100];
_getcwd(pBufsizeof(pBuf)); //获得当前工程所在路径
strcat(pBuf“\\View.avi“); //pbuf为当前工程目录下的需要读取的视频文件
//打开视频文件
CvCapture* pCapture=cvCreateFileCapture(pBuf);
if(pCapture==NULL) {
cout<<“video file open error!“< return -1;
}
CvSize pSize=cvSize((int)cvGetCaptureProperty(pCaptureCV_CAP_PROP_frame_WIDTH)(int)cvGetCaptureProperty(pCaptureCV_CAP_PROP_frame_HEIGHT));
cvNamedWindow(“src“CV_WINDOW_AUTOSIZE);
cvMoveWindow(“src“ 100200);
cvNamedWindow(“dst“CV_WINDOW_AUTOSIZE);
cvMoveWindow(“dst“500200);
//逐帧读取视频并进行处理
while(pframe = cvQueryframe( pCapture )){
nFrmNum++;
startTime = clock();
//如果是第一帧,申请内存并进行初始化
if(nFrmNum==1){
segMap = cvCreateImage(cvSize(pframe->width pframe->height)
IPL_DEPTH_8U1);
segMat = cvCreateMat(pframe->height pframe->width CV_32FC1);
//原始图像的灰度图
pAfter=cvCreateImage(cvSize(pframe->width pframe->height)
IPL_DEPTH_8U1);
// 原始图像灰度图矩阵
pAfterMat=cvCreateMat(pframe->height pframe->width CV_32FC1);
//转化成单通道图像再处理
cvCvtColor(pframe pAfter CV_BGR2GRAY);
cvConvert(pAfter pAfterMat);
Initialize(pAfterMatrng);
}
else {
IplConvKernel * myModel;
myModel=cvCreateStructuringElementEx(3311CV_SHAPE_CROSS);
cvCvtColor(pframepAfterCV_BGR2GRAY);
cvConvert(pAfterpAfterMat);
update(pAfterMatsegMatrngnFrmNum); //更新背景
cvConvert(segMatsegMap);
//cvErode( segMapsegMapmyModel1);
// cvDilate(segMapsegMap NULL1);
cvReleaseStructuringElement(&myModel);
}
endTime = clock();
cvShowImage(“src“pframe);
cvShowImage(“dst“segMap);
cvWaitKey(1);
duration = (double)(endTime-startTime)/CLOCKS_PER_SEC*1000; //计算该次循环所以时间
cout<
}
cvReleaseImage(&pframe);cvReleaseMat(&pframeMat);
cvReleaseImage(&pAfter);cvReleaseMat(&pAfterMat);
cvReleaseImage(&segMap);cvReleaseMat(&segMat);
cvDestroyWindow(“dst“);
cvDestroyWindow(“src“);
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2633344 2013-01-17 19:00 VIBE\ViBe-a universal background subtraction algorithm for video sequences.pdf
文件 422400 2015-05-16 16:29 VIBE\ViBe运动物体检测.doc
文件 4685282 2015-05-18 18:16 VIBE\测试视频\View.avi
文件 2836 2015-07-09 16:00 VIBE\源码\Target_Main.cpp
文件 2781 2015-07-09 16:00 VIBE\源码\vibeRely.cpp
文件 518 2015-05-17 15:25 VIBE\源码\vibeRely.h
目录 0 2015-07-09 16:03 VIBE\测试视频
目录 0 2015-07-09 16:03 VIBE\源码
目录 0 2015-07-09 16:11 VIBE
文件 2633344 2013-01-17 19:00 VIBE\相关文档\ViBe-a universal background subtraction algorithm for video sequences.pdf
文件 422400 2015-05-16 16:29 VIBE\相关文档\ViBe运动物体检测.doc
文件 205 2015-07-09 16:11 VIBE\说明.txt
目录 0 2015-07-09 16:11 VIBE\相关文档
----------- --------- ---------- ----- ----
10803110 13
- 上一篇:jude UML 汉化免费版
- 下一篇:MongoDB权威指南完整版带书签目录
相关资源
- opencv学习---运动目标前景检测
- 视频中背景建模目标检测综述(北京
- 图像分割 高斯混合模型 马尔科夫 i
- 单高斯背景建模opencv
- Opencv常用前景提取算法
- 基于ViBe+Kalman的目标跟踪
- 高斯混合建模与卡尔曼滤波更新用于
- ViBe原作者给的Vibe算法验证程序
- ViBe原作者给的统计运行时间的执行程
- 改进VIBE定位算法
- 论文研究-改进的Vibe运动目标检测算法
- 使用VIBE算法进行车流量检测并消除鬼
- 高斯混合模型
- opencv实现ViBe算法source code
- AhmedElgammal非参数背景建模
- 基于vibe背景建模的目标检测算法
- vibe 官方源码
- 基于高斯混合模型的背景减除
- 结合了混合高斯背景建模的camshift目标
- 基于高斯混合模型的说话人识别
- 生成二维高斯混合分布
评论
共有 条评论