Střední filtr - Median filter - Wikipedia

The střední filtr je nelineární digitální filtrování technika, často používaná k odstranění hluk z obrazu nebo signálu. Takový redukce hluku je typickým krokem předzpracování ke zlepšení výsledků pozdějšího zpracování (například Detekce hrany na obrázku). Medián filtrování je v digitální oblasti velmi široce používán zpracování obrazu protože za určitých podmínek zachovává hrany při odstraňování šumu (viz diskuse níže), ale také má aplikace v zpracování signálu.
Popis algoritmu
Hlavní myšlenkou středního filtru je procházet vstupem signálu po vstupu a nahradit každý vstup znakem medián sousedních záznamů. Vzor sousedů se nazývá „okno“, které se posouvá po vstupu po celém signálu. U jednorozměrných signálů je nejzřetelnějším oknem pouze prvních několik předcházejících a následujících záznamů, zatímco u dvourozměrných (nebo vícerozměrných) dat musí okno obsahovat všechny položky v daném poloměru nebo elipsoidní oblast (tj. střední filtr není a oddělitelný filtr ).
Pracoval jednorozměrný příklad
Abychom demonstrovali, s použitím velikosti okna tři s jednou položkou bezprostředně před a po každé položce, bude mediánový filtr použit na následující jednoduchý jednorozměrný signál:
- X = (2, 3, 80, 6, 2, 3).
Medián tedy filtrovaný výstupní signál y bude:
- y1 = med (2, 3, 80) = 3,
- y2 = med (3, 80, 6) = med (3, 6, 80) = 6,
- y3 = med (80, 6, 2) = med (2, 6, 80) = 6,
- y4 = med (6, 2, 3) = med (2, 3, 6) = 3,
tj. y = (3, 6, 6, 3).
Hraniční problémy
Ve výše uvedeném příkladu, protože před první hodnotou není žádná položka, první hodnota se opakuje, stejně jako u poslední hodnoty, aby se získalo dostatek položek k vyplnění okna. Jedná se o jeden způsob zpracování chybějících okenních záznamů na hranicích signálu, ale existují i další schémata, která mají různé vlastnosti, které mohou být za určitých okolností upřednostňovány:
- Vyhněte se zpracování hranic, s následným oříznutím hranice signálu nebo obrazu nebo bez něj,
- Načítání záznamů z jiných míst v signálu. Například u obrázků mohou být vybrány položky ze vzdálené vodorovné nebo svislé hranice,
- Zmenšování okna blízko hranic, takže každé okno je plné.
Dvojrozměrný medián filtru pseudokód
Kód jednoduchého algoritmu dvourozměrného středního filtru může vypadat takto:
1. přidělte outputPixelValue [šířka obrazu] [výška obrázku] 2. přidělit okno [šířka okna × výška okna] 3. edgex: = (šířka okna / 2) zaokrouhleno dolů4. edgey: = (výška okna / 2) zaokrouhleno dolů pro X od edgex do šířky obrázku - edgex dělat pro y od hrany k výšce obrazu - hrana dělat i = 0 pro fx od 0 do šířky okna dělat pro fy od 0 do výšky okna dělat okno [i]: = inputPixelValue [x + fx - edgex] [y + fy - edgey] i: = i + 1 třídit položky v okně [] outputPixelValue [x] [y]: = okno [šířka okna * výška okna / 2]
Tento algoritmus:
- Zpracovává pouze jeden barevný kanál,
- Používá přístup „nezpracovávat hranice“ (viz výše diskuse o problémech s hranicemi).

Problémy s implementací algoritmu
Obvykle je zdaleka většina výpočetního úsilí a času věnována výpočtu mediánu každého okna. Protože filtr musí zpracovat každou položku v signálu, je u velkých signálů, jako jsou obrázky, účinnost tohoto mediánu výpočtu kritickým faktorem při určování, jak rychle může algoritmus běžet. Naivní implementace popsaná výše seřadí každou položku v okně podle mediánu; protože je však vyžadována pouze střední hodnota v seznamu čísel, výběrové algoritmy může být mnohem efektivnější. Kromě toho některé typy signálů (velmi často u obrázků) používají reprezentace celého čísla: v těchto případech histogram Mediány mohou být mnohem efektivnější, protože je snadné aktualizovat histogram z okna do okna a nalezení mediánu histogramu není nijak zvlášť obtížné.[1]
Vlastnosti ochrany hran
Medián filtrování je jeden druh vyhlazovací techniky lineární Gaussova filtrace. Všechny vyhlazovací techniky jsou účinné při odstraňování šumu v hladkých místech nebo hladkých oblastech signálu, ale nepříznivě ovlivňují okraje. Často je však současně se snižováním šumu v signálu důležité zachovat okraje. Například hrany mají zásadní význam pro vizuální vzhled obrázků. Pro malé až střední úrovně gaussovského šumu je střední filtr prokazatelně lepší než Gaussovské rozostření při odstraňování hluku při zachování hran pro danou pevnou velikost okna.[2] Jeho výkon však není o tolik lepší než Gaussovo rozostření pro vysokou hladinu hluku, zatímco pro skvrnitý hluk a hluk soli a pepře (impulzivní hluk), je obzvláště efektivní.[3] Z tohoto důvodu je medián filtrování v digitální oblasti velmi široce používán zpracování obrazu.
Viz také
- Obrazový šum
- Vážený medián
- pseudo-mediánový filtr
- Lulu uhlazení
- Bilaterální filtr
- Průměr s omezenou platností dat
- Vyhlazení
Reference
- ^ Huang, Thomas S .; Yang, George J .; Tang, Gregory Y. (únor 1979). „Rychlý dvourozměrný algoritmus filtrování mediánu“ (PDF). Transakce IEEE na akustiku, řeč a zpracování signálu. 27 (1): 13–18. doi:10.1109 / TASSP.1979.1163188.
- ^ Arias-Castro, Ery; Donoho, David L. (červen 2009). „Zachovává mediánové filtrování skutečně hrany lépe než lineární filtrování?“. Annals of Statistics. 37 (3): 1172–2009. arXiv:matematika / 0612422. Bibcode:Matematika 2006 ..... 12422A. doi:10.1214 / 08-AOS604. PAN 2509071. Zbl 1160.62086.
- ^ Arce, Gonzalo R. (2005). Nelineární zpracování signálu: statistický přístup. New Jersey, USA: Wiley. ISBN 0-471-67624-1.
externí odkazy
- Rychlá implementace jednorozměrného mediánu filtru MATLAB
- Funkce Mathematica MedianFilter
- Střední filtr
- Rychlý dvourozměrný střední filtr
- Implementace dvourozměrného mediánu filtru v konstantním čase (licence GPL) - doba běhu na pixel tohoto algoritmu je úměrná počtu prvků v histogramu (obvykle je to , kde n je počet bitů na kanál), i když je to zase konstanta.
- Implementace napsaná v různých programovacích jazycích (na Rosettský kód )
- Článek Dr. Dobbse
- Více než 100krát rychlejší vážený mediánový filtr
- Kruhový střední filtr Mediánový filtr pro data s kruhovou hodnotou, jako jsou fázové nebo orientační obrázky (C ++ / Matlab)