⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 blxy54.cpp

📁 基于小波的SAR斑点处理
💻 CPP
字号:
#include "stdafx.h"
#include "stdlib.h"
#include <math.h>
#include "string.h"
#include "blxy54.h"

void definite_ellipsolid_parameter()
{
	double  aa,e4,e6,e8,ea,ec;

	a=A;
	e2=E2;
	e22=e2/(1.0-e2);
	a2=a*a;
	b2=a2*(1-e2);
	e4=e2*e2;
	e6=e4*e2;
	e8=e6*e2;
	ea=e8*e2;
	ec=ea*e2;
	aa=a*(1-e2);
	c1=aa*(e2*3/4+e4*45/64+e6*175/256+e8*11025/16384+ea*43659/65536
		+ec*693693/1048576);
	c2=aa*(e4*15/32+e6*175/384+e8*3675/8192+ea*14553/32768
		+ec*231231/524288);
	c3=aa*(e6*35/96+e8*735/2048+ea*14553/40960+ec*231231/655360); 
	c4=aa*(e8*315/1024+ea*6237/20480+ec*99099/327680);  
	c0=(c1+aa);
}

void bltoxy(double b, double l, double* x,double* y)
{
    double  X,t,t2,cosb,cosb2,sinb,sinb2,eta2,n,m,m2,m4;

    sinb=sin(b);
    sinb2=sinb*sinb;
    cosb=cos(b);
    cosb2=cosb*cosb;
    X=c0*b-sinb*cosb*(c1+sinb2*(c2+sinb2*(c3+sinb2*c4)));

    eta2=e22*cosb2;
    t=sinb/cosb;
    t2=t*t;
    n=a2/sqrt(a2*cosb2+b2*sinb2);
    m=cosb*l;
    m2=m*m;
    m4=m2*m2;

    *y=n*m*(1.0+m2*(eta2+1.0-t2)/6.0+m4*(t2*(t2-18.0)
	+5.0+eta2*(14.0-58.0*t2))/120.0)+500000;
    *x=X+0.5*n*t*(m2+(5-t2+eta2*(9+4*eta2))*m4/12+
	(61-t2*(t2-58))*m4*m2/360);
}


void trbltoxy(int width, int zone,double b,double l,double* x, double* y)
{
	l=(l-(zone-1)*width-3)/RO;
	b/=RO;
	bltoxy(b,l,x,y);
/*      *y +=zone*1000000;*/
}

/*
main()
{int i,j,num,d=0;
 int width,zone;
 double *b,*l,*x,*y,meanx,meany;
 char fname1[50],fname2[50],fname3[50];
 FILE *rfp,*wfp,*mfp;
 do{
 printf("Enter input file name:");
 scanf("%s",fname1);
 printf("\n");
 printf("Enter width and zone:");
 scanf("%d %d",&width,&zone);
 printf("\n");
 sprintf(fname2,"%s.54",fname1);
 sprintf(fname3,"%s.m",fname1);
 if(!(rfp=fopen(fname1,"r")))
   {printf("Cann't open input file %s\n",fname1);
    exit(1);
   }
 if(!(wfp=fopen(fname2,"w")))
   {printf("Cann't open output file %s\n",fname2);
    exit(1);
   }
 if(!(mfp=fopen(fname3,"w")))
   {printf("Cann't open output file %s\n",fname2);
    exit(1);
   }
// fscanf(rfp,"%d",&num);
// fprintf(wfp,"%d\n",num);
// printf("%d\n",num);
 num=0;
 do{
	do{
	}while(fgetc(rfp) != '\n');
	num++;
 }while(fgetc(rfp) != 'E');
 printf("num = %d\n",num);
// fprintf(wfp,"%d\n",num);
 fprintf(wfp,"1\n");
 if(!(b=malloc(sizeof(double)*num)))
  {printf("No more space for b\n");
   exit(1);
  }
 if(!(l=malloc(sizeof(double)*num)))
  {printf("No more space for l\n");
   exit(1);
  }
 rewind(rfp);
 for(i=0;i<num;i++)
   fscanf(rfp,"%d,%lf,%lf",&j,&b[i],&l[i]);
 printf("%d %lf %lf\n",j,b[1],l[1]);
 if(j == 0)
  {printf("Read fail!\n");
   exit(1);
  }
 if(!(x=malloc(sizeof(double)*num)))
  {printf("No more space for xx\n");
   exit(1);
  }
 if(!(y=malloc(sizeof(double)*num)))
  {printf("No more space for yy\n");
   exit(1);
  }meanx=0;meany=0;
 definite_ellipsolid_parameter();
 for(i=0;i<num;i++)
 {trbltoxy(width,zone,l[i],b[i],&x[i],&y[i]);
  meanx+=x[i];meany+=y[i];
 }
 meanx=meanx/num;meany=meany/num;
 printf("bl to xy :%lf %lf %lf %lf meanx=%lf meany=%lf\n",b[2],l[2],x[2],y[2],meanx,meany);
 fprintf(mfp,"meanx=%lf meany=%lf\n",meanx,meany);
 for(i=0;i<num;i++)
   {j=i+1;
    fprintf(wfp,"%11.2lf,%11.2lf\n",x[i],y[i]);
   }
 fprintf(wfp,"END\n");
 fprintf(wfp,"END");
 fclose(rfp);fclose(wfp);fclose(mfp);free(b);free(l);free(x);free(y);
 printf("output file name is %s,\ndo you want to trans the other?(0=no,1=yes):",fname2);
 scanf("%d",&d);
 printf("\n");
 }while(d != 0);
}
*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -