for(k=i;k<i+m;k++)
for(l=j-m;l<j-k+i;l++)
{u0[6]+=AA[k*width+l];}
u0[6]=u0[6]/(2*m+1)/(2*n+1)*8;
for(k=i;k<i+m;k++)
for(l=j-m;l<j-k+i;l++)
{d11[6]+=(AA[k*width+l]-u0[6])*(AA[k*width+l]-u0[6]);}
d11[6]=d11[6]/(2*m+1)/(2*n+1)*8;
//////////////////////////////
for(k=i-m;k<i;k++)
for(l=j-m;l<j+k+i;l++)
{u0[7]+=AA[k*width+l];}
u0[7]=u0[7]/(2*m+1)/(2*n+1)*8;
for(k=i-m;k<i;k++)
for(l=j-m;l<j+k+i;l++)
{d11[7]+=(AA[k*width+l]-u0[7])*(AA[k*width+l]-u0[7]);}
d11[7]=d11[7]/(2*m+1)/(2*n+1)*8;
while(z<7)//执行区域删减循环
{ //////////////////////////////计算方差最大最小的区域
for(i1=0;i1<8;i1++)
for(j1=0;j1<z;j1++)
{if((d11[i1]>dmax)&&(i1!=I[j1]))
dmax=d11[i1],Imax=i1;
if(d11[i1]<min)
min=d11[i1];
}
if(min<=d0*u*u)
break;//符合缩小窗口条件,退出区域删减循环,进入缩小窗口循环
//计算删减后总的保留区域的均值
I[z++]=Imax;
u=0;
int count=0;
for(i1=0;i1<z;i1++)
for(j1=0;j1<8;j1++)
{ if(j1!=I[i1])
u+=u0[i1];
count++;
}
u=u/count;
|