aboutsummaryrefslogtreecommitdiff
path: root/src/mrc.c
diff options
context:
space:
mode:
authortaw27 <taw27@bf6ca9ba-c028-0410-8290-897cf20841d1>2007-08-28 21:39:35 +0000
committertaw27 <taw27@bf6ca9ba-c028-0410-8290-897cf20841d1>2007-08-28 21:39:35 +0000
commit50a75cc5458ba553f5cdcede6c9699f7a0347377 (patch)
tree993e70c4dc75885a3f207ba79b71a22c4d3aee66 /src/mrc.c
parent85b8978beedd0142560573a92442a5ed907b0ed2 (diff)
Use unsigned types for image storage
git-svn-id: svn://cook.msm.cam.ac.uk:745/diff-tomo/dtr@82 bf6ca9ba-c028-0410-8290-897cf20841d1
Diffstat (limited to 'src/mrc.c')
-rw-r--r--src/mrc.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/mrc.c b/src/mrc.c
index 50596a5..1703b7b 100644
--- a/src/mrc.c
+++ b/src/mrc.c
@@ -33,6 +33,7 @@ int mrc_read(ControlContext *ctx) {
unsigned int i;
unsigned int extsize;
double pixel_size;
+ int x, y;
fh = fopen(ctx->filename, "rb");
@@ -40,7 +41,7 @@ int mrc_read(ControlContext *ctx) {
fread(&mrc, sizeof(MRCHeader), 1, fh);
printf("%i images in series\n", mrc.nz);
if ( mrc.mode != 1 ) {
- fprintf(stderr, "MR: Unknown MRC image mode\n");
+ fprintf(stderr, "MR: Unknown MRC image mode (must be 16-bit signed)\n");
fclose(fh);
return -1;
}
@@ -67,7 +68,8 @@ int mrc_read(ControlContext *ctx) {
for ( i=0; i<mrc.nz; i++ ) {
- int16_t *image = malloc(mrc.ny * mrc.nx * sizeof(int16_t));
+ int16_t *image = malloc(mrc.ny * mrc.nx * sizeof(uint16_t));
+ uint16_t *uimage = malloc(mrc.ny * mrc.nx * sizeof(uint16_t));
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;
@@ -82,7 +84,15 @@ 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);
- control_add_image(ctx, image, mrc.nx, mrc.ny, ext[i].a_tilt);
+ for ( x=0; x<mrc.nx; x++ ) {
+ for ( y=0; y<mrc.ny; y++ ) {
+ uimage[x + mrc.nx*y] = image[x + mrc.nx*y] + 32767;
+ if ( uimage[x + mrc.nx*y] < 10 ) printf("%i\n", uimage[x + mrc.nx*y]);
+ }
+ }
+ free(image);
+
+ control_add_image(ctx, uimage, mrc.nx, mrc.ny, ext[i].a_tilt);
}