From cd6e6ec86756756a5cbe8138c79e7d4c7bd3dc3a Mon Sep 17 00:00:00 2001 From: Thomas White Date: Wed, 5 Nov 2008 12:25:48 +0000 Subject: Zaefferer peak search: don't duplicate reflections so much --- src/image.c | 2 ++ src/itrans-zaefferer.c | 13 +++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/image.c b/src/image.c index d8bba0c..800ea72 100644 --- a/src/image.c +++ b/src/image.c @@ -9,6 +9,7 @@ * */ +#define _GNU_SOURCE 1 #include #include #include @@ -140,6 +141,7 @@ ImageFeature *image_feature_closest(ImageFeatureList *flist, double x, double y, return &flist->features[closest]; } + *d = +INFINITY; return NULL; } diff --git a/src/itrans-zaefferer.c b/src/itrans-zaefferer.c index f0eec9e..69d2566 100644 --- a/src/itrans-zaefferer.c +++ b/src/itrans-zaefferer.c @@ -92,12 +92,21 @@ ImageFeatureList *itrans_peaksearch_zaefferer(ImageRecord *imagerecord) { if ( !did_something ) { + double d; + int idx; + assert(mask_x=0); assert(mask_y>=0); - image_add_feature(flist, mask_x, mask_y, imagerecord, - image[mask_x + width*mask_y]); + + /* Check for a feature at exactly the same coordinates */ + image_feature_closest(flist, mask_x, mask_y, &d, &idx); + + if ( d > 1.0 ) { + image_add_feature(flist, mask_x, mask_y, imagerecord, + image[mask_x + width*mask_y]); + } } -- cgit v1.2.3