3
3wccdel
Unregistered / Unconfirmed
GUEST, unregistred user!
void CMyDoc::OnCloudSort()
{
int i,j,n,k,m,l;
//必须先做云检测
int flag,t;
float qqf;
CString OutMessage;
flag=1;//第几块云团
for(i=0;i<Width;i++)
for(j=0;j<Height;j++)
{
if(ShowBuffer[j*Width+i]!=0&&StatsticBuffer[j*Width+i]==-1)
//ShowBuffer[j*Width+i]!=0表示为云团
//StatsticBuffer[j*Width+i]==-1表示没有被遍历过,也就是说该点没有被判别为哪块云
{
StatsticBuffer[j*Width+i]=flag;
find(i,j,ShowBuffer,flag);
flag++;
}
}
}
//buf 所要进行划分的数组
void CMyDoc::find(int i,int j, unsigned char *buf,int flag)
{
int x,y,n,k,l;
POINT* stack=new POINT[Width*Height];//图像的宽度*高度Width*Height
n=0;
for(k=-1;k<2;k++)
for(l=-1;l<2;l++)
{
if((j+l)>=0&&(j+l)<Height&&(i+k)>=0&&(i+k)<Width)
{
if(buf[(j+l)*Width+i+k]!=0&&StatsticBuffer[(j+l)*Width+i+k]==-1)
{
StatsticBuffer[(j+l)*Width+i+k]=flag;
stack[n].x=i+k;
stack[n].y=j+l;
n++;
}
}
}
while(n>0)
{
n--;
x=stack[n].x;
y=stack[n].y;
for(k=-1;k<2;k++)
for(l=-1;l<2;l++)
{
if((y+l)>=0&&(y+l)<Height&&(x+k)>=0&&(x+k)<Width)
{
if(buf[(y+l)*Width+x+k]!=0&&StatsticBuffer[(y+l)*Width+x+k]==-1)
{
StatsticBuffer[(y+l)*Width+x+k]=flag;
stack[n].x=x+k;
stack[n].y=y+l;
n++;
}
}
}
}
delete stack;
}
{
int i,j,n,k,m,l;
//必须先做云检测
int flag,t;
float qqf;
CString OutMessage;
flag=1;//第几块云团
for(i=0;i<Width;i++)
for(j=0;j<Height;j++)
{
if(ShowBuffer[j*Width+i]!=0&&StatsticBuffer[j*Width+i]==-1)
//ShowBuffer[j*Width+i]!=0表示为云团
//StatsticBuffer[j*Width+i]==-1表示没有被遍历过,也就是说该点没有被判别为哪块云
{
StatsticBuffer[j*Width+i]=flag;
find(i,j,ShowBuffer,flag);
flag++;
}
}
}
//buf 所要进行划分的数组
void CMyDoc::find(int i,int j, unsigned char *buf,int flag)
{
int x,y,n,k,l;
POINT* stack=new POINT[Width*Height];//图像的宽度*高度Width*Height
n=0;
for(k=-1;k<2;k++)
for(l=-1;l<2;l++)
{
if((j+l)>=0&&(j+l)<Height&&(i+k)>=0&&(i+k)<Width)
{
if(buf[(j+l)*Width+i+k]!=0&&StatsticBuffer[(j+l)*Width+i+k]==-1)
{
StatsticBuffer[(j+l)*Width+i+k]=flag;
stack[n].x=i+k;
stack[n].y=j+l;
n++;
}
}
}
while(n>0)
{
n--;
x=stack[n].x;
y=stack[n].y;
for(k=-1;k<2;k++)
for(l=-1;l<2;l++)
{
if((y+l)>=0&&(y+l)<Height&&(x+k)>=0&&(x+k)<Width)
{
if(buf[(y+l)*Width+x+k]!=0&&StatsticBuffer[(y+l)*Width+x+k]==-1)
{
StatsticBuffer[(y+l)*Width+x+k]=flag;
stack[n].x=x+k;
stack[n].y=y+l;
n++;
}
}
}
}
delete stack;
}