Ignore:
Timestamp:
11/16/12 08:10:16 (12 years ago)
Author:
Mathieu Morlighem
Message:

merged trunk-jpl and trunk for revision 13974

Location:
issm/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk

  • issm/trunk/src

  • issm/trunk/src/c/modules/HoleFillerx/HoleFillerx.cpp

    r12706 r13975  
    1010
    1111int HoleFillerx(double** pimageout,double* image, int lines,int samps,int smooth){
    12        
    13         FILE                    *fp1;
    14         unsigned long   filesize;
     12
    1513        long                    infinit;
    1614        double          temp;
    17         long                    i, j, k, l, ii, jj, bytes;
     15        long                    i, j, k, l, ii, jj;
    1816        long                    iii, jjj;
    19         long                    test, prevlines, prevpix, test1, test2, thresh,counter;
    20         long                    bell, cycles, leftovers;
    21         float                   howlong;
     17        long                    test;
    2218        float                   nsteps, ssteps, wsteps, esteps;
    2319        float                   nwsteps, nesteps, swsteps, sesteps;
     
    2925        float                   ssw, wsw, wnw, nnw;     
    3026        float                   sum;
    31        
     27
    3228        time_t                  t1, t2;
    3329
     
    3935        double*         image4=NULL;
    4036
    41         /*Added to original routine: */
    42         int             imageoutsize;
    43 
    4437         /*^^^^^^^^^^^^^  Remove pixels close to the holes ^^^^^^^^^^^^^*/
    4538        image2 = xNew<double>(lines*samps);
    4639        memcpy(image2,image,lines*samps*sizeof(double));
    47        
     40
    4841        for ( i = 0; i < lines; i++ ){
    4942                for ( j = 0; j < samps; j++ ){
     
    8477
    8578        again2:
    86        
     79
    8780        #ifdef _DEBUG2_
    8881                counter=0;
     
    9992                fflush( stdout );
    10093        #endif
    101        
     94
    10295        afterfirst2:
    10396
     
    128121
    129122                        /* For void edge pixels: */                     
    130                        
     123
    131124                        nsteps = 0.0; ssteps = 0.0; esteps = 0.0; wsteps = 0.0;
    132125                        nwsteps = 0.0; nesteps = 0.0; swsteps = 0.0; sesteps = 0.0;
     
    139132                        ssw = 0.0; wsw = 0.0; wnw = 0.0; nnw = 0.0;
    140133
    141 
    142134/** NSEW **/
    143135                        for ( ii = i - 1; ii >= 0; ii-- ){   /* North */
     
    150142                                if ( *(image2+ii*samps+j) != 0 ){ south = *(image2+ii*samps+j); ssteps = ii - i; break;}
    151143                        }
    152                                
     144
    153145                        for ( jj = j - 1; jj >= 0; jj-- ){   /* West */
    154146                                if ( jj <= 0 ) { west = 0; wsteps = 0; break;}
    155147                                if ( *(image2+i*samps+jj) != 0 ){ west = *(image2+i*samps+jj); wsteps = j - jj; break;}
    156148                        }
    157                                
     149
    158150                        for ( jj = j + 1; jj < samps; jj++ ){ /* East */
    159151                                if ( jj >= samps-1 ){ east = 0; esteps = 0; break;}
     
    161153                        }
    162154
    163                                
    164155/** Diagonals  **/                                             
    165156                        /* Southeast */
     
    169160                                if ( *(image2+ii*samps+jj) != 0 ){ se = *(image2+ii*samps+jj); sesteps = 1.4142 * k; break;}
    170161                        }
    171                        
     162
    172163                        /* Northeast */
    173164                        for ( k = 1; k < infinit; k++ ){
     
    176167                                if ( *(image2+ii*samps+jj) != 0 ){ ne = *(image2+ii*samps+jj); nesteps = 1.4142 * k; break;}
    177168                        }
    178                        
     169
    179170                        /* Northwest */
    180171                        for ( k = 1; k < infinit; k++ ){
     
    183174                                if ( *(image2+ii*samps+jj) != 0 ){ nw = *(image2+ii*samps+jj); nwsteps = 1.4142 * k; break;}
    184175                        }
    185                        
     176
    186177                        /* Southwest */
    187178                        for ( k = 1; k < infinit; k++ ){
     
    198189                                if ( *(image2+ii*samps+jj) != 0 ){ nne = *(image2+ii*samps+jj); nnesteps = 2.2361 * k; break;}
    199190                        }
    200                        
     191
    201192                        /* ENE */
    202193                        for ( k = 1; k < infinit; k++ ){
     
    205196                                if ( *(image2+ii*samps+jj) != 0 ){ ene = *(image2+ii*samps+jj); enesteps = 2.2361 * k; break;}
    206197                        }
    207                        
     198
    208199                        /* ESE */
    209200                        for ( k = 1; k < infinit; k++ ){
     
    212203                                if ( *(image2+ii*samps+jj) != 0 ){ ese = *(image2+ii*samps+jj); esesteps = 2.2361 * k; break;}
    213204                        }
    214                        
     205
    215206                        /* SSE */
    216207                        for ( k = 1; k < infinit; k++ ){
     
    226217                                if ( *(image2+ii*samps+jj) != 0 ){ ssw = *(image2+ii*samps+jj); sswsteps = 2.2361 * k; break;}
    227218                        }
    228                        
     219
    229220                        /* WSW */
    230221                        for ( k = 1; k < infinit; k++ ){
     
    233224                                if ( *(image2+ii*samps+jj) != 0 ){ wsw = *(image2+ii*samps+jj); wswsteps = 2.2361 * k; break;}
    234225                        }
    235                        
     226
    236227                        /* WNW */
    237228                        for ( k = 1; k < infinit; k++ ){
     
    240231                                if ( *(image2+ii*samps+jj) != 0 ){ wnw = *(image2+ii*samps+jj); wnwsteps = 2.2361 * k; break;}
    241232                        }
    242                        
     233
    243234                        /* NNW */
    244235                        for ( k = 1; k < infinit; k++ ){
     
    247238                                if ( *(image2+ii*samps+jj) != 0 ){ nnw = *(image2+ii*samps+jj); nnwsteps = 2.2361 * k; break;}
    248239                        }
    249                        
     240
    250241                        elev = 0; range = 0;
    251242/*NSEW*/                       
     
    259250                        if ( swsteps > 0.5 ){ elev +=    sw / swsteps; range +=  1.00 / swsteps;}
    260251                        if ( sesteps > 0.5 ){ elev +=    se / sesteps; range +=  1.00 / sesteps;}
    261                        
     252
    262253/*Other 8*/
    263254                        if ( nnesteps > 0.5 ){ elev += nne / nnesteps; range +=  1.00 / nnesteps;}
     
    269260                        if ( wnwsteps > 0.5 ){ elev += wnw / wnwsteps; range +=  1.00 / wnwsteps;}
    270261                        if ( nnwsteps > 0.5 ){ elev += nnw / nnwsteps; range +=  1.00 / nnwsteps;}
    271                                                                        
     262
    272263                        //temp = ( elev / range ) + 0.5 ;
    273264                        temp = ( elev / range );
     
    275266                        //if ( temp > 10000 ) temp = 10000;
    276267                        //if ( temp <     0 ) temp =     0;
    277                        
     268
    278269                        #ifdef _DEBUG2_
    279270                                //_printLine_(temp << " " << elev << " " << range << " ");
     
    284275        }
    285276
    286 
    287 
    288277        for ( i = 0; i < lines; i++ ){
    289278                for ( j = 0; j < samps; j++ ){
     
    292281        }
    293282
    294 
    295283        for ( i = 0; i < lines; i++ ){
    296284                for ( j = 0; j < samps; j++ ){
     
    298286                }
    299287        }
    300        
     288
    301289        if ( smooth == 0 ) goto there2;         
    302                
    303                
     290
    304291/************************ SMOOTH THE RESULT ***********************/           
    305                
     292
    306293        image4 = xNew<double>(lines*samps);
    307294        memcpy(image4,image3,lines*samps*sizeof(double));
    308 
    309295
    310296        for ( i = 0; i < lines; i++ ) {
    311297                for ( j = 0; j < samps; j++ ) {
    312298                        if ( *(image4+i*samps+j) != 0 ) { *(image3+i*samps+j) = *(image2+i*samps+j) ; continue; }
    313 
    314299
    315300                        for ( k = 1; k < infinit; k++ ) { /* Find the smallest box size with data */
     
    324309                                }
    325310                        }
    326                
     311
    327312                        k_nowset:
    328313                        k = k / 4; if ( k < 1 ) k = 1; /* Errrrr.  Make it fourth size */
     
    343328        }
    344329
    345                
    346330there2:         
    347 
    348331
    349332        /*Allocate output image: */
     
    352335
    353336        time(&t2);     
    354        
     337
    355338        #ifdef _DEBUG2_
    356339                _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" );
     
    358341                printf ( "\n");
    359342        #endif
    360        
     343
    361344        end:
    362345
Note: See TracChangeset for help on using the changeset viewer.