OSDN Git Service

Please enter the commit message for your changes. Lines starting v2.3.66p0296
authorTakuo Yasunaga <yasunaga@bio.kyutech.jp>
Sat, 11 Apr 2020 23:53:47 +0000 (08:53 +0900)
committerTakuo Yasunaga <yasunaga@bio.kyutech.jp>
Sat, 11 Apr 2020 23:53:47 +0000 (08:53 +0900)
 with '#' will be ignored, and an empty message aborts the commit.

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

 Changes to be committed:
modified:   src/Objects/DataManip/mrcImage/src/lmrcImageMasking.c
modified:   src/Objects/DataManip/mrcImage/src/lmrcImageSoftEdge.c

src/Objects/DataManip/mrcImage/src/lmrcImageMasking.c
src/Objects/DataManip/mrcImage/src/lmrcImageSoftEdge.c

index 6ccb77b..ffd90f0 100755 (executable)
@@ -327,7 +327,6 @@ lmrcImageMasking(mrcImage* out, mrcImage* in, lmrcImageMaskingInfo* linfo, int m
                        }
                        break;
 
-
                case lmrcImageMaskingInfoRoundedSquare:
                        sum      = 0.0; count = 0; avg = 0;
                        if (linfo->mode==0){
index d8a863c..bd9f39a 100644 (file)
@@ -26,6 +26,7 @@ lmrcImageSoftEdge(mrcImage* out, mrcImage* in, lmrcImageSoftEdgeInfo linfo, int
     double width;
     double data;
     double distance, near, nearx, neary, nearz;
+    double xmin, ymin, zmin, xmax, ymax, zmax;
     double max;
     double dstData;
 
@@ -47,28 +48,34 @@ lmrcImageSoftEdge(mrcImage* out, mrcImage* in, lmrcImageSoftEdgeInfo linfo, int
             break;
     }
 
-    for(x=0; x<out->HeaderN.x; x++) {
-       DEBUGPRINT1("%d\n", (int)x);
-    for(y=0; y<out->HeaderN.y; y++) {
     for(z=0; z<out->HeaderN.z; z++) {
-        near = max;
-        
+       DEBUGPRINT1("%d\n", (int)z);
+    for(y=0; y<out->HeaderN.y; y++) {
+    for(x=0; x<out->HeaderN.x; x++) {
         mrcPixelDataGet(in, x, y, z, &data, mrcPixelRePart, mrcPixelHowNearest);
         if(0<data) {
             dstData = data;
         } else {
+            near = max;
             dstData = 0;
-            for(offsetx=MAX(0, x-width); offsetx<MIN(x+width, out->HeaderN.x); offsetx++) {
-            for(offsety=MAX(0, y-width); offsety<MIN(y+width, out->HeaderN.y); offsety++) {
-            for(offsetz=MAX(0, z-width); offsetz<MIN(z+width, out->HeaderN.z); offsetz++) {
-                mrcPixelDataGet(in, offsetx, offsety, offsetz, &data, mrcPixelRePart, mrcPixelHowNearest);
+            xmin = MAX(0, x-width); xmax = MIN(x+width, out->HeaderN.x - 1); 
+            ymin = MAX(0, y-width); ymax = MIN(y+width, out->HeaderN.y - 1);
+            zmin = MAX(0, z-width); zmax = MIN(z+width, out->HeaderN.z - 1);
+            for(offsetz=zmin; offsetz<=zmax; offsetz++) {
+            for(offsety=ymin; offsety<=ymax; offsety++) {
+            for(offsetx=xmin; offsetx<=xmax; offsetx++) {
                 distance = sqrt(SQR(offsetx -x) + SQR(offsety - y) + SQR(offsetz - z));  
-                if(0<data && distance < near) {
-                    near = distance;
-                    nearx = offsetx;
-                    neary = offsety;
-                    nearz = offsetz;
-                    dstData = data;
+                if(distance<width) { 
+                    mrcPixelDataGet(in, offsetx, offsety, offsetz, &data, mrcPixelRePart, mrcPixelHowNearest);
+                    if(0<data) {
+                        if(distance < near) {
+                            near = distance;
+                            nearx = offsetx;
+                            neary = offsety;
+                            nearz = offsetz;
+                            dstData = data;
+                        }
+                    }
                 }
             }
             }
@@ -85,6 +92,10 @@ lmrcImageSoftEdge(mrcImage* out, mrcImage* in, lmrcImageSoftEdgeInfo linfo, int
                             dstData = 0;
                         }
                         break;
+                    default:
+                        fprintf(stderr, "Not supported envelop:  %d\n", linfo.envelop);
+                        exit(EXIT_FAILURE);
+                        break;
                 }
             }
         }