Medianfilteret er en type digitalt filter , der i vid udstrækning anvendes i digital signal- og billedbehandling for at reducere støj . Medianfilteret er et ikke- lineært FIR-filter .
Eksempelværdier inde i filtervinduet er sorteret i stigende (faldende) rækkefølge; og værdien i midten af den ordnede liste går til outputtet af filteret. I tilfælde af et lige antal samples i vinduet er outputværdien af filteret lig med gennemsnittet af de to samples i midten af den ordnede liste. Vinduet bevæger sig langs det filtrerede signal, og beregningerne gentages.
Medianfiltrering er en effektiv procedure til behandling af signaler påvirket af impulsstøj.
Nedenfor er et eksempel på anvendelse af et medianfilter for et endimensionelt signal med et tre-sample-vindue til input-arrayet x (kunstigt indførte duplikerede værdier er vist med fed skrift ):
x = [2 80 6 3]
og endelig:
y = [2 6 6 3] - median filteroutput
Medianfilteret fra inputsignalet skaber et medianbillede af signalet . Indgangssignalet føres til medianfilteret . I medianfilteret vælges først de værdier ,
der falder ind i filtervinduet, når vinduet er ved punktet . Dernæst sorteres vinduesværdierne efter værdisammenligningsfunktionen, og der bygges et ordnet sæt , hvorefter medianværdien ( median ) vælges og skrives til .
Således er medianfilteret en sekvens af tre handlinger:
Disse trin gentages for hvert punkt i indgangssignalet.
Den primitive 2D Median filteralgoritme ser nogenlunde sådan ud:
alloker outputPixelValue[billedbredde][billedhøjde] edgex := (vinduesbredde / 2) afrundet nedad kantet := (vindueshøjde / 2) afrundet nedad for x fra edgex til billedbredde - edgex for y fra edgey til billedhøjde - edgey alloker farveArray[vinduesbredde][vindueshøjde] fx fra 0 til vinduesbredde fy fra 0 til vindueshøjde colorArray[fx][fy] := inputPixelValue[x + fx - edgex][y + fy - edgey] sorter alle poster i colorArray[][] outputPixelValue[x][y] := colorArray[vinduesbredde / 2][vindueshøjde / 2]Funktioner af denne algoritme: