diff options
Diffstat (limited to 'src/itrans-stat.c')
-rw-r--r-- | src/itrans-stat.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/itrans-stat.c b/src/itrans-stat.c index c2369ec..6d64a08 100644 --- a/src/itrans-stat.c +++ b/src/itrans-stat.c @@ -29,15 +29,15 @@ * can be done as matrices to save effort * Renormalises matrix to 0->1 */ -static gsl_matrix *itrans_peaksearch_stat_createImageMatrix(ControlContext *ctx, int16_t *image) { +static gsl_matrix *itrans_peaksearch_stat_createImageMatrix(int16_t *image, int width, int height) { gsl_matrix *raw; int i, j; - raw = gsl_matrix_alloc(ctx->width,ctx->height); + raw = gsl_matrix_alloc(width, height); for ( i=0; i<raw->size1; i++ ) { for ( j=0; j<raw->size2; j++ ) { - gsl_matrix_set(raw, i, j, (double)image[i+j*ctx->width]); + gsl_matrix_set(raw, i, j, (double)image[i+j*width]); } } matrix_renormalise(raw); @@ -488,28 +488,29 @@ static gsl_matrix *itrans_peaksearch_stat_iterate(gsl_matrix *m, unsigned int *c } -unsigned int itrans_peaksearch_stat(int16_t *image, ControlContext *ctx, double tilt_degrees, ImageDisplay *imagedisplay) { +unsigned int itrans_peaksearch_stat(ImageRecord imagerecord, ControlContext *ctx) { unsigned int n_reflections; gsl_matrix *m; gsl_matrix *p; int i; double px,py; + double tilt_degrees = imagerecord.tilt; + int16_t *image = imagerecord.image; - m = itrans_peaksearch_stat_createImageMatrix(ctx, image); + m = itrans_peaksearch_stat_createImageMatrix(image, imagerecord.width, imagerecord.height); p = itrans_peaksearch_stat_iterate(m, &n_reflections); for ( i=0; i<n_reflections; i++ ) { px = gsl_matrix_get(p,0,i); py = gsl_matrix_get(p,1,i); - if ( ctx->fmode == FORMULATION_PIXELSIZE ) { - reflection_add_from_reciprocal(ctx, (px-ctx->x_centre)*ctx->pixel_size, (py-ctx->y_centre)*ctx->pixel_size, + if ( imagerecord.fmode == FORMULATION_PIXELSIZE ) { + reflection_add_from_reciprocal(ctx, (px-imagerecord.x_centre)*imagerecord.pixel_size, (py-imagerecord.y_centre)*imagerecord.pixel_size, tilt_degrees, 1.0); } else { - reflection_add_from_dp(ctx, (px-ctx->x_centre), (py-ctx->y_centre), tilt_degrees, 1.0); + reflection_add_from_dp(ctx, (px-imagerecord.x_centre)/imagerecord.resolution, (py-imagerecord.y_centre)/imagerecord.resolution, tilt_degrees, 1.0); } - if (ctx->first_image) imagedisplay_mark_point(imagedisplay, (unsigned int)px, (unsigned int)py); } gsl_matrix_free(m); |