Mediaanisuodin
Esimerkkiohjelma suodattaa harmaasävykuvan mediaanisuodatuksella. Mediaania varten otetaan kuvasta kerrallaan 3*3 pikseliä ja lasketaan yhdeksästä pikselistä mediaani, joka sijoitetaan yhdeksän pikselin muodotaman "neliön" keskelle.
public void mediaanisuodin() { int[] pikselit = new int[9]; int y,x,y1,x1; int i=0; for(y=1; y<h-1; y++) // h on kuvan korkeus { for(x=1; x<w-1; x++) // w on kuvan leveys { for(y1=-1; y1<=1; y1++) { for(x1=-1; x1<=1; x1++) { pikselit[i++] = kuva_2D[y+y1][x+x1]; } } kuva_2D[y][x] = mediaani(pikselit); i=0; } } } public int mediaani(int[] taulu) { int pituus = taulu.length; for(int i=0; i<pituus-1; i++) { for(int j=i+1; j<pituus; j++) { if(taulu[i] > taulu[j]) { int apu = taulu[i]; taulu[i] = taulu[j]; taulu[j] = apu; } } } return taulu[pituus/2]; }
Esimerkkikuva mediaanisuodatetusta kuvasta