This repository is a base of Eos.
Revisão | 0577530743805cf1e5f7ac39ce8313566cbdc1a1 (tree) |
---|---|
Hora | 2020-10-11 16:35:03 |
Autor | Takuo Yasunaga <tacyas1@Taku...> |
Commiter | Takuo Yasunaga |
Bugfixed for rectagle images, not single partcile(sphericals)s
modified: src/Tools/mrcImage/mrcImage3DPad2/src/mrcImage3DPad2.c
@@ -140,7 +140,11 @@ lmrcImage3DPadfilament(mrcImage* out ,mrcImage* in , lmrcImage3DPadInfo linfo, i | ||
140 | 140 | averager = linfo.rmax; |
141 | 141 | } |
142 | 142 | DEBUGPRINT1("r: %g \n",averager); |
143 | - av=lmrcImage3DPadfilamentCalcavr(in ,averager); | |
143 | + if(linfo.flagr) { | |
144 | + av=lmrcImage3DPadfilamentCalcavr(in, averager); | |
145 | + } else { | |
146 | + av=lmrcImage3DPadfilamentCalcavr(in, -1); | |
147 | + } | |
144 | 148 | } else { |
145 | 149 | av=linfo.v; |
146 | 150 | } |
@@ -176,7 +180,11 @@ lmrcImage3DPadfilament(mrcImage* out ,mrcImage* in , lmrcImage3DPadInfo linfo, i | ||
176 | 180 | case 1: |
177 | 181 | case 2: |
178 | 182 | if (!linfo.flagv){ |
179 | - av = lmrcImage3DPadfilamentCalcavr(in, linfo.rmax+linfo.w); | |
183 | + if(linfo.flagr) { | |
184 | + av = lmrcImage3DPadfilamentCalcavr(in, linfo.rmax+linfo.w); | |
185 | + } else { | |
186 | + av = lmrcImage3DPadfilamentCalcavr(in, -1); | |
187 | + } | |
180 | 188 | DEBUGPRINT1("r: %g \n",averager); |
181 | 189 | fprintf(stdout,"av: %g \n",av); |
182 | 190 | } else { |
@@ -267,7 +275,11 @@ void lmrcImage3DPad(mrcImage* out, mrcImage* in, lmrcImage3DPadInfo linfo, int m | ||
267 | 275 | switch(mode){ |
268 | 276 | case 0: |
269 | 277 | if (!linfo.flagv){ |
270 | - av=lmrcImage3DPadCalcavr(in, linfo.rmax); | |
278 | + if(linfo.flagr) { | |
279 | + av=lmrcImage3DPadCalcavr(in, linfo.rmax); | |
280 | + } else { | |
281 | + av=lmrcImage3DPadCalcavr(in, -1); | |
282 | + } | |
271 | 283 | } else { |
272 | 284 | av=linfo.v; |
273 | 285 | } |
@@ -302,7 +314,11 @@ void lmrcImage3DPad(mrcImage* out, mrcImage* in, lmrcImage3DPadInfo linfo, int m | ||
302 | 314 | case 1: |
303 | 315 | case 2: |
304 | 316 | if (!linfo.flagv) { |
305 | - av=lmrcImage3DPadCalcavr(in ,linfo.rmax+linfo.w); | |
317 | + if(linfo.flagr) { | |
318 | + av=lmrcImage3DPadCalcavr(in ,linfo.rmax+linfo.w); | |
319 | + } else { | |
320 | + av=lmrcImage3DPadCalcavr(in ,-1); | |
321 | + } | |
306 | 322 | } else { |
307 | 323 | av=linfo.v; |
308 | 324 | } |
@@ -351,23 +367,41 @@ lmrcImage3DPadCalcavr(mrcImage* in ,double rmax) | ||
351 | 367 | double cx,cy,cz,r2,sum,data,av; |
352 | 368 | |
353 | 369 | /* begin */ |
354 | - n=0; | |
355 | - sum=0; | |
356 | - cx=(in->HeaderN.x-1)*0.5; | |
357 | - cy=(in->HeaderN.y-1)*0.5; | |
358 | - cz=(in->HeaderN.z-1)*0.5; | |
359 | - for (z=0;z<in->HeaderN.z;z++){ | |
360 | - for (y=0;y<in->HeaderN.y;y++){ | |
361 | - for (x=0;x<in->HeaderN.x;x++){ | |
362 | - r2=SQR(x-cx)+SQR(y-cy)+SQR(z-cz); | |
363 | - if (SQR(rmax) <= r2 && r2<SQR(rmax+1)) { | |
364 | - mrcPixelDataGet(in ,x ,y ,z ,&data, mrcPixelRePart, mrcPixelHowNearest); | |
365 | - sum+=data; | |
366 | - n++; | |
370 | + if(0<=rmax) { | |
371 | + n=0; | |
372 | + sum=0; | |
373 | + cx=(in->HeaderN.x-1)*0.5; | |
374 | + cy=(in->HeaderN.y-1)*0.5; | |
375 | + cz=(in->HeaderN.z-1)*0.5; | |
376 | + for (z=0;z<in->HeaderN.z;z++){ | |
377 | + for (y=0;y<in->HeaderN.y;y++){ | |
378 | + for (x=0;x<in->HeaderN.x;x++){ | |
379 | + r2=SQR(x-cx)+SQR(y-cy)+SQR(z-cz); | |
380 | + if (SQR(rmax) <= r2 && r2<SQR(rmax+1)) { | |
381 | + mrcPixelDataGet(in ,x ,y ,z ,&data, mrcPixelRePart, mrcPixelHowNearest); | |
382 | + sum+=data; | |
383 | + n++; | |
384 | + } | |
367 | 385 | } |
368 | - } | |
369 | - } | |
370 | - } | |
371 | - av=sum/n; | |
386 | + } | |
387 | + } | |
388 | + av=sum/n; | |
389 | + } else { | |
390 | + n=0; | |
391 | + sum=0; | |
392 | + for (z=0;z<in->HeaderN.z;z++){ | |
393 | + for (y=0;y<in->HeaderN.y;y++){ | |
394 | + for (x=0;x<in->HeaderN.x;x++){ | |
395 | + if( z==0||z==in->HeaderN.z-1 | |
396 | + ||y==0||y==in->HeaderN.y-1 | |
397 | + ||x==0||x==in->HeaderN.x-1) { | |
398 | + sum+=data; | |
399 | + n++; | |
400 | + } | |
401 | + } | |
402 | + } | |
403 | + } | |
404 | + av=sum/n; | |
405 | + } | |
372 | 406 | return(av); |
373 | 407 | } |