Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h> /*このプログラムにstandart input /output headerを含む*/
- #include <stdlib.h>
- #include <string.h>
- #include <time.h>
- int main(int argc,char *argv[])
- {
- FILE *fpi1,*fpo; /*入力ファイルポインタ*/
- int i,j,height,width,header,xg,yg;
- double axg,ayg,adn; /*int型の最大値、最小値の変数の宣言*/
- unsigned char dn; /*RVIの変数の宣言*/
- unsigned char *file1;
- //float *file3; /*file1と呼ばれるfloat型のポインタ*/
- float start,end;
- start=clock();
- /*引数の確認*/
- if(argc!=4)
- {
- 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]);
- exit(1);
- }
- /*入力ファイルデータの表示*/
- printf("OPEN FILE NAME:%s\n",argv[1]);
- /*----引数の変数への渡し----*/
- width = atoi(argv[2]);printf("W =%d,",width); /*入力するご図ファイルの横画素数*/
- height = atoi(argv[3]);printf("H =%d\n",height); /*入力する画像ファイルの縦画素数*/
- /*----メモリの自動割当----*/
- file1 = (unsigned char *)malloc(width*height*sizeof(char));
- //file3 = (float *)malloc(width*height*sizeof(float));
- /*---入力R画像ファイルのオープン開始----*/
- if((fpi1=fopen(argv[1],"rb"))==NULL)
- {/*ファイルのオープン*/
- fprintf(stderr,"input file open error\n");
- exit(1);
- }
- fread((unsigned char *)file1,sizeof(char),width*height,fpi1);
- /*画像ファイルのオープン終了*/
- /*
- if((fpo=fopen(argv[3],"wb"))==NULL)
- {
- fprintf(stderr,"output file open error\n");
- exit(1);
- }
- fread((float *)file3,sizeof(float),width*height,fpo);
- */
- adn=0;
- axg=0;
- ayg=0;
- /*RVIを求めるプログラム*/
- for(i=0;i<height;i++)
- {
- for(j=0;j<width;j++)
- {
- dn=file1[i*width+j];
- //axg= (double)dn*(j-2499)+axg;
- //ayg= (double)dn*(i-2499)+ayg;
- axg= (double)dn*j+axg;
- ayg= (double)dn*i+ayg;
- adn= (double)dn+adn;
- //printf("dn=%d\n",dn);
- //printf("adn =%d\n",adn);
- //printf("axy =%d\n",axg);
- //printf("ayg =%d\n",ayg);
- }
- }
- xg = (int)(axg/adn);
- yg = (int)(ayg/adn);
- printf("adn =%lf\n",adn);
- printf("axy =%lf\n",axg);
- printf("ayg =%lf\n",ayg);
- printf("xg =%d\n",xg);
- printf("yg =%d\n",yg);
- free(file1);
- //free(file3);
- fclose(fpi1);
- //fclose(fpo);
- end=clock();
- //printf("開始時間は, %f秒\n",start/1000);
- //printf("終了時間は, %f秒\n",end/1000);
- //printf("経過時間は, %f秒\n",(end-start)/1000);
- }
Advertisement
Add Comment
Please, Sign In to add comment