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