diff options
author | Thomas White <taw@bitwiz.org.uk> | 2010-06-13 15:30:36 -0700 |
---|---|---|
committer | Thomas White <taw@physics.org> | 2012-02-22 15:26:50 +0100 |
commit | 9b631c29b0d33e1bc26f74a5e10b165fa6d3e5aa (patch) | |
tree | 814de0a75bb8bef488b154fbb93e9bf3521849a6 /src | |
parent | 22e9b30cb0320e67bbdc0f3819108e34c9f18743 (diff) |
calibrate_detector: Specify threshold on command line
Diffstat (limited to 'src')
-rw-r--r-- | src/calibrate_detector.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/calibrate_detector.c b/src/calibrate_detector.c index 63570059..e32cd9a0 100644 --- a/src/calibrate_detector.c +++ b/src/calibrate_detector.c @@ -50,6 +50,7 @@ struct process_args int w; int h; SumMethod sum_method; + double threshold; }; @@ -126,14 +127,14 @@ static void sum_peaks(struct image *image, double *sum) } -static void sum_threshold(struct image *image, double *sum) +static void sum_threshold(struct image *image, double *sum, double threshold) { int x, y; for ( x=0; x<image->width; x++ ) { for ( y=0; y<image->height; y++ ) { float val = image->data[x+image->width*y]; - if ( val > 400.0 ) { + if ( val > threshold ) { sum[x+image->width*y] += val; } } @@ -192,7 +193,7 @@ static void *process_image(void *pargsv) switch ( pargs->sum_method ) { case SUM_THRESHOLD : - sum_threshold(&image, pargs->sum); + sum_threshold(&image, pargs->sum, pargs->threshold); break; case SUM_PEAKS : @@ -252,6 +253,7 @@ int main(int argc, char *argv[]) char *prefix = NULL; char *sum_str = NULL; char *intermediate = NULL; + double threshold = 400.0; SumMethod sum; int nthreads = 1; pthread_t workers[MAX_THREADS]; @@ -271,11 +273,12 @@ int main(int argc, char *argv[]) {"prefix", 1, NULL, 'x'}, {"sum", 1, NULL, 's'}, {"intermediate", 1, NULL, 'p'}, + {"threshold", 1, NULL, 't'}, {0, 0, NULL, 0} }; /* Short options */ - while ((c = getopt_long(argc, argv, "hi:x:j:o:s:p:", + while ((c = getopt_long(argc, argv, "hi:x:j:o:s:p:t:", longopts, NULL)) != -1) { switch (c) { @@ -307,6 +310,10 @@ int main(int argc, char *argv[]) intermediate = strdup(optarg); break; + case 't' : + threshold = atof(optarg); + break; + case 0 : break; @@ -368,6 +375,7 @@ int main(int argc, char *argv[]) worker_args[i]->w = w; worker_args[i]->h = h; worker_args[i]->sum_method = sum; + worker_args[i]->threshold = threshold; } |