ait-survey

centroid

Jan 27th, 2015
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.52 KB | None | 0 0
  1. #include <stdio.h> /*このプログラムにstandart input /output headerを含む*/
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <time.h>
  5.  
  6. int main(int argc,char *argv[])
  7. {
  8.     FILE *fpi1,*fpo;               /*入力ファイルポインタ*/
  9.     int i,j,height,width,header,xg,yg;
  10.     double axg,ayg,adn;   /*int型の最大値、最小値の変数の宣言*/
  11.     unsigned char dn;              /*RVIの変数の宣言*/
  12.     unsigned char *file1;
  13.     //float *file3;             /*file1と呼ばれるfloat型のポインタ*/
  14.     float start,end;
  15.  
  16.     start=clock();
  17.  
  18.     /*引数の確認*/
  19.     if(argc!=4)
  20.     {
  21.      fprintf(stderr,"Usage:%s\n(2)Input_R_READ_filename\n(3)Input_NIR_READ_filename\n(4)Output_RVI_filename¥n(5)width¥n(6)height¥n(7)header_size¥n",argv[0]);
  22.     exit(1);
  23.      }
  24.     /*入力ファイルデータの表示*/
  25.     printf("OPEN FILE NAME:%s\n",argv[1]);
  26.     /*----引数の変数への渡し----*/
  27.     width = atoi(argv[2]);printf("W =%d,",width);  /*入力するご図ファイルの横画素数*/
  28.     height = atoi(argv[3]);printf("H =%d\n",height); /*入力する画像ファイルの縦画素数*/
  29.     /*----メモリの自動割当----*/
  30.     file1 = (unsigned char *)malloc(width*height*sizeof(char));
  31.     //file3 = (float *)malloc(width*height*sizeof(float));
  32.     /*---入力R画像ファイルのオープン開始----*/
  33.     if((fpi1=fopen(argv[1],"rb"))==NULL)
  34.     {/*ファイルのオープン*/
  35.     fprintf(stderr,"input file open error\n");
  36.     exit(1);
  37.     }
  38.     fread((unsigned char *)file1,sizeof(char),width*height,fpi1);
  39.     /*画像ファイルのオープン終了*/
  40.     /*
  41.     if((fpo=fopen(argv[3],"wb"))==NULL)
  42.     {
  43.     fprintf(stderr,"output file open error\n");
  44.     exit(1);
  45.     }
  46.     fread((float *)file3,sizeof(float),width*height,fpo);
  47.     */
  48.     adn=0;
  49.     axg=0;
  50.     ayg=0;
  51.     /*RVIを求めるプログラム*/
  52.     for(i=0;i<height;i++)
  53.     {
  54.     for(j=0;j<width;j++)
  55.     {
  56.         dn=file1[i*width+j];
  57.         //axg= (double)dn*(j-2499)+axg;
  58.         //ayg= (double)dn*(i-2499)+ayg;
  59.         axg= (double)dn*j+axg;
  60.         ayg= (double)dn*i+ayg;
  61.         adn= (double)dn+adn;
  62.         //printf("dn=%d\n",dn);
  63.         //printf("adn =%d\n",adn);
  64.         //printf("axy =%d\n",axg);
  65.         //printf("ayg =%d\n",ayg);
  66.     }
  67.     }
  68.     xg = (int)(axg/adn);
  69.     yg = (int)(ayg/adn);
  70.     printf("adn =%lf\n",adn);
  71.     printf("axy =%lf\n",axg);
  72.     printf("ayg =%lf\n",ayg);
  73.     printf("xg =%d\n",xg);
  74.     printf("yg =%d\n",yg);
  75.     free(file1);
  76.     //free(file3);
  77.     fclose(fpi1);
  78.     //fclose(fpo);
  79.     end=clock();
  80.     //printf("開始時間は, %f秒\n",start/1000);
  81.     //printf("終了時間は, %f秒\n",end/1000);
  82.     //printf("経過時間は, %f秒\n",(end-start)/1000);
  83.  
  84. }
Advertisement
Add Comment
Please, Sign In to add comment