Browse Source

Add --radio-step switch

This controls how many radios are actually read and used. 1 is default and means
every radiograph.
Matthias Vogelgesang 9 years ago
parent
commit
b75a34161f
3 changed files with 5 additions and 2 deletions
  1. 2 0
      lamino.c
  2. 2 2
      reco.c
  3. 1 0
      reco.h

+ 2 - 0
lamino.c

@@ -150,6 +150,7 @@ parse_params (Params *params, int argc, char **argv)
         { "radios", 0, 0, G_OPTION_ARG_STRING, &params->radios, "Radios", "[path|glob]" },
         { "darks", 0, 0, G_OPTION_ARG_STRING, &params->darks, "Darks", "[path|glob]" },
         { "flats", 0, 0, G_OPTION_ARG_STRING, &params->flats, "Flats", "[path|glob]" },
+        { "radio-step", 0, 0, G_OPTION_ARG_INT, &params->radio_step, "Radio step", "[int]" },
         { "dark-scale", 0, 0, G_OPTION_ARG_DOUBLE, &params->dark_scale, "Dark scale", "[float]" },
         { "output", 0, 0, G_OPTION_ARG_STRING, &params->output, "Output", "[path]" },
         { "theta", 0, 0, G_OPTION_ARG_DOUBLE, &params->theta, "Tilt (theta)", "[float]" },
@@ -206,6 +207,7 @@ main (int argc, char **argv)
         .height = 0,
         .num_radios = 0,
         .num_darks = 1,
+        .radio_step = 1,
         .theta = G_MAXDOUBLE,
         .dark_scale = 1.0,
         .tau = 1.0,

+ 2 - 2
reco.c

@@ -119,7 +119,7 @@ reco_graph_new (Params *params)
     xl = xr = (padded_width - params->width) / 2;
     yt = yb = (padded_height - params->height) / 2;
 
-    angle_step = (G_PI * 2.0) / params->num_radios;
+    angle_step = (G_PI * 2.0) / params->num_radios * params->radio_step;
     theta_rad = params->theta / 360. * G_PI * 2;
 
     info ("Axis     x=%.1f  y=%.1f  variation=%.1f\n",
@@ -135,7 +135,6 @@ reco_graph_new (Params *params)
           params->v_origin[0], params->v_origin[1], params->v_origin[2],
           params->v_size[0], params->v_size[1], params->v_size[2]);
 
-
     g_object_set (data->fft1, "dimensions", 2, NULL);
     g_object_set (data->fft2, "dimensions", 2, NULL);
     g_object_set (data->ifft, "dimensions", 2, NULL);
@@ -205,6 +204,7 @@ update_reader (UfoTaskNode *reader, Params *params)
     g_object_set (reader,
                   "path", params->radios,
                   "end", params->num_radios - 1,
+                  "step", params->radio_step,
                   NULL);
 }
 

+ 1 - 0
reco.h

@@ -13,6 +13,7 @@ typedef struct {
     gint height;
     guint num_radios;
     guint num_darks;
+    guint radio_step;
     gdouble dark_scale;
     gdouble theta;
     gdouble tau;