BOOL CImgProcess::HoughCir(int *a0,int *b0,int *r0)
{
int hei=GetHeight(),wid=GetWidthPixel();
int i=0,j=0,a=0,b=0,r=0,r1=0,t=0,bt=0;
int Add[60][60][60];
memset(Add,0,sizeof(int)*216000);
for(i=0;i<60;i++){
for(j=0;j<60;j++){
for(a=0;a<60;a++){
Add[i][j][a]=0;
}
}
}
for(a=210;a<270;a++){
for(b=290;b<350;b++){
for(i=0;i<hei;i++){
for(j=0;j<wid;j++){
bt=GetGray(j,i);
if(bt==255){
r1=(i-a)*(i-a)+(j-b)*(j-b);
r=sqrt((double)r1);
if(r>160&&r<220){
Add[a-210][b-290][r-160]++;
}
}
}
}
}
}
for(a=210;a<270;a++){
for(b=290;b<350;b++){
for(r=160;r<220;r++){
if(Add[a-210][b-290][r-160]>t){
t=Add[a-210][b-290][r-160];
*a0=a;
*b0=b;
*r0=r;
}
}
}
}
delete []Add;
return TRUE;
}