diff options
author | taw27 <taw27@bf6ca9ba-c028-0410-8290-897cf20841d1> | 2007-08-19 23:13:58 +0000 |
---|---|---|
committer | taw27 <taw27@bf6ca9ba-c028-0410-8290-897cf20841d1> | 2007-08-19 23:13:58 +0000 |
commit | b31565d11bcb28ca33b4a51cb363549c46444cd8 (patch) | |
tree | 59c573a21eaae8c8e82f5491d7167ff0c854ae95 /src/mrc.c | |
parent | de770d8c43a57b1941e2f6942f75deb8c99475aa (diff) |
Preparation for handing precessed data
git-svn-id: svn://cook.msm.cam.ac.uk:745/diff-tomo/dtr@65 bf6ca9ba-c028-0410-8290-897cf20841d1
Diffstat (limited to 'src/mrc.c')
-rw-r--r-- | src/mrc.c | 54 |
1 files changed, 4 insertions, 50 deletions
@@ -15,7 +15,7 @@ #include <stdlib.h> #include <stdio.h> -#include <stdint.h> +#include <inttypes.h> #include <string.h> #include "mrc.h" @@ -33,11 +33,6 @@ int mrc_read(ControlContext *ctx) { unsigned int i; unsigned int extsize; double pixel_size; - int16_t *image_total; - unsigned int x, y; - int max_x, max_y; - int16_t max_val; - ImageDisplay *sum_id; fh = fopen(ctx->filename, "rb"); @@ -68,50 +63,16 @@ int mrc_read(ControlContext *ctx) { pixel_size = ext[0].pixel_size; printf("pixel_size = %f m^-1\n", pixel_size); - ctx->reflectionctx = reflection_init(); ctx->fmode = FORMULATION_PIXELSIZE; ctx->first_image = 1; ctx->width = mrc.nx; ctx->height = mrc.ny; - printf("Judging centre..."); - image_total = malloc(mrc.ny * mrc.nx * sizeof(int16_t)); - for ( y=0; y<mrc.ny; y++ ) { - for ( x=0; x<mrc.nx; x++ ) { - image_total[x + mrc.nx*y] = 0; - } - } - for ( i=0; i<mrc.nz; i++ ) { - int16_t *image = malloc(mrc.ny * mrc.nx * sizeof(int16_t)); - fseek(fh, mrc.next + sizeof(MRCHeader) + mrc.nx*mrc.ny*2*i, SEEK_SET); - fread(image, mrc.nx*mrc.ny*2, 1, fh); - for ( y=0; y<mrc.ny; y++ ) { - for ( x=0; x<mrc.nx; x++ ) { - image_total[x + mrc.nx*y] += image[x + mrc.nx*y]/mrc.nz; - } - } - } - sum_id = imagedisplay_open(image_total, mrc.nx, mrc.ny, "Sum of All Images"); - /* Locate the highest point */ - max_val = 0; max_x = 0; max_y = 0; - for ( y=0; y<ctx->height; y++ ) { - for ( x=0; x<ctx->width; x++ ) { - if ( image_total[x + ctx->width*y] > max_val ) { - max_val = image_total[x + ctx->width*y]; - max_x = x; max_y = y; - } - } - } - imagedisplay_mark_point(sum_id, max_x, max_y); - ctx->x_centre = max_x; - ctx->y_centre = max_y; - printf("done\n"); - for ( i=0; i<mrc.nz; i++ ) { int16_t *image = malloc(mrc.ny * mrc.nx * sizeof(int16_t)); - printf("Image #%3i: tilt=%f omega=%f L=%f\t", i, ext[i].a_tilt, ext[i].tilt_axis, ext[i].magnification); + printf("Image #%3i: tilt=%f omega=%f L=%f\n", i, ext[i].a_tilt, ext[i].tilt_axis, ext[i].magnification); ctx->camera_length = ext[i].magnification; if ( ext[i].voltage == 0 ) { ctx->lambda = lambda(200000); @@ -123,15 +84,8 @@ int mrc_read(ControlContext *ctx) { fseek(fh, mrc.next + sizeof(MRCHeader) + mrc.nx*mrc.ny*2*i, SEEK_SET); fread(image, mrc.nx*mrc.ny*2, 1, fh); - - for ( y=0; y<mrc.ny; y++ ) { - for ( x=0; x<mrc.nx; x++ ) { - image_total[x + mrc.nx*y] += image[x + mrc.nx*y]/mrc.nz; - } - } - - itrans_process_image(image, ctx, ext[i].a_tilt); - free(image); + + control_add_image_ps(ctx, image, mrc.nx, mrc.ny, ext[i].a_tilt, ctx->omega, ctx->pixel_size); } |