From 0577530743805cf1e5f7ac39ce8313566cbdc1a1 Mon Sep 17 00:00:00 2001 From: Takuo Yasunaga Date: Sun, 11 Oct 2020 16:35:03 +0900 Subject: [PATCH] Bugfixed for rectagle images, not single partcile(sphericals)s Please enter the commit message for your changes. Lines starting with '#' will be ignored, and an empty message aborts the commit. Committer: Takuo Yasunaga On branch master Your branch is up to date with 'origin/master'. Changes to be committed: modified: src/Tools/mrcImage/mrcImage3DPad2/src/mrcImage3DPad2.c --- .../mrcImage/mrcImage3DPad2/src/mrcImage3DPad2.c | 76 ++++++++++++++++------ 1 file changed, 55 insertions(+), 21 deletions(-) diff --git a/src/Tools/mrcImage/mrcImage3DPad2/src/mrcImage3DPad2.c b/src/Tools/mrcImage/mrcImage3DPad2/src/mrcImage3DPad2.c index 4fe6a95e4c..f015e2340c 100755 --- a/src/Tools/mrcImage/mrcImage3DPad2/src/mrcImage3DPad2.c +++ b/src/Tools/mrcImage/mrcImage3DPad2/src/mrcImage3DPad2.c @@ -140,7 +140,11 @@ lmrcImage3DPadfilament(mrcImage* out ,mrcImage* in , lmrcImage3DPadInfo linfo, i averager = linfo.rmax; } DEBUGPRINT1("r: %g \n",averager); - av=lmrcImage3DPadfilamentCalcavr(in ,averager); + if(linfo.flagr) { + av=lmrcImage3DPadfilamentCalcavr(in, averager); + } else { + av=lmrcImage3DPadfilamentCalcavr(in, -1); + } } else { av=linfo.v; } @@ -176,7 +180,11 @@ lmrcImage3DPadfilament(mrcImage* out ,mrcImage* in , lmrcImage3DPadInfo linfo, i case 1: case 2: if (!linfo.flagv){ - av = lmrcImage3DPadfilamentCalcavr(in, linfo.rmax+linfo.w); + if(linfo.flagr) { + av = lmrcImage3DPadfilamentCalcavr(in, linfo.rmax+linfo.w); + } else { + av = lmrcImage3DPadfilamentCalcavr(in, -1); + } DEBUGPRINT1("r: %g \n",averager); fprintf(stdout,"av: %g \n",av); } else { @@ -267,7 +275,11 @@ void lmrcImage3DPad(mrcImage* out, mrcImage* in, lmrcImage3DPadInfo linfo, int m switch(mode){ case 0: if (!linfo.flagv){ - av=lmrcImage3DPadCalcavr(in, linfo.rmax); + if(linfo.flagr) { + av=lmrcImage3DPadCalcavr(in, linfo.rmax); + } else { + av=lmrcImage3DPadCalcavr(in, -1); + } } else { av=linfo.v; } @@ -302,7 +314,11 @@ void lmrcImage3DPad(mrcImage* out, mrcImage* in, lmrcImage3DPadInfo linfo, int m case 1: case 2: if (!linfo.flagv) { - av=lmrcImage3DPadCalcavr(in ,linfo.rmax+linfo.w); + if(linfo.flagr) { + av=lmrcImage3DPadCalcavr(in ,linfo.rmax+linfo.w); + } else { + av=lmrcImage3DPadCalcavr(in ,-1); + } } else { av=linfo.v; } @@ -351,23 +367,41 @@ lmrcImage3DPadCalcavr(mrcImage* in ,double rmax) double cx,cy,cz,r2,sum,data,av; /* begin */ - n=0; - sum=0; - cx=(in->HeaderN.x-1)*0.5; - cy=(in->HeaderN.y-1)*0.5; - cz=(in->HeaderN.z-1)*0.5; - for (z=0;zHeaderN.z;z++){ - for (y=0;yHeaderN.y;y++){ - for (x=0;xHeaderN.x;x++){ - r2=SQR(x-cx)+SQR(y-cy)+SQR(z-cz); - if (SQR(rmax) <= r2 && r2HeaderN.x-1)*0.5; + cy=(in->HeaderN.y-1)*0.5; + cz=(in->HeaderN.z-1)*0.5; + for (z=0;zHeaderN.z;z++){ + for (y=0;yHeaderN.y;y++){ + for (x=0;xHeaderN.x;x++){ + r2=SQR(x-cx)+SQR(y-cy)+SQR(z-cz); + if (SQR(rmax) <= r2 && r2HeaderN.z;z++){ + for (y=0;yHeaderN.y;y++){ + for (x=0;xHeaderN.x;x++){ + if( z==0||z==in->HeaderN.z-1 + ||y==0||y==in->HeaderN.y-1 + ||x==0||x==in->HeaderN.x-1) { + sum+=data; + n++; + } + } + } + } + av=sum/n; + } return(av); } -- 2.11.0