| 205 |
|
reset_flags(); /* set occupancy flags */ |
| 206 |
|
meet_neighbors(kill_occl); /* eliminate occlusion errors */ |
| 207 |
|
reset_flags(); /* reset occupancy flags */ |
| 208 |
< |
if (pixWeight[0] <= FTINY) { /* initialize weighting function */ |
| 209 |
< |
register int i, j, r2; |
| 210 |
< |
double d; |
| 211 |
< |
for (i = 1; i <= MAXRAD; i++) |
| 212 |
< |
for (j = 0; j <= i; j++) { |
| 213 |
< |
r2 = i*i + j*j; |
| 214 |
< |
if (r2 >= MAXRAD2) break; |
| 215 |
< |
d = sqrt((double)r2); |
| 216 |
< |
pixWeight[r2] = G0NORM/d; |
| 217 |
< |
isqrttab[r2] = d + 0.99; |
| 218 |
< |
} |
| 219 |
< |
pixWeight[0] = 1.; |
| 220 |
< |
isqrttab[0] = 0; |
| 221 |
< |
} |
| 208 |
> |
if (pixWeight[0] <= FTINY) |
| 209 |
> |
init_wfunc(); /* initialize weighting function */ |
| 210 |
|
meet_neighbors(grow_samp); /* grow valid samples over image */ |
| 211 |
|
free((char *)pixFlags); /* free pixel flags */ |
| 212 |
|
pixFlags = NULL; |
| 215 |
|
|
| 216 |
|
reset_flags() /* allocate/set/reset occupancy flags */ |
| 217 |
|
{ |
| 218 |
< |
register int p; |
| 218 |
> |
register int4 p; |
| 219 |
|
|
| 220 |
|
if (pixFlags == NULL) { |
| 221 |
|
pixFlags = (int4 *)calloc(FL4NELS(hres*vres), sizeof(int4)); |
| 225 |
|
for (p = hres*vres; p--; ) |
| 226 |
|
if (myweight[p] > FTINY) |
| 227 |
|
SET4(pixFlags, p); |
| 228 |
+ |
} |
| 229 |
+ |
|
| 230 |
+ |
|
| 231 |
+ |
init_wfunc() /* initialize weighting function */ |
| 232 |
+ |
{ |
| 233 |
+ |
register int i, j; |
| 234 |
+ |
register int4 r2; |
| 235 |
+ |
register double d; |
| 236 |
+ |
|
| 237 |
+ |
for (i = 1; i <= MAXRAD; i++) |
| 238 |
+ |
for (j = 0; j <= i; j++) { |
| 239 |
+ |
r2 = i*i + j*j; |
| 240 |
+ |
if (r2 >= MAXRAD2) break; |
| 241 |
+ |
d = sqrt((double)r2); |
| 242 |
+ |
pixWeight[r2] = G0NORM/d; |
| 243 |
+ |
isqrttab[r2] = d + 0.99; |
| 244 |
+ |
} |
| 245 |
+ |
pixWeight[0] = 1.; |
| 246 |
+ |
isqrttab[0] = 0; |
| 247 |
|
} |
| 248 |
|
|
| 249 |
|
|