diff options
-rw-r--r-- | src/image.c | 2 | ||||
-rw-r--r-- | 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 <stdlib.h> #include <assert.h> #include <math.h> @@ -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<width); assert(mask_y<height); 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]); + } } |