This is an old revision of the document!


Cálculo de Mediana de Pixel em Múltiplas Imagens

Multitemporal (and/or Multisensor) Image filtering using Median

LEGAL program to create images with pixels ranked from highest to lowest values. Change Infolayer names and resolutions accordingly.

For 3 input images:
{
Digital i01, i02, i03,
        Y01, Y02, Y03,
        R01, R02, R03 ("CAT_MNT");
       
Y01 = Recupere (Nome= "R_0720_Filt");
Y02 = Recupere (Nome= "R_0726_Filt");
Y03 = Recupere (Nome= "R_0729_Filt");

i01 = Novo (Nome= "Ys03N_1", ResX=32, ResY=32, Escala=100000);
i02 = Novo (Nome= "Ys03N_2", ResX=32, ResY=32, Escala=100000);
i03 = Novo (Nome= "Ys03N_3", ResX=32, ResY=32, Escala=100000);

R01 = Novo (Nome= "Rs3n01", ResX=32, ResY=32, Escala=100000);
R02 = Novo (Nome= "Rs3n02", ResX=32, ResY=32, Escala=100000);
R03 = Novo (Nome= "Rs3n03", ResX=32, ResY=32, Escala=100000);

i01 = Y01+0.001;
i02 = Y02+0.002;
i03 = Y03+0.003;

R01 = i01>i02 && i01>i03  ? i01 :
                 i02>i03  ? i02 : i03;

i01 = i01==R01 ? 0 : i01; i02 = i02==R01 ? 0 : i02;
i03 = i03==R01 ? 0 : i03; 

R02 = i01>i02 && i01>i03  ? i01 :
                 i02>i03  ? i02 : i03;

i01 = i01==R02 ? 0 : i01; i02 = i02==R02 ? 0 : i02;
i03 = i03==R02 ? 0 : i03; 

R03 = i01>i02 && i01>i03  ? i01 :
                 i02>i03  ? i02 : i03;

}
For 5 input images:
{
Digital i01, i02, i03, i04, i05,
       Y01, Y02, Y03, Y04, Y05,
       R01, R02, R03, R04, R05 ("CAT_MNT");

Y01 = Recupere (Nome= "R_0720_Filt");
Y02 = Recupere (Nome= "R_0726_Filt");
Y03 = Recupere (Nome= "R_0729_Filt");
Y04 = Recupere (Nome= "R_0809_Filt");
Y05 = Recupere (Nome= "R_0824_Filt");

i01 = Novo (Nome= "Ys05N_1", ResX=32, ResY=32, Escala=100000);
i02 = Novo (Nome= "Ys05N_2", ResX=32, ResY=32, Escala=100000);
i03 = Novo (Nome= "Ys05N_3", ResX=32, ResY=32, Escala=100000);
i04 = Novo (Nome= "Ys05N_4", ResX=32, ResY=32, Escala=100000);
i05 = Novo (Nome= "Ys05N_5", ResX=32, ResY=32, Escala=100000);

R01 = Novo (Nome= "Rs5n01", ResX=32, ResY=32, Escala=100000);
R02 = Novo (Nome= "Rs5n02", ResX=32, ResY=32, Escala=100000);
R03 = Novo (Nome= "Rs5n03", ResX=32, ResY=32, Escala=100000);
R04 = Novo (Nome= "Rs5n04", ResX=32, ResY=32, Escala=100000);
R05 = Novo (Nome= "Rs5n05", ResX=32, ResY=32, Escala=100000);

i01 = Y01+0.001;
i02 = Y02+0.002;
i03 = Y03+0.003;
i04 = Y04+0.004;
i05 = Y05+0.005;

R01 = i01>i02 && i01>i03 && i01>i04 && i01>i05 ? i01 :
                 i02>i03 && i02>i04 && i02>i05 ? i02 :
                            i03>i04 && i03>i05 ? i03 :
                                       i04>i05 ? i04 : i05;

i01 = i01==R01 ? 0 : i01; i02 = i02==R01 ? 0 : i02;
i03 = i03==R01 ? 0 : i03; i04 = i04==R01 ? 0 : i04;
i05 = i05==R02 ? 0 : i05;

R02 = i01>i02 && i01>i03 && i01>i04 && i01>i05 ? i01 :
                 i02>i03 && i02>i04 && i02>i05 ? i02 :
                            i03>i04 && i03>i05 ? i03 :
                                       i04>i05 ? i04 : i05;

i01 = i01==R02 ? 0 : i01; i02 = i02==R02 ? 0 : i02;
i03 = i03==R02 ? 0 : i03; i04 = i04==R02 ? 0 : i04;
i05 = i05==R02 ? 0 : i05;

R03 = i01>i02 && i01>i03 && i01>i04 && i01>i05 ? i01 :
                 i02>i03 && i02>i04 && i02>i05 ? i02 :
                            i03>i04 && i03>i05 ? i03 :
                                       i04>i05 ? i04 : i05;

i01 = i01==R03 ? 0 : i01; i02 = i02==R03 ? 0 : i02;
i03 = i03==R03 ? 0 : i03; i04 = i04==R03 ? 0 : i04;
i05 = i05==R03 ? 0 : i05;  

R04 = i01>i02 && i01>i03 && i01>i04 && i01>i05 ? i01 :
                 i02>i03 && i02>i04 && i02>i05 ? i02 :
                            i03>i04 && i03>i05 ? i03 :
                                       i04>i05 ? i04 : i05;

i01 = i01==R04 ? 0 : i01; i02 = i02==R04 ? 0 : i02;
i03 = i03==R04 ? 0 : i03; i04 = i04==R04 ? 0 : i04;
i05 = i05==R04 ? 0 : i05; 

R05 = i01>i02 && i01>i03 && i01>i04 && i01>i05 ? i01 :
                 i02>i03 && i02>i04 && i02>i05 ? i02 :
                            i03>i04 && i03>i05 ? i03 :
                                       i04>i05 ? i04 : i05;
}

Navigation