aboutsummaryrefslogtreecommitdiff
path: root/src/itrans-stat.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/itrans-stat.c')
-rw-r--r--src/itrans-stat.c19
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);