• 大小: 819KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-09
  • 语言: 其他
  • 标签: 目标识别  

资源简介

统计车流量,对于研究这方面的具有很好的指导作用

资源截图

代码片段和文件信息

#include
#include
#include
#include
#include
#include
//#define N 500
#define E 3.3554//本文用基于T分布的变化监测
int main()
{ int ijkdif[3][9]n=1mc[8][2]={{01}{-11}{-10}{-1-1}{0-1}{1-1}{10}{11}}e[8]={10101010};
char *a1*a2*a3**b1**b2**b3;
float s[3]f[3]t[3]sum[240][960];
IplImage*fram*pimg1*pimg2*pimg3;
//读视频
printf(“稍微等一会儿\n“);
CvCapture *capture;

capture=cvCreateFileCapture(“highwayII_raw.AVI“);//为了方便将测试视频重命名为test.avi
fram=cvQueryframe(capture);
cvSaveImage(“test1.bmp“fram);
pimg1=cvLoadImage(“test1.bmp“1);
//创建一个同规格的图像用来存储背景图像
CvSize size=cvSize(pimg1->widthpimg1->height);
pimg3=cvCreateImage(sizepimg1->depth3);
a3=pimg3->imageData;
b3=new char*[pimg3->height];
for(i=0;iheight;i++)
b3[i]=&a3[i*pimg3->widthStep];

int **count;
count=new int*[240];
for(i=0;i<240;i++)
count[i]=new int[320];
//初始化
//printf(“1“);
for(i=0;i<240;i++)
for(j=0;j<320;j++)
count[i][j]=0;
//printf(“1\n“);
for(i=0;i<240;i++)
for(j=0;j<960;j++)
sum[i][j]=0;
//printf(“1\n“);
while(n<200)//取前100帧图像用于重建背景
{//一维数组变二维
b1=new char*[pimg1->height];
a1=pimg1->imageData;
for(i=0;iheight;i++)
b1[i]=&a1[i*pimg1->widthStep];

fram=cvQueryframe(capture);
if(!fram)
break;
cvSaveImage(“test2.bmp“fram);
pimg2=cvLoadImage(“test2.bmp“1);

b2=new char*[pimg2->height];
a2=pimg2->imageData;
for(i=0;iheight;i++)
b2[i]=&a2[i*pimg2->widthStep];
for(i=0;i<3;i++)
{
s[i]=0;
f[i]=0;
}
//printf(“正常1\n“);
for(i=1;iheight-1;i++)
{
for(j=1;jwidth-1;j++)
{ for(k=0;k<8;k++)
{ //选取领域的窗口为3*3对每一个像素点进行T分布变换监测
dif[0][k]=unsigned char(b2[i+c[k][0]][3*(j+c[k][1])])-unsigned char(b1[i+c[k][0]][3*(j+c[k][1])]);
dif[1][k]=unsigned char(b2[i+c[k][0]][3*(j+c[k][1])+1])-unsigned char(b1[i+c[k][0]][3*(j+c[k][1])+1]);
dif[2][k]=unsigned char(b2[i+c[k][0]][3*(j+c[k][1])+2])-unsigned char(b1[i+c[k][0]][3*(j+c[k][1])+2]);

f[0]+=dif[0][k];
f[1]+=dif[1][k];
f[2]+=dif[2][k];
}
dif[0][8]=unsigned char(b2[i][3*j])-unsigned char(b1[i][3*j]);
dif[1][8]=unsigned char(b2[i][3*j+1])-unsigned char(b1[i][3*j+1]);
dif[2][8]=unsigned char(b2[i][3*j+2])-unsigned char(b1[i][3*j+2]);
f[0]+=dif[0][8];
f[1]+=dif[1][8];
f[2]+=dif[2][8];
f[0]/=9;
f[1]/=9;
f[2]/=9;
for(k=0;k<9;k++)
{
s[0]+=(dif[0][k]-f[0])*(dif[0][k]-f[0]);
s[1]+=(dif[1][k]-f[1])*(dif[1][k]-f[1]);
s[2]+=(dif[2][k]-f[2])*(dif[2][k]-f[2]);
}
s[0]/=8;
s[1]/=8;
s[2]/=8;
s[0]=sqrt(s[0]);s[1]=sqrt(s[1]);s[2]=sqrt(s[2]);
//计算t
t[0]=(3*f[0]/s[0]);
t[1]=(3*f[1]/s[1]);
t[2]=(3*f[2]/s[2]);
if(fabs(t[0]) {
sum[i][3*j]+=(unsigned char)b2[i][3*j];
sum[i][3*j+1]+=(unsigned char)b2[i][3*j+

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        766  2011-03-08 15:30  用OpenCV实现的利用监控摄像头对高速路口车流量计数的程序\使用说明请参看右侧注释===〉〉.txt

     文件        766  2011-03-08 15:30  用OpenCV实现的利用监控摄像头对高速路口车流量计数的程序\车流量计数\使用说明请参看右侧注释===〉〉.txt

     文件       3726  2011-03-07 20:39  用OpenCV实现的利用监控摄像头对高速路口车流量计数的程序\车流量计数\大津法.CPP

     文件     192594  2011-03-07 20:39  用OpenCV实现的利用监控摄像头对高速路口车流量计数的程序\车流量计数\大津法.exe

     文件       4058  2011-03-07 20:44  用OpenCV实现的利用监控摄像头对高速路口车流量计数的程序\车流量计数\背景重建.cpp

     文件     208982  2011-03-07 20:47  用OpenCV实现的利用监控摄像头对高速路口车流量计数的程序\车流量计数\背景重建.exe

     文件       4578  2011-03-07 20:43  用OpenCV实现的利用监控摄像头对高速路口车流量计数的程序\车流量计数\车辆计数.cpp

     文件     958976  2011-03-07 21:02  用OpenCV实现的利用监控摄像头对高速路口车流量计数的程序\车流量计数\车辆计数.doc

     文件     192598  2011-03-07 20:46  用OpenCV实现的利用监控摄像头对高速路口车流量计数的程序\车流量计数\车辆计数.exe

     目录          0  2013-05-01 13:31  用OpenCV实现的利用监控摄像头对高速路口车流量计数的程序\车流量计数

     目录          0  2013-05-01 13:31  用OpenCV实现的利用监控摄像头对高速路口车流量计数的程序

----------- ---------  ---------- -----  ----

              1567044                    11


评论

共有 条评论