Mediánový filtr je typ digitálního filtru široce používaný v digitálním zpracování signálu a obrazu ke snížení šumu . Mediánový filtr je nelineární FIR filtr .
Ukázkové hodnoty uvnitř okna filtru jsou seřazeny ve vzestupném (sestupném) pořadí; a hodnota uprostřed seřazeného seznamu přejde na výstup filtru. V případě sudého počtu vzorků v okně je výstupní hodnota filtru rovna průměru dvou vzorků uprostřed uspořádaného seznamu. Okno se pohybuje podél filtrovaného signálu a výpočty se opakují.
Mediánové filtrování je účinný postup pro zpracování signálů ovlivněných impulsním šumem.
Níže je uveden příklad použití mediánového filtru pro jednorozměrný signál s třívzorkovým oknem na vstupní pole x (uměle zavedené duplicitní hodnoty jsou zobrazeny tučně ):
x = [2 80 6 3]
a nakonec:
y = [2 6 6 3] - střední výstup filtru
Mediánový filtr ze vstupního signálu vytváří střední obraz signálu . Vstupní signál je přiváděn do mediánového filtru . V mediánovém filtru se nejprve vyberou hodnoty
, které spadají do okna filtru, když je okno v bodě . Dále se hodnoty okna seřadí podle funkce porovnání hodnot a sestaví se uspořádaná sada a poté se vybere střední hodnota ( medián ) a zapíše se do .
Mediánový filtr je tedy sledem tří akcí:
Tyto kroky se opakují pro každý bod vstupního signálu.
Primitivní algoritmus 2D Medián filtru vypadá asi takto:
alokovat výstupPixelValue[šířka obrázku][výška obrázku] edgex := (šířka okna / 2) zaokrouhleno dolů edgey := (výška okna / 2) zaokrouhleno dolů pro x z edgex na šířku obrázku - edgex pro y od edgey do výšky obrázku - edgey alokovat colorArray[šířka okna][výška okna] fx od 0 do šířky okna fy od 0 do výšky okna colorArray[fx][fy] := inputPixelValue[x + fx - edgex][y + fy - edgey] seřadit všechny položky v colorArray[][] outputPixelValue[x][y] := colorArray[šířka okna / 2][výška okna / 2]Vlastnosti tohoto algoritmu: