資源簡介
運用核密度自適應閾值背景建模算法對運動目標進行檢測,文檔加代碼,實現效果較好

代碼片段和文件信息
//?Capture.cpp?:?定義控制臺應用程序的入口點。
//
#include?“stdafx.h“
#include?
#include?
#include?
#include?
#include?
#include?
using?namespace?std;
#pragma?comment?(lib“cv.lib“)
#pragma?comment?(lib“cxcore.lib“)
#pragma?comment?(lib“highgui.lib“)
#pragma?comment?(lib“cvaux.lib“)
#define?B(imageij)?((uchar*)(image->imageData?+?image->widthStep*j))[i*3]??
#define?G(imageij)?((uchar*)(image->imageData?+?image->widthStep*j))[i*3+1]
#define?R(imageij)?((uchar*)(image->imageData?+?image->widthStep*j))[i*3+2]
#define?I(imageij)?((uchar*)(image->imageData?+?image->widthStep*j))[i]
#define?N?22
int?main(int?argcchar?**argv)
{
CvCapture?*cap=NULL;
IplImage?*pImage[N]={NULL};?????//從視頻中得到前20幀第21幀為當前幀
IplImage?*pImageGray[N]={NULL};?//前20幀的灰度圖,用來建密度函數第21幀為當前幀
IplImage?*src=NULL;????//
IplImage?*dst=NULL;
int?nframe=0;
int?m[N-2];?//用來存放20幀差的絕對值
double?mid=0;?????//20幀差中間值
double?thita=0.0;?//窗口大小
double?thita1=4.0;
double?th=0.0;??//分割閾值
double?reslut=0.0;
int?shi=0;
double?caizhi=0.0;
cvNamedWindow(“video1“?1);
cvNamedWindow(“video2“?1);
cvMoveWindow(“video1“?30?0);
cvMoveWindow(“video2“?290?0);
int?ijk;
if(?!(?cap?=?cvCaptureFromFile(“video.long.raw.avi“)?))
/*if(?!(?cap?=?cvCaptureFromFile(“a04.avi“)?))*/
{
fprintf(stderr?“Can?not?open?video?file\n“);
return?-2;
}
while(cap)
{
nframe++;
// pImage=cvQueryframe(cap);
src=cvQueryframe(cap);
if(nframe==1)
dst=cvCreateImage(cvGetSize(src)IPL_DEPTH_8U1);
cout<ame< if(nframe {
pImage[nframe]=cvCloneImage(src);
pImageGray[nframe]=cvCreateImage(cvGetSize(pImage[nframe])IPL_DEPTH_8U1);
cvCvtColor(pImage[nframe]pImageGray[nframe]CV_BGR2GRAY);
cvFlip(pImageGray[nframe]pImageGray[nframe]0);
//for(j=0;j<3;j++){??//對每個點進行判斷
// for?(i=300;iwidth;i++)
// {
// shi=I(pImageGray[nframe]ij);
// cout< // }
// cout< //}
}
else{
pImageGray[N-1]=cvCreateImage(cvGetSize(src)IPL_DEPTH_8U1);
cvCvtColor(srcpImageGray[N-1]CV_BGR2GRAY);
cvFlip(pImageGray[N-1]pImageGray[N-1]0);
//for(j=0;jheight;j++){??//對每個點進行判斷
// for?(i=0;iwidth;i++){
// th=0.0;
// reslut=0.0;
// for(k=1;k // m[k]=abs(I(pImageGray[k]ij)-I(pImageGray[k+1]ij));??//計算幀差m[20]
// }
// /*for(k=1;k // cout< // cout< // for(int?a=1;a // int?k1=a;
// for(int?b=a+1;b<21;b++)
// if(m[k1]>m[b])?k1=b;
// m[a]=m[k1];???????????????????//求得中間值
// }
// mid=(m[N/2]+m[N/2+1]);
// //cout< // thita=mid/(0.68*1.414);???????????//計算得到窗口寬度
// th=0.015/thita;???????????????????//計算得到閾值
// for(int?a1=1;a1 // reslut+=exp(-(I(pImageGray[N-1]
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????406528??2010-04-28?14:51??Capture\Background?and?foreground?modeling?using?nonparametric?kernel?density?estimation?for?visual?surveillane.pdf
?????文件???????5183??2010-05-26?21:23??Capture\Capture\Capture.cpp
?????文件???????4498??2010-05-25?18:33??Capture\Capture\Capture.vcproj
?????文件???????1427??2010-05-31?14:27??Capture\Capture\Capture.vcproj.01554C3E9EC245B.Administrator.user
?????文件???????1183??2010-05-25?18:33??Capture\Capture\ReadMe.txt
?????文件????????212??2010-05-25?18:33??Capture\Capture\stdafx.cpp
?????文件????????233??2010-05-25?18:33??Capture\Capture\stdafx.h
?????文件????????498??2010-05-25?18:33??Capture\Capture\targetver.h
?????文件???????5150??2010-05-26?21:03??Capture\Capture\ve-17A.tmp
?????文件????9227264??2010-05-31?14:27??Capture\Capture.ncb
?????文件????????887??2010-05-25?18:33??Capture\Capture.sln
????..A..H.?????15360??2010-05-31?14:27??Capture\Capture.suo
?????文件????2172246??2014-02-06?17:00??Capture\一種基于切比雪夫不等式的自適應閾值背景建模算法_張琨.pdf
?????目錄??????????0??2010-05-31?14:13??Capture\Capture
?????目錄??????????0??2017-12-26?14:31??Capture
-----------?---------??----------?-----??----
?????????????11840669????????????????????15
- 上一篇:復旦考研必備 數字邏輯基礎答案
- 下一篇:ssh服務軟件包
評論
共有 條評論