38 if(verbose>0) printf(
"%s(img, %d, %g, %g, %g, %g, ...)\n", __func__, zi, cx, cy, r, mv);
40 int n, xi, yi, fi, i, j;
41 double dx[5], dy[5], r2, v;
44 if(zi<0 || zi>=img->
dimz)
return(2);
45 if(img->
sizey<=0.0 || img->
sizex<=0.0)
return(3);
47 if(img->
dimt<1)
return(5);
49 if(smv!=NULL) *smv=0.0;
52 for(yi=0; yi<img->
dimy; yi++) {
53 dy[0]=(0.1+(double)yi)*img->
sizey - cy;
54 for(j=1; j<5; j++) dy[j]=dy[j-1]+0.2*img->
sizey;
55 for(xi=0; xi<img->
dimx; xi++) {
56 dx[0]=(0.1+(double)xi)*img->
sizex - cx;
57 for(i=1; i<5; i++) dx[i]=dx[i-1]+0.2*img->
sizex;
58 for(i=0, n=0; i<5; i++)
for(j=0; j<5; j++)
if((dx[i]*dx[i]+dy[j]*dy[j])<r2) n++;
61 for(fi=0; fi<img->
dimt; fi++) img->
m[zi][yi][xi][fi]+=v;
62 if(smv!=NULL) *smv+=v;
104 if(verbose>0) printf(
"%s(img, %d, %g, %g, %g, %g, %g, ...)\n", __func__, zi, cx, cy, r1, r2, mv);
105 if(r1>=r2 || r1<0.0) {
106 if(verbose>0) fprintf(stderr,
"Error: invalid radius.\n");
113 if(verbose>0) fprintf(stderr,
"Error: cannot simulate circle 1.\n");
119 if(verbose>0) fprintf(stderr,
"Error: cannot simulate circle 2.\n");
123 d=mv1+mv2;
if(smv!=NULL) *smv=d;
124 if(d==0.0 && verbose>0) {fprintf(stderr,
"Warning: empty mask image created.\n"); fflush(stderr);}
int imgRingMask(IMG *img, int zi, double cx, double cy, double r1, double r2, double mv, double *smv, int verbose)
int imgCircleMask(IMG *img, int zi, double cx, double cy, double r, double mv, double *smv, int verbose)