diff options
-rw-r--r-- | src/itrans-threshold.c | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/src/itrans-threshold.c b/src/itrans-threshold.c index 1aee5ca..69acd24 100644 --- a/src/itrans-threshold.c +++ b/src/itrans-threshold.c @@ -26,6 +26,7 @@ unsigned int itrans_peaksearch_threshold(ImageRecord imagerecord, ControlContext unsigned int n_reflections = 0; uint16_t *image = imagerecord.image; double tilt_degrees = imagerecord.tilt; + uint16_t max = 0; width = imagerecord.width; height = imagerecord.height; @@ -33,17 +34,26 @@ unsigned int itrans_peaksearch_threshold(ImageRecord imagerecord, ControlContext /* Simple Thresholding */ for ( y=0; y<height; y++ ) { for ( x=0; x<width; x++ ) { + if ( image[x + width*y] > max ) max = image[x + width*y]; + } + } - if ( image[x + width*y] > 10 ) { + for ( y=0; y<height; y++ ) { + for ( x=0; x<width; x++ ) { + if ( image[x + width*y] > max/3 ) { if ( imagerecord.fmode == FORMULATION_PIXELSIZE ) { - reflection_add_from_reciprocal(ctx, (signed)(x-imagerecord.x_centre)*imagerecord.pixel_size, (signed)(y-imagerecord.y_centre)*imagerecord.pixel_size, - tilt_degrees, image[x + width*y]); + reflection_add_from_reciprocal(ctx, + (signed)(x-imagerecord.x_centre)*imagerecord.pixel_size, + (signed)(y-imagerecord.y_centre)*imagerecord.pixel_size, + tilt_degrees, image[x + width*y]); } else { - reflection_add_from_dp(ctx, (signed)(x-imagerecord.x_centre)/imagerecord.resolution, (signed)(y-imagerecord.y_centre)/imagerecord.resolution, tilt_degrees, image[x + width*y]); + reflection_add_from_dp(ctx, + (signed)(x-imagerecord.x_centre)/imagerecord.resolution, + (signed)(y-imagerecord.y_centre)/imagerecord.resolution, + tilt_degrees, image[x + width*y]); } n_reflections++; } - } } @@ -84,10 +94,14 @@ unsigned int itrans_peaksearch_adaptive_threshold(ImageRecord imagerecord, Contr if ( max_val > 50 ) { if ( imagerecord.fmode == FORMULATION_PIXELSIZE ) { - reflection_add_from_reciprocal(ctx, (signed)(x-imagerecord.x_centre)*imagerecord.pixel_size, (signed)(y-imagerecord.y_centre)*imagerecord.pixel_size, - tilt_degrees, image[x + width*y]); + reflection_add_from_reciprocal(ctx, + (signed)(x-imagerecord.x_centre)*imagerecord.pixel_size, + (signed)(y-imagerecord.y_centre)*imagerecord.pixel_size, + tilt_degrees, image[x + width*y]); } else { - reflection_add_from_dp(ctx, (signed)(x-imagerecord.x_centre)/imagerecord.resolution, (signed)(y-imagerecord.y_centre)/imagerecord.resolution, tilt_degrees, image[x + width*y]); + reflection_add_from_dp(ctx, (signed)(x-imagerecord.x_centre)/imagerecord.resolution, + (signed)(y-imagerecord.y_centre)/imagerecord.resolution, + tilt_degrees, image[x + width*y]); } n_reflections++; |