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 |
|
|