From 54b76ad76148c5cb6093ecb16ca30e92d3c7af3a Mon Sep 17 00:00:00 2001 From: taw27 Date: Tue, 13 Nov 2007 12:26:08 +0000 Subject: Nicer pattern centering git-svn-id: svn://cook.msm.cam.ac.uk:745/diff-tomo/dtr@194 bf6ca9ba-c028-0410-8290-897cf20841d1 --- src/prealign.c | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) (limited to 'src/prealign.c') diff --git a/src/prealign.c b/src/prealign.c index 955ef4d..09785d2 100644 --- a/src/prealign.c +++ b/src/prealign.c @@ -234,7 +234,7 @@ void prealign_fine_centering(ImageList *list) { assert(mask_x>=0); assert(mask_y>=0); - printf("Image %3i: centre offset by %i,%i\n", i, mask_x-list->images[i].x_centre, mask_y-list->images[i].y_centre); + printf("AL: Image %3i: centre offset by %i,%i\n", i, mask_x-list->images[i].x_centre, mask_y-list->images[i].y_centre); list->images[i].x_centre = mask_x; list->images[i].y_centre = mask_y; @@ -253,13 +253,28 @@ void prealign_feature_centering(ImageList *list) { for ( i=0; in_images; i++ ) { - double d; - ImageFeature *feature; + double d1, d2; + ImageFeature *feature1; + ImageFeature *feature2; + int idx; + + feature1 = image_feature_closest(list->images[i].features, list->images[i].x_centre, list->images[i].y_centre, &d1, &idx); + feature2 = image_feature_second_closest(list->images[i].features, list->images[i].x_centre, list->images[i].y_centre, &d2, &idx); + + printf("AL: Image %i, d1=%f, d2=%f\n", i, d1, d2); + + if ( (fabs(d2-d1) <= 19.0) && feature1 && feature2 ) { + list->images[i].x_centre = (feature1->x + feature2->x)/2; + list->images[i].y_centre = (feature1->y + feature2->y)/2; + } else { + if ( feature1 ) { + list->images[i].x_centre = feature1->x; + list->images[i].y_centre = feature1->y; + } else { + printf("AL: Couldn't find centre feature for image %i\n", i); + } + } - feature = image_feature_closest(list->images[i].features, list->images[i].x_centre, list->images[i].y_centre, &d); - list->images[i].x_centre = feature->x; - list->images[i].y_centre = feature->y; - } } -- cgit v1.2.3