Medianos filtras

Veikimo principas

Tam reikia peržiūrėti visą duomenų signalą, pereinant iš eilės visus duomenis, kiekvieną iš jų pakeičiant vidurine kaimyninių duomenų reikšme. Kaip kaimynai bus atrinkti nurodoma taip vadinamu „langu“, kuris iš eilės pastumiamas nuo vieno duomens prie kito, kol peržiūrimas visas jų signalas. Vienmačiams signalams akivaizdžiu konkretaus duomens langu būtų keli prieš ir po jo einantys duomenys, tuo tarpu dvimačiams (ir esant daugiau matų) signalams, tokiems kaip vaizdai, gali būti žymiai sudėtingesni „dėžučių“ ar „kryžiukų“ pavidalo langai. Reiktų pastebėti, kad jeigu langui imamas kaimynų kartu su pačiu duomeniu nelyginis skaičius, tai visai nesunku surasti vidurinę reikšmę, tereikia duomenis išrūšiuoti jų reikšmių didėjimo tvarka ir paimti vidurinio duomens reikšmę. Lyginio skaičiaus atveju gali būti daugiau nei viena vidurinė reikšmė.

Vienmačio atvejo išnagrinėjimas

Vidurinių reikšmių filtravimui paimkime langą su dviem kaimynais, kurių vienas eina iškart prieš, o kitas iš karto po konkretaus duomens. Pirminiu vienmačių duomenų signalu lai būna x = [2, 80, 6, 3].
Filtruodami x signalą gautume tokį y duomenų signalą, kurio
y[1] = vidurinReik[2, 2, 80] = 2;

y[2] = vidurinReik[2, 80, 6] = vidurinReik[2, 6, 80] = 6;

y[3] = vidurinReik[80, 6, 3] = vidurinReik[3, 6, 80] = 6;

y[4] = vidurinReik[6, 3, 3] = vidurinReik[3, 3, 6] = 3,
t. y. y = [2, 6, 6, 3].

Dvimačio medianos filtro įgyvendinimo klausimai

Kaip paprastai, daugiausiai pastangų ir laiko užima kiekvieno lango vidurinės reikšmės ieškojimas. Kadangi filtrui reikia peržiūrėti langus daugumai signalo duomenų, dideliems signalams, tokiems kaip atvaizdai, vidurinės reikšmės ieškojimo veiksmingumas labai svarbus rodiklis, nusakantis, kaip ilgai bus atliekamas darbas. Paprastas, kaip vaniliniai ledai, anksčiau aprašytas įgyvendinimas kiekvienam langui surūšiuoja visus duomenis, kad būtų galima atrasti jame vidurinę reikšmę, tačiau, kai reikia tik vidurinės reikšmės iš visų likusių, galima pasinaudoti daug veiksmingesniais jos išrinkimo būdais.
Be to, kai kuriuose duomenų signaluose tėra reikšmės iš sveikų skaičių aibės, tai labai dažna atvaizdams. Tokiais atvejais histogramų vidurinių reikšmių ieškojimas gali būti žymiai greitesnis, nes labai paprasta atnaujinti histogramas pereinant tarp gretimų langų, o vidurinės reikšmės išrinkimui histogramoje daug pastangų nereikia.

Savybė išsaugoti kraštines

Medianos filtras yra vienas iš glodinimo būdų, tokių kaip Gausinis suliejimas (angl. Gaussian blur). Visi išlyginimo būdai veiksmingi šalinant triukšmą iš signalo jo tolygiuose ploteliuose ar dalyse, tačiau skirtingai paveikia kraštines. Labai dažnai mažinant triukšmą duomenų signale, tuo pat metu labai svarbu yra išsaugoti kraštines. Pavyzdžiui, kraštinės labai svarbios tam, kaip atvaizdas atrodys žvelgiant žmogaus akimis. Kai (Gausinio) triukšmo lygis yra nedidelis ar nuosaikus, šalinant triukšmą bei išsaugant kraštus su nekintamo dydžio langu, akivaizdžiai tinkamesnis už Gausinį suliejimą yra medianos filtras. Tačiau kai (Gausinio) triukšmo lygis aukštas, medianos filtras ne toks jau geras palyginus su Gausiniu suliejimu. Tuo tarpu medianos filtras ypatingai veiksmingas taškiniam triukšmui (angl. speckle noise) bei druskiniam ir pipiriniam (didelių trumpų pokyčių) triukšmui (angl. salt and pepper noise). Štai kodėl medianos filtras plačiai naudojamas skaitmeniniame atvaizdų apdirbime.