aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2022-03-07 15:45:40 +0100
committerThomas White <taw@physics.org>2022-03-07 16:05:11 +0100
commita40d7a356c3a71c83b9f0556f878aea1f607c0af (patch)
treef1da8fb2438d9bdd5c6451a9e3c5e9c9f6cfcc96 /src
parent08f49ce8d560c3d2218e01b215920e55d735341f (diff)
indexamajig: Don't back up image data if not filtering
This takes a non-negligible amount of time (40 ms per frame for 16M), so should be skipped if not needed.
Diffstat (limited to 'src')
-rw-r--r--src/process_image.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/process_image.c b/src/process_image.c
index 36e80b77..f0d315e7 100644
--- a/src/process_image.c
+++ b/src/process_image.c
@@ -224,7 +224,12 @@ void process_image(const struct index_args *iargs, struct pattern_args *pargs,
time_accounts_set(taccs, TACC_FILTER);
set_last_task(last_task, "image filter");
sb_shared->pings[cookie]++;
- prefilter = backup_image_data(image->dp, image->detgeom);
+
+ if ( (iargs->median_filter > 0) || iargs->noisefilter ) {
+ prefilter = backup_image_data(image->dp, image->detgeom);
+ } else {
+ prefilter = NULL;
+ }
if ( iargs->median_filter > 0 ) {
filter_median(image, iargs->median_filter);
@@ -319,7 +324,9 @@ void process_image(const struct index_args *iargs, struct pattern_args *pargs,
image->lambda,
image->detgeom);
- restore_image_data(image->dp, image->detgeom, prefilter);
+ if ( prefilter != NULL ) {
+ restore_image_data(image->dp, image->detgeom, prefilter);
+ }
rn = getcwd(NULL, 0);