資源簡介
公交車系統模式識別,能夠自動識別人頭部位,統計某個座位的人數。
代碼片段和文件信息
#include?“stdafx.h“
#include?
#include?“detHuman.h“
#include?“math.h“
SCircle?CDetHuman::detect1(?BYTE*Img?int?w?int?h)
{
SCircle?myCircle;
int?jblackp;
SLine?myline[100];
int?flag;
int?i=h-5;
int?pxpypxj;
m_nFlag=1;
do{
flag=0;
jblackp=0;
for(int?j=0;j {
if(Img[i*w+j]==0)
{
if(flag==0)
pxj=j;
flag=1;
myline[jblackp].h=caculateHigh1(Imgwij);
myline[jblackp].x=j;
myline[jblackp].y=i;
jblackp++;
}
else
flag=0;
if(flag==0&&jblackp>0)
break;
}
i--;
}while(i>10&&0==jblackp);
if(jblackp<8)
myCircle.degree=0;
else
myCircle.degree=(BYTE)classify(Imgmylinejblackpwh);
if(myCircle.degree>3)
{
location(mylinepxpyjblackpi);
myCircle.x=px+pxj;
myCircle.y=py;
}
return?myCircle;
}
int?CDetHuman::caculateHigh1(?BYTE*Img?int?w?int?yp?int?xp)
{
int?height=0;
while(Img[yp*w+xp]==0)
{
height++;
if(m_nFlag==1)
yp--;
if(m_nFlag==2)
yp--;
if(m_nFlag==3)
yp++;
}
return?height;
}
int?CDetHuman::classify(?BYTE*?Img?SLine?*bLine?int?jblackP?int?w?int?h)
{
int?score=0max=0;
int?area=0;
float?ratiovari;
for(int?i=0;i {
area+=bLine[i].h;
if(max max=bLine[i].h;
}
ratio=float(max)/jblackP;
vari=area/jblackP;
if(ratio<0.1||ratio>3)
return?0;
if(area>(w*h)/5)
score+=5;
if(area>12)
score+=2;
if(max>5)
score+=3;
if(vari>15.0)
score+=4;
return?score;
}
int?CDetHuman::location(?SLine?*bLineint?&xp?int&yp?int?jblackP?int?h)
{
int?max;
for(int?i=0;i {
if(max max=bLine[i].h;
}
xp=int(jblackP/2);
if(m_nFlag==1)
yp=h-int(max/2);
if(m_nFlag==2)
yp=h-int(max/2);
if(m_nFlag==3)
yp=h+int(max/2);
return?0;
}
SCircle?CDetHuman::detect2(BYTE*Img?int?w?int?h)
{
SCircle?myCircle;
int?jblackp;
SLine?myline[100];
int?flag;
int?i=h-10;
int?pxpypxj;
m_nFlag=2;
do{
flag=0;
jblackp=0;
for(int?j=0;j {
if(Img[i*w+j]==0)
{
if(flag==0)
pxj=j;
flag=1;
myline[jblackp].h=caculateHigh1(Imgwij);
myline[jblackp].x=j;
myline[jblackp].y=i;
jblackp++;
}
else
flag=0;
if(flag==0&&jblackp>0)
break;
}
i--;
}while(i>10&&jblackp==0);
if(jblackp<10)
myCircle.degree=0;
else
myCircle.degree=(BYTE)classify(Imgmylinejblackpwh);
if(myCircle.degree>2)
{
location(mylinepxpyjblackpi);
myCircle.x=px+pxj;
myCircle.y=55+py;
}
return?myCircle;
}
SCircle?CDetHuman::detect3(BYTE*Img?int?w?int?h)
{
SCircle?myCircle;
int?jblackp;
SLine?myline[100];
int?flag;
int?i=10;
int?pxpypxj;
m_nFlag=3;
do{
flag=0;
jblackp=0;
for(int?j=0;j {
if(Img[i*w+j]==0)
{
if(flag==0)
pxj=j;
flag=1;
myline[jblackp].h=caculateHigh1(Imgwij
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????9811??2012-04-19?16:24??HumanDet\Debug\detHuman.obj
?????文件??????????0??2012-04-19?16:24??HumanDet\Debug\detHuman.sbr
?????文件????2704384??2012-04-19?16:24??HumanDet\Debug\HumanDet.bsc
?????文件?????135248??2012-04-19?16:24??HumanDet\Debug\HumanDet.exe
?????文件?????341484??2012-04-19?16:24??HumanDet\Debug\HumanDet.ilk
?????文件??????23269??2012-04-19?16:24??HumanDet\Debug\HumanDet.obj
?????文件????5567704??2012-04-19?16:23??HumanDet\Debug\HumanDet.pch
?????文件?????500736??2012-04-19?16:24??HumanDet\Debug\HumanDet.pdb
?????文件???????9708??2012-04-19?16:23??HumanDet\Debug\HumanDet.res
?????文件??????????0??2012-04-19?16:24??HumanDet\Debug\HumanDet.sbr
?????文件??????14953??2012-04-19?16:24??HumanDet\Debug\HumanDetDoc.obj
?????文件??????????0??2012-04-19?16:24??HumanDet\Debug\HumanDetDoc.sbr
?????文件??????45763??2012-04-19?16:24??HumanDet\Debug\HumanDetView.obj
?????文件??????????0??2012-04-19?16:24??HumanDet\Debug\HumanDetView.sbr
?????文件??????20055??2012-04-19?16:24??HumanDet\Debug\MainFrm.obj
?????文件??????????0??2012-04-19?16:24??HumanDet\Debug\MainFrm.sbr
?????文件???????8661??2012-04-19?16:24??HumanDet\Debug\process.obj
?????文件??????????0??2012-04-19?16:24??HumanDet\Debug\process.sbr
?????文件?????106097??2012-04-19?16:23??HumanDet\Debug\StdAfx.obj
?????文件????1376579??2012-04-19?16:23??HumanDet\Debug\StdAfx.sbr
?????文件?????230400??2012-04-26?12:28??HumanDet\Debug\vc60.idb
?????文件?????397312??2012-04-19?16:24??HumanDet\Debug\vc60.pdb
?????文件???????3431??2012-04-19?16:23??HumanDet\detHuman.cpp
?????文件????????551??2012-04-19?16:23??HumanDet\detHuman.h
?????文件??????31104??2012-04-19?16:23??HumanDet\HumanDet.aps
?????文件???????3498??2012-04-19?16:23??HumanDet\HumanDet.clw
?????文件???????4245??2012-04-19?16:23??HumanDet\HumanDet.cpp
?????文件???????4852??2012-04-19?16:23??HumanDet\HumanDet.dsp
?????文件????????539??2012-04-19?16:23??HumanDet\HumanDet.dsw
?????文件???????1378??2012-04-19?16:23??HumanDet\HumanDet.h
............此處省略36個文件信息
- 上一篇:Altium Designer 14 中文詳細教程
- 下一篇:SAP中文版幫助文檔
評論
共有 條評論