Index: trunk/Ohana/src/opihi/cmd.data/imhist.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/imhist.c	(revision 12332)
+++ trunk/Ohana/src/opihi/cmd.data/imhist.c	(revision 12465)
@@ -3,10 +3,17 @@
 int imhist (int argc, char **argv) {
   
-  int i, j, N;
+  int i, j, N, Nbins;
   int sx, sy, nx, ny, bin;
-  float *V;
+  float *V, delta;
   double max, min, dx;
   Vector *vec1, *vec2;
   Buffer *buf;
+
+  delta = 0;
+  if ((N = get_argument (argc, argv, "-delta"))) {
+    remove_argument (N, &argc, argv);
+    delta = atof (argv[N]);
+    remove_argument (N, &argc, argv);
+  }
 
   min = max = 0.0;
@@ -72,9 +79,16 @@
     }
   }
-  dx = (max - min) / 1024.0;
+
+  if (delta == 0) {
+    Nbins = 1024;
+    dx = (max - min) / Nbins;
+  } else {
+    dx = delta;
+    Nbins = (max - min) / dx;
+  }
   gprint (GP_ERR, "max %f, min %f, dx %f\n", max, min, dx);
   
-  vec1[0].Nelements = 1025;
-  vec2[0].Nelements = 1025;
+  vec1[0].Nelements = Nbins + 1;
+  vec2[0].Nelements = Nbins + 1;
   REALLOCATE (vec1[0].elements, float, vec1[0].Nelements);
   bzero (vec1[0].elements, vec1[0].Nelements*sizeof(float));
@@ -85,9 +99,9 @@
     V = (float *)(buf[0].matrix.buffer) + j*buf[0].matrix.Naxis[0] + sx; 
     for (i = 0; i < nx; i++, V++) {
-      bin = MAX (MIN (1024, (*V - min) / dx), 0);
+      bin = MAX (MIN (Nbins, (*V - min) / dx), 0);
       vec2[0].elements[bin] += 1.0;
     }
   }
-  for (i = 0; i < 1025; i++, V++) {
+  for (i = 0; i < Nbins + 1; i++, V++) {
     vec1[0].elements[i] = i*dx + min;
   }
