Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include <stdlib.h>
- #include <string.h>
- int main(int argc, char *argv[])
- {
- //Decralation of variables
- FILE *fpi1,*fpi2,*fpi3,*fpo;
- int id,ix,iy,i,width,height,time,o,p,q,sec;
- float x,y,z;
- unsigned char dn;
- unsigned char *buffer;
- unsigned char color[18][3];
- int *imeco1;
- float *imeco2;
- int imeco_ix,imeco_iy;
- unsigned char r,g,b;
- char line[4];
- long k=0;
- long num;
- int gps_no;
- int xy_num;
- int np1=2; //numbers of parameters
- int np2=3;
- //point data
- if((fpi1=fopen(argv[1],"r"))==NULL)
- {
- printf ("The file can't be opened. The program is exit.\n");
- return 0;
- }
- //image data
- if((fpi2=fopen(argv[2],"rb"))==NULL)
- {
- printf ("The file can't be opened. The program is exit.\n");
- return 0;
- }
- if((fpo=fopen(argv[3],"w"))==NULL)
- {
- printf ("The file can't be opened. The program is exit.\n");
- return 0;
- }
- width = atoi(argv[4]); printf("W = %d,", width); //2000
- height = atoi(argv[5]); printf("H = %d\n", height); //1500
- /*
- r=atoi(argv[6]);
- g=atoi(argv[7]);
- b=atoi(argv[8]);
- */
- //2 : x y
- //imeco=(int*)malloc(xy_num*num); //for
- //fread((int*)imeco,sizeof(int),xy_num*num,fpi1);
- //for image data
- buffer= (unsigned char*)malloc(width*height*3);
- fread((unsigned char*)buffer,sizeof(char),width*height*3,fpi2);
- //x y position on that time
- //printf("ix=%d\n",ix);
- //printf("iy=%d\n",iy);
- k=0;
- while(fscanf(fpi1,"%d %d %f %f %f",&ix,&iy,&x,&y,&z)!=EOF)
- {
- k=k+1;
- }
- printf("k=%d\n",k);
- num=k; //real total_column
- imeco1=(int *)malloc(8*num);
- // imeco2=(float *)malloc(12*num);
- printf("imeco1=%d\n",2*num);
- printf("imeco2=%d\n",3*num);
- fseek(fpi1,0,SEEK_SET);
- k=0;
- while(fscanf(fpi1,"%d %d %f %f %f",&ix,&iy,&x,&y,&z)!=EOF)
- {
- imeco1[k*np1] =ix;
- imeco1[k*np1+1]=iy;
- //printf("id1=%d,id2=%d\n",k*np1,k*np1+1);
- // imeco2[k*np2]=x;
- // imeco2[k*np2+1]=y;
- //imeco2[k*np2+2]=z;
- //printf("id2-1=%d,id2-2=%d,id2-3=%d\n",k*np2,k*np2+1,k*np2+2);
- // printf("%d %d %f %f %f\n",ix,iy,x,y,z);
- printf("k=%d\n",k);
- k=k+1;
- }
- // printf("check3\n");
- for(i=0;i<k;i++)
- {
- imeco_ix=imeco1[i*2];
- imeco_iy=imeco1[i*2+1];
- r=buffer[3*(imeco_iy*width+imeco_ix)];
- g=buffer[3*(imeco_iy*width+imeco_ix)+1];
- b=buffer[3*(imeco_iy*width+imeco_ix)+2];
- fprintf(fpo,"%f %f %f %d %d %d\n",imeco2[i*3],imeco2[i*3+1],imeco2[i*3+2],r,g,b);
- }
- //colored point on that position
- /*
- for(i=0;i<np*num;i++) //xy_num=gps_no*np; num:total_time//gps_no*total_time
- {
- int imeco_time;
- printf("time=%d\n",time);
- imeco_time=imeco[i*4+1];
- printf("imeco[i*4+1]=%d\n",imeco_time);
- if(imeco[i*4+1]==time)
- {
- int id_no;
- int imeco_ix,imeco_iy;
- id_no=imeco[i*4];
- imeco_ix=imeco[i*4+2];
- imeco_iy=imeco[i*4+3];
- buffer[3*(imeco_iy*width+imeco_ix)]=color[id_no][0];
- buffer[3*(imeco_iy*width+imeco_ix)+1]=color[id_no][1];
- buffer[3*(imeco_iy*width+imeco_ix)+2]=color[id_no][2];
- // buffer[3*(iy*width+ix)+1]=color[k][1];
- // buffer[3*(iy*width+ix)+2]=color[k][2];
- printf("imeco_ix=%d\n",imeco_ix);
- printf("imeco_iy=%d\n",imeco_iy);
- printf("imeco_ix=%d\n",color[id_no][0]);
- printf("imeco_iy=%d\n",color[id_no][1]);
- }
- }
- */
- //record colored point to file (write) on the background picture
- /*for(i=0;i<height*3;i++)
- {
- for(j=0;j<width;j++)
- {
- dn=buffer[i*width+j];
- fwrite(&dn,sizeof(char),1,fpo);
- }*/
- free(buffer);
- free(imeco1);
- free(imeco2);
- fclose(fpi1);
- fclose(fpi2);
- fclose(fpo);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement