OSDN Git Service

Bugfixed for rectagle images, not single partcile(sphericals)s v2.3.69p0299
authorTakuo Yasunaga <tacyas1@TakuonoMacBook-Pro.local>
Sun, 11 Oct 2020 07:35:03 +0000 (16:35 +0900)
committerTakuo Yasunaga <tacyas1@TakuonoMacBook-Pro.local>
Sun, 11 Oct 2020 07:35:03 +0000 (16:35 +0900)
 Please enter the commit message for your changes. Lines starting
 with '#' will be ignored, and an empty message aborts the commit.

 Committer: Takuo Yasunaga <tacyas1@TakuonoMacBook-Pro.local>

 On branch master
 Your branch is up to date with 'origin/master'.

 Changes to be committed:
modified:   src/Tools/mrcImage/mrcImage3DPad2/src/mrcImage3DPad2.c

src/Tools/mrcImage/mrcImage3DPad2/src/mrcImage3DPad2.c

index 4fe6a95..f015e23 100755 (executable)
@@ -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;z<in->HeaderN.z;z++){
-       for (y=0;y<in->HeaderN.y;y++){
-       for (x=0;x<in->HeaderN.x;x++){
-               r2=SQR(x-cx)+SQR(y-cy)+SQR(z-cz);
-               if (SQR(rmax) <= r2 && r2<SQR(rmax+1)) {
-                       mrcPixelDataGet(in ,x ,y ,z ,&data, mrcPixelRePart, mrcPixelHowNearest);
-                       sum+=data;
-                       n++;
+  if(0<=rmax) {
+               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;z<in->HeaderN.z;z++){
+               for (y=0;y<in->HeaderN.y;y++){
+               for (x=0;x<in->HeaderN.x;x++){
+                       r2=SQR(x-cx)+SQR(y-cy)+SQR(z-cz);
+                       if (SQR(rmax) <= r2 && r2<SQR(rmax+1)) {
+                               mrcPixelDataGet(in ,x ,y ,z ,&data, mrcPixelRePart, mrcPixelHowNearest);
+                               sum+=data;
+                               n++;
+                       }
                }
-       }
-       }
-       }
-       av=sum/n;
+               }
+               }
+               av=sum/n;
+  } else {
+               n=0;
+               sum=0;
+               for (z=0;z<in->HeaderN.z;z++){
+               for (y=0;y<in->HeaderN.y;y++){
+               for (x=0;x<in->HeaderN.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);
 }