+ int i,x,y,d;
+ double *val=NULL;
+ char set=1;
+
+ for(i=1;i<argc;i++) {
+
+ bmp_init(&bmp,2);
+ bmp.mode=READ;
+ strcpy(bmp.file,argv[i]);
+ bmp_read_file(&bmp);
+
+ if(set) {
+ val=(double *)malloc(bmp.info.height*sizeof(double));
+ if(val==NULL) {
+ printf("malloc failed!\n");
+ return -23;
+ }
+ memset(val,0,bmp.info.height*sizeof(double));
+ set=0;
+ }
+
+ x=bmp.info.width/2;
+ for(y=0;y<bmp.info.height;y++) {
+ for(d=-DX;d<=DX;d++)
+ val[y]+=(1.0*(bmp.map[x+d].r+bmp.map[x+d].g+bmp.map[x+d].b)/3);
+ x+=bmp.info.width; // jump to [x/2][y+1]
+ }
+
+ bmp_shutdown(&bmp);