资源简介
运用核密度自适应阈值背景建模算法对运动目标进行检测,文档加代码,实现效果较好
代码片段和文件信息
// 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服务软件包
评论
共有 条评论