Filtru median

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 13 martie 2013; verificările necesită 22 de modificări .

Filtrul median este un tip de filtru digital utilizat pe scară largă în procesarea semnalului digital și a imaginii pentru a reduce zgomotul . Filtrul median este un filtru FIR neliniar .

Valorile eșantionului din interiorul ferestrei de filtru sunt sortate în ordine crescătoare (descrescătoare); iar valoarea din mijlocul listei ordonate merge la ieșirea filtrului. În cazul unui număr par de mostre în fereastră, valoarea de ieșire a filtrului este egală cu media celor două mostre din mijlocul listei ordonate. Fereastra se deplasează de-a lungul semnalului filtrat și calculele se repetă.

Filtrarea mediană este o procedură eficientă de procesare a semnalelor afectate de zgomotul de impuls.

Exemple

Exemplul 1

Mai jos este un exemplu de aplicare a unui filtru median pentru un semnal unidimensional cu o fereastră cu trei eșantioane la matricea de intrare x (valorile duplicate introduse artificial sunt afișate cu aldine ):

x = [2 80 6 3]

și, în sfârșit:

y = [2 6 6 3] - ieșirea mediană a filtrului

Exemplul 2

Filtrul median de la semnalul de intrare creează o imagine mediană a semnalului . Semnalul de intrare este transmis la filtrul median . În filtrul median, mai întâi , sunt selectate valorile care intră în fereastra filtrului atunci când fereastra este în punctul . Apoi, valorile ferestrei sunt sortate după funcția de comparare a valorii și este construit un set ordonat , apoi valoarea mediană ( mediana ) este selectată și scrisă în .

Astfel, filtrul median este o secvență de trei acțiuni:

  1. Selectarea valorilor care intră în fereastra de filtrare .
  2. Sortarea valorilor ferestrei .
  3. Selectarea din valoarea mediană și scrierea acesteia în imaginea semnalului median în punctul cu coordonatele ,   .

Acești pași se repetă pentru fiecare punct al semnalului de intrare.

Filtru median 2D ( pseudocod )

Algoritmul primitiv de filtru median 2D arată cam așa:

alocați outputPixelValue[lățimea imaginii][înălțimea imaginii] edgex := (latimea ferestrei / 2) rotunjit in jos edgey := (înălțimea ferestrei / 2) rotunjit în jos pentru x de la edgex la lățimea imaginii - edgex pentru y de la margine la înălțimea imaginii - edgey alocați colorArray[lățimea ferestrei][înălțimea ferestrei] fx de la 0 la lățimea ferestrei fy de la 0 la înălțimea ferestrei colorArray[fx][fy] := inputPixelValue[x + fx - edgex][y + fy - edgey] sortați toate intrările în colorArray[][] outputPixelValue[x][y] := colorArray[lățimea ferestrei / 2][înălțimea ferestrei / 2]

Caracteristicile acestui algoritm:

Vezi și

Link -uri