Changeset 13975 for issm/trunk/src/c/modules/HoleFillerx/HoleFillerx.cpp
- Timestamp:
- 11/16/12 08:10:16 (12 years ago)
- Location:
- issm/trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk
- Property svn:mergeinfo changed
/issm/trunk-jpl merged: 13397-13398,13401,13407-13582,13584-13974
- Property svn:mergeinfo changed
-
issm/trunk/src
- Property svn:mergeinfo changed
-
issm/trunk/src/c/modules/HoleFillerx/HoleFillerx.cpp
r12706 r13975 10 10 11 11 int HoleFillerx(double** pimageout,double* image, int lines,int samps,int smooth){ 12 13 FILE *fp1; 14 unsigned long filesize; 12 15 13 long infinit; 16 14 double temp; 17 long i, j, k, l, ii, jj , bytes;15 long i, j, k, l, ii, jj; 18 16 long iii, jjj; 19 long test, prevlines, prevpix, test1, test2, thresh,counter; 20 long bell, cycles, leftovers; 21 float howlong; 17 long test; 22 18 float nsteps, ssteps, wsteps, esteps; 23 19 float nwsteps, nesteps, swsteps, sesteps; … … 29 25 float ssw, wsw, wnw, nnw; 30 26 float sum; 31 27 32 28 time_t t1, t2; 33 29 … … 39 35 double* image4=NULL; 40 36 41 /*Added to original routine: */42 int imageoutsize;43 44 37 /*^^^^^^^^^^^^^ Remove pixels close to the holes ^^^^^^^^^^^^^*/ 45 38 image2 = xNew<double>(lines*samps); 46 39 memcpy(image2,image,lines*samps*sizeof(double)); 47 40 48 41 for ( i = 0; i < lines; i++ ){ 49 42 for ( j = 0; j < samps; j++ ){ … … 84 77 85 78 again2: 86 79 87 80 #ifdef _DEBUG2_ 88 81 counter=0; … … 99 92 fflush( stdout ); 100 93 #endif 101 94 102 95 afterfirst2: 103 96 … … 128 121 129 122 /* For void edge pixels: */ 130 123 131 124 nsteps = 0.0; ssteps = 0.0; esteps = 0.0; wsteps = 0.0; 132 125 nwsteps = 0.0; nesteps = 0.0; swsteps = 0.0; sesteps = 0.0; … … 139 132 ssw = 0.0; wsw = 0.0; wnw = 0.0; nnw = 0.0; 140 133 141 142 134 /** NSEW **/ 143 135 for ( ii = i - 1; ii >= 0; ii-- ){ /* North */ … … 150 142 if ( *(image2+ii*samps+j) != 0 ){ south = *(image2+ii*samps+j); ssteps = ii - i; break;} 151 143 } 152 144 153 145 for ( jj = j - 1; jj >= 0; jj-- ){ /* West */ 154 146 if ( jj <= 0 ) { west = 0; wsteps = 0; break;} 155 147 if ( *(image2+i*samps+jj) != 0 ){ west = *(image2+i*samps+jj); wsteps = j - jj; break;} 156 148 } 157 149 158 150 for ( jj = j + 1; jj < samps; jj++ ){ /* East */ 159 151 if ( jj >= samps-1 ){ east = 0; esteps = 0; break;} … … 161 153 } 162 154 163 164 155 /** Diagonals **/ 165 156 /* Southeast */ … … 169 160 if ( *(image2+ii*samps+jj) != 0 ){ se = *(image2+ii*samps+jj); sesteps = 1.4142 * k; break;} 170 161 } 171 162 172 163 /* Northeast */ 173 164 for ( k = 1; k < infinit; k++ ){ … … 176 167 if ( *(image2+ii*samps+jj) != 0 ){ ne = *(image2+ii*samps+jj); nesteps = 1.4142 * k; break;} 177 168 } 178 169 179 170 /* Northwest */ 180 171 for ( k = 1; k < infinit; k++ ){ … … 183 174 if ( *(image2+ii*samps+jj) != 0 ){ nw = *(image2+ii*samps+jj); nwsteps = 1.4142 * k; break;} 184 175 } 185 176 186 177 /* Southwest */ 187 178 for ( k = 1; k < infinit; k++ ){ … … 198 189 if ( *(image2+ii*samps+jj) != 0 ){ nne = *(image2+ii*samps+jj); nnesteps = 2.2361 * k; break;} 199 190 } 200 191 201 192 /* ENE */ 202 193 for ( k = 1; k < infinit; k++ ){ … … 205 196 if ( *(image2+ii*samps+jj) != 0 ){ ene = *(image2+ii*samps+jj); enesteps = 2.2361 * k; break;} 206 197 } 207 198 208 199 /* ESE */ 209 200 for ( k = 1; k < infinit; k++ ){ … … 212 203 if ( *(image2+ii*samps+jj) != 0 ){ ese = *(image2+ii*samps+jj); esesteps = 2.2361 * k; break;} 213 204 } 214 205 215 206 /* SSE */ 216 207 for ( k = 1; k < infinit; k++ ){ … … 226 217 if ( *(image2+ii*samps+jj) != 0 ){ ssw = *(image2+ii*samps+jj); sswsteps = 2.2361 * k; break;} 227 218 } 228 219 229 220 /* WSW */ 230 221 for ( k = 1; k < infinit; k++ ){ … … 233 224 if ( *(image2+ii*samps+jj) != 0 ){ wsw = *(image2+ii*samps+jj); wswsteps = 2.2361 * k; break;} 234 225 } 235 226 236 227 /* WNW */ 237 228 for ( k = 1; k < infinit; k++ ){ … … 240 231 if ( *(image2+ii*samps+jj) != 0 ){ wnw = *(image2+ii*samps+jj); wnwsteps = 2.2361 * k; break;} 241 232 } 242 233 243 234 /* NNW */ 244 235 for ( k = 1; k < infinit; k++ ){ … … 247 238 if ( *(image2+ii*samps+jj) != 0 ){ nnw = *(image2+ii*samps+jj); nnwsteps = 2.2361 * k; break;} 248 239 } 249 240 250 241 elev = 0; range = 0; 251 242 /*NSEW*/ … … 259 250 if ( swsteps > 0.5 ){ elev += sw / swsteps; range += 1.00 / swsteps;} 260 251 if ( sesteps > 0.5 ){ elev += se / sesteps; range += 1.00 / sesteps;} 261 252 262 253 /*Other 8*/ 263 254 if ( nnesteps > 0.5 ){ elev += nne / nnesteps; range += 1.00 / nnesteps;} … … 269 260 if ( wnwsteps > 0.5 ){ elev += wnw / wnwsteps; range += 1.00 / wnwsteps;} 270 261 if ( nnwsteps > 0.5 ){ elev += nnw / nnwsteps; range += 1.00 / nnwsteps;} 271 262 272 263 //temp = ( elev / range ) + 0.5 ; 273 264 temp = ( elev / range ); … … 275 266 //if ( temp > 10000 ) temp = 10000; 276 267 //if ( temp < 0 ) temp = 0; 277 268 278 269 #ifdef _DEBUG2_ 279 270 //_printLine_(temp << " " << elev << " " << range << " "); … … 284 275 } 285 276 286 287 288 277 for ( i = 0; i < lines; i++ ){ 289 278 for ( j = 0; j < samps; j++ ){ … … 292 281 } 293 282 294 295 283 for ( i = 0; i < lines; i++ ){ 296 284 for ( j = 0; j < samps; j++ ){ … … 298 286 } 299 287 } 300 288 301 289 if ( smooth == 0 ) goto there2; 302 303 290 304 291 /************************ SMOOTH THE RESULT ***********************/ 305 292 306 293 image4 = xNew<double>(lines*samps); 307 294 memcpy(image4,image3,lines*samps*sizeof(double)); 308 309 295 310 296 for ( i = 0; i < lines; i++ ) { 311 297 for ( j = 0; j < samps; j++ ) { 312 298 if ( *(image4+i*samps+j) != 0 ) { *(image3+i*samps+j) = *(image2+i*samps+j) ; continue; } 313 314 299 315 300 for ( k = 1; k < infinit; k++ ) { /* Find the smallest box size with data */ … … 324 309 } 325 310 } 326 311 327 312 k_nowset: 328 313 k = k / 4; if ( k < 1 ) k = 1; /* Errrrr. Make it fourth size */ … … 343 328 } 344 329 345 346 330 there2: 347 348 331 349 332 /*Allocate output image: */ … … 352 335 353 336 time(&t2); 354 337 355 338 #ifdef _DEBUG2_ 356 339 _printString_( "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b" ); … … 358 341 printf ( "\n"); 359 342 #endif 360 343 361 344 end: 362 345
Note:
See TracChangeset
for help on using the changeset viewer.