Min Suodatin

Algoritmi käy kuvaa läpi pikseli kerrallaan ja jokaisen pikselin naapuripikselit käydään myös läpi.
Pikselijoukosta etsitään pienin arvoltaan oleva pikseli (tummin) ja se sijoitetaan tulosmatriisiin, ei alkuperäiseen kuvamatriisiin. Esimerkkiohjelman pikselijoukkomäärä on 3*3.

public void minFilter()
{
    int[][] tulos = new int[h][w];
 
    int y,x,y1,x1;
    int pienin = 255;
    int pikseli = 0;
 
    for(y=1; y<h-1; y++)
    {
        for(x=1; x<w-1; x++)
          {    
              for(y1=0; y1<3; y1++)
              {
                  for(x1=0; x1<3; x1++)
                  {
                      pikseli = kuva_2D[y+y1-1][x+x1-1];
 
                      if(pikseli < pienin)
                          pienin = pikseli;
                  }
              }
            tulos[y][x] = pienin; // ei saa muuttaa alkuperäistä kuvaa!
            pienin = 255;
            pikseli = 0;
        }
    }
 
    // kopioidaan tulos alkuperäiseen kuvamatriisiin 
    for(y=0; y<h; y++)
    {
        for(x=0; x<w; x++)
          {
              kuva_2D[y][x] = tulos[y][x];
          }
    }             
}

Esimerkkikuva min -suodatetusta kuvasta
minFilter.JPG

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License