資源簡介
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權威指南完整版帶書簽目錄
評論
共有 條評論