2 # lmrcImageSamplingUnitChange.c 1.2
3 # The latest update : 01/23/97 at 10:39:10
5 #@(#) lmrcImageSamplingUnitChange ver 1.2
8 #@(#) Usage : lmrcImageSamplingUnitChange
13 static char __sccs_id[] = "@(#)lmrcImageSamplingUnitChange ver1.2; Date:97/01/23 @(#)";
15 #include "lmrcImageSamplingUnitChange.h"
18 lmrcImageSamplingUnitChange(mrcImage* out, mrcImage* in, lmrcImageSamplingUnitChangeInfo info, long mode)
20 mrcImageParaTypeReal x, y, z;
21 mrcImageParaTypeReal kx, ky, kz;
24 out->Header = in->Header;
26 out->HeaderLength.x = info.L.x;
29 out->HeaderLength.y = info.L.y;
32 out->HeaderLength.z = info.L.z;
34 kx = in->HeaderLength.x/out->HeaderLength.x;
35 ky = in->HeaderLength.y/out->HeaderLength.y;
36 kz = in->HeaderLength.z/out->HeaderLength.z;
38 out->HeaderN.x = in->HeaderN.x*kx;
39 out->HeaderN.y = in->HeaderN.y*ky;
40 out->HeaderN.z = in->HeaderN.z*kz;
42 out->HeaderStartN.x = in->HeaderStartN.x*in->HeaderLength.x/out->HeaderLength.x;
43 out->HeaderStartN.y = in->HeaderStartN.y*in->HeaderLength.y/out->HeaderLength.y;
44 out->HeaderStartN.z = in->HeaderStartN.z*in->HeaderLength.z/out->HeaderLength.z;
47 for(x=0; x<out->HeaderN.x; x++) {
48 for(y=0; y<out->HeaderN.y; y++) {
49 for(z=0; z<out->HeaderN.z; z++) {
50 mrcPixelDataGet(in, x/kx, y/ky, z/kz, &data, mrcPixelRePart, info.SamplingMethodMode);
51 mrcPixelDataSet(out, x, y, z, data, mrcPixelRePart);