From e472b068cab44e109fdd47f3962ab3a3a76674dd Mon Sep 17 00:00:00 2001 From: Thomas White Date: Thu, 9 Apr 2009 17:31:30 +0100 Subject: Add Zaeferrer distance cutoff, whitespace --- src/itrans-zaefferer.c | 65 ++++++++++++++++++++++++++++---------------------- 1 file changed, 37 insertions(+), 28 deletions(-) diff --git a/src/itrans-zaefferer.c b/src/itrans-zaefferer.c index 69d2566..e1b63e9 100644 --- a/src/itrans-zaefferer.c +++ b/src/itrans-zaefferer.c @@ -27,89 +27,99 @@ ImageFeatureList *itrans_peaksearch_zaefferer(ImageRecord *imagerecord) { int width, height; uint16_t *image; ImageFeatureList *flist; - + flist = image_feature_list_new(); - + image = imagerecord->image; width = imagerecord->width; height = imagerecord->height; - + for ( x=1; x 400 ) { - + int mask_x, mask_y; int sx, sy; double max; unsigned int did_something = 1; - + mask_x = x; mask_y = y; - + while ( (did_something) && (distance(mask_x, mask_y, x, y)<50) ) { - + max = image[mask_x+width*mask_y]; did_something = 0; - + for ( sy=biggest(mask_y-PEAK_WINDOW_SIZE/2, 0); sy max ) { max = image[sx+width*sy]; mask_x = sx; mask_y = sy; did_something = 1; } - + } - + } - + } - + if ( !did_something ) { - + double d; int idx; - + assert(mask_x=0); assert(mask_y>=0); - - /* Check for a feature at exactly the same coordinates */ - image_feature_closest(flist, mask_x, mask_y, &d, &idx); - + + if ( distance(mask_x, mask_y, x, y) + > 50.0 ) { + printf("Too far\n"); + continue; + } + + /* 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]); + image_add_feature(flist, mask_x, + mask_y, imagerecord, + image[mask_x + width*mask_y]); } - + } - + } } } @@ -117,4 +127,3 @@ ImageFeatureList *itrans_peaksearch_zaefferer(ImageRecord *imagerecord) { return flist; } - -- cgit v1.2.3