資源簡介
統計車流量,對于研究這方面的具有很好的指導作用

代碼片段和文件信息
#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
- 上一篇:上海市地圖-shp格式-鄉鎮級別
- 下一篇:移動機器人路徑規劃
評論
共有 條評論