fixed nlsop for packaging ..
[physik/nlsop.git] / linescan.c
index 11a2b5f..bbabc66 100644 (file)
 #include <stdio.h>
 #include "bmp.h"
 
+#define DX (3)
+
 int main(int argc,char **argv) {
 
   t_bmp bmp;
-  int x,y;
+  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);
 
-  if(argc!=2) {
-    printf("usage: %s <filename>\n",argv[0]);
-    return -1;
   }
 
-  bmp_init(&bmp,2);
-  bmp.mode=READ;
-  strcpy(bmp.file,argv[1]);
-
-  bmp_read_file(&bmp);
-
-  dprintf(2,"width = %d\n",bmp.info.width);
-
-  x=bmp.info.width/2;
   for(y=0;y<bmp.info.height;y++) {
-    printf("%f %d\n",1.0*(bmp.info.height/2-y)/(bmp.info.width*3),
-                     (bmp.map[x].r+bmp.map[x].g+bmp.map[x].b)/3);
-    x+=bmp.info.width;
+    val[y]/=(argc-1);
+    printf("%f %f\n",1.0*(bmp.info.height/2-y)/(bmp.info.width*3),val[y]);
+    //printf("%f %f\n",1.0*(bmp.info.height/2-y)/(bmp.info.width),val[y]);
   }
 
-  bmp_shutdown(&bmp);
+  free(val);
 
   return 1;
 }