Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Windows 7, XP
  • Metode za filtriranje signala srednje filtriranje. Filtriranje medijana

Metode za filtriranje signala srednje filtriranje. Filtriranje medijana

Filtriranje medijana je tehnika nelinearne obrade signala koju je razvio Tukey. Ova metoda je korisna za suzbijanje šuma na slici. Jednodimenzionalni srednji filter je klizni prozor pokrivaju neparan broj elemenata slike. Centralna stavka je zamijenjena medijanom svih stavki u prozoru. Medijan diskretnog niza za nepar N je onaj element za koji postoje elementi manji ili jednaki njemu po veličini i elementi koji su mu veći ili jednaki po veličini.

Neka elementi slike sa nivoima 80, 90, 200, 110 i 120 padnu u prozor; u ovom slučaju, središnji element treba zamijeniti vrijednošću od 110, što je medijana uređenog niza 80, 90, 110, 200. Ako je, u ovom primjeru, vrijednost 200 šiljak šuma u monotono rastućem nizu , tada će srednje filtriranje pružiti značajno poboljšanje. Naprotiv, ako vrijednost od 200 odgovara korisnom signalnom impulsu (kada se koriste širokopojasni senzori), tada će obrada dovesti do gubitka jasnoće reproducirane slike. Dakle, srednji filter u nekim slučajevima obezbeđuje supresiju šuma, u drugim izaziva potiskivanje neželjenog signala.

Razmotrite efekat medijane i usrednjavanja (izglađivanja) filtera sa prozorom od pet elemenata na stepenasti, pilasti, pulsni i trokutasti diskretni signali(sl. 4.23). Iz ovih dijagrama se može vidjeti da srednji filter ne utječe na funkcije koraka ili rampe, što je obično poželjno svojstvo. Međutim, ovaj filter potiskuje impulsne signale čije trajanje

je manja od polovine širine prozora. Filter također izravnava vrh trokutne funkcije.

Mogućnosti akcione analize srednji filter ograničeno. Može se pokazati da je medijan proizvoda konstante i niza:

Štaviše,

Međutim, medijan zbira dva proizvoljna niza nije jednak zbroju njihovih medijana:

Ova nejednakost se može provjeriti na primjeru nizova 80, 90, 100, 110, 120 i 80, 90, 100, 90, 80.

Moguće su različite strategije za primjenu srednjeg filtera za suzbijanje buke. Jedan preporučuje da počnete sa srednjim filterom koji obuhvata tri elementa slike. Ako je slabljenje signala zanemarljivo, prozor filtera se proširuje na pet elemenata. Ovo se radi sve dok srednje filtriranje ne učini više štete nego koristi.

Druga mogućnost je da se izvrši kaskadno srednje filtriranje signala pomoću fiksnog ili varijabilna širina prozor. Uglavnom,

neka od područja koja ostaju nepromijenjena nakon jednog tretmana filterom ne mijenjaju se nakon ponovljenog tretmana. Područja u kojima je trajanje pulsni signali je manji od polovine širine prozora, bit će podložan promjenama nakon svakog ciklusa obrade.

Koncept srednjeg filtera može se lako generalizirati na dvije dimenzije primjenom 2D prozora željenog oblika, kao što je pravokutni ili skoro kružni. Očigledno, dvodimenzionalni prozorski srednji filter pruža bolju supresiju šuma od sukcesivno primijenjenih horizontalnih i vertikalnih jednodimenzionalnih jednodimenzionalnih prozorskih medijanskih filtera. 2D obrada, međutim, rezultira značajnijim slabljenjem signala.

Uvod

srednje filtriranje digitalnog signala

Digitalna obrada signala našla je široku primenu u različitim oblastima delatnosti: televiziji, radaru, komunikacijama, meteorologiji, seizmologiji, medicini, analizi govora i telefoniji, kao i u obradi slika i polja različite prirode. U nekim oblastima ekonomske aktivnosti, kao što je bankarstvo, obrada digitalnih finansijskih tokova je od fundamentalnog značaja.

Razvoj računarske i mikroprocesorske tehnologije dovodi do stvaranja sve pouzdanije, brze, minijaturne, kvalitetnije i jeftine opreme. Digitalne tehnologije postali toliko rašireni da ih koristimo u svakodnevnom životu, ne primjećujući zapravo: mobilni telefon, CD plejer, kompjuter itd.

U toku ovog rada potrebno je razmotriti prednosti i nedostatke medijanskog filtriranja. Naučite kako to funkcionira srednji filteri... Koristeći program MatLab712 R2011a, pokažite njegov rad na primjeru.

Teorijski dio DSP-a

Medijan filter

Sve linearni algoritmi filtriranje rezultira izglađivanjem oštrih promjena u svjetlini obrađenih slika. Ovaj nedostatak, koji je posebno značajan ako je potrošač informacija osoba, u principu se ne može isključiti u okviru linearne obrade. Poenta je da su linearne procedure optimalne za Gausovu distribuciju signala, šuma i posmatranih podataka. Prave slike, strogo govoreći, ne poštuju ovu distribuciju vjerovatnoće. Štoviše, jedan od glavnih razloga za to je prisutnost raznih granica, razlika u svjetlini, prijelaza s jedne teksture na drugu, itd. Upravo to uzrokuje loš prijenos granica s linearnim filtriranjem.

Druga karakteristika linearnog filtriranja je njegova optimalnost, kao što je upravo pomenuto, sa Gausovom prirodom šuma. Obično je ovaj uslov ispunjen interferencijom šuma u slikama, stoga, kada su potisnuti, linearni algoritmi imaju visoke performanse. Međutim, često morate imati posla sa slikama koje su izobličene drugim vrstama šuma. Jedan od njih je impulsna buka. Kada su joj izložene, na slici se uočavaju bijele i/ili crne tačke, haotično razbacane po kadru. Upotreba linearnog filtriranja u ovom slučaju je neefikasna - svaki od ulaznih impulsa (zapravo, delta funkcija) daje odgovor u obliku impulsnog odziva filtera, a njihova kombinacija doprinosi širenju smetnji na cijelom području okvir.

Uspješno rješenje ovih problema je korištenje medijanskog filtriranja, koje je predložio J. Tukey 1971. za analizu ekonomskih procesa. U zbirci je predstavljena najkompletnija studija medijanskog filtriranja u odnosu na obradu slike. Imajte na umu da je srednje filtriranje heuristička metoda obrade, a njegov algoritam nije matematičko rješenje strogo formulisan zadatak. Stoga istraživači veliku pažnju posvećuju analizi efikasnosti obrade slike na osnovu nje i poređenju sa drugim metodama.

Prilikom primjene filtera medijane (MF), svaka točka okvira se obrađuje sekvencijalno, kao rezultat toga se formira niz procjena. U idealnom slučaju, obrada na različitim tačkama je nezavisna (ovaj MF je sličan filteru maske), ali da bi se ubrzao, preporučljivo je algoritamski koristiti prethodno obavljene proračune u svakom koraku.

Medijansko filtriranje koristi dvodimenzionalni prozor (otvor filtera), obično sa centralnom simetrijom, sa središtem smještenim na trenutnoj tački filtriranja. Na sl. 1.1 prikazuje dva primjera najčešće korištenih križnih i četvrtastih prozora. Dimenzije otvora su među parametrima koji se optimizuju u procesu analize efikasnosti algoritma. Uzorci slike unutar prozora čine radni uzorak trenutnog koraka.

Rice. 1.1.

Dvodimenzionalna priroda prozora omogućava izvođenje u suštini dvodimenzionalnog filtriranja, budući da podaci iz oba trenutne linije i kolone, i od susjednih. Označimo radni uzorak kao jednodimenzionalni niz; broj njegovih elemenata jednak je veličini prozora, a njihov raspored je proizvoljan. Obično se koriste prozori sa neparnim brojem tačaka (to se automatski osigurava centralnom simetrijom otvora i kada se u njegovu kompoziciju uključi i sama centralna tačka). Ako redoslijed poredate uzlaznim redoslijedom, tada će njegov medijan biti element uzorka koji zauzima središnju poziciju u ovom uređenom nizu. Broj dobijen na ovaj način je proizvod filtera za trenutnu tačku okvira. Jasno je da rezultat takve obrade zapravo ne zavisi od redosleda u kojem su elementi slike predstavljeni u radnom uzorku. Uvedemo formalnu notaciju za opisani postupak u obliku:

x * = med (y 1, y 2, ..., y n) (1.1)

Pogledajmo primjer. Pretpostavimo da uzorak ima oblik: Y = (136,110,99,45,250,55,158,104,75), a element 250, koji se nalazi u njegovom centru, odgovara trenutnoj tački filtriranja (i 1, i 2) (slika 1.1). Velika važnost svjetlina u ovoj tački kadra može biti rezultat impulsnog (tačkastog) šuma. Uzorak poredan rastućim redom ima oblik (45,55,75,99,104,110,136,158,250), pa prema proceduri (1.1) dobijamo x * = med (y 1, y 2, ..., y 9) = 104. Vidimo da je uticaj “susjeda” na rezultat filtriranja u trenutnoj tački doveo do “zanemarivanja” impulsne emisije svjetline, što bi trebalo smatrati efektom filtriranja. Ako impulsni šum nije točkast, već pokriva neko lokalno područje, onda se može i potisnuti. To će se dogoditi ako je veličina ovog lokalnog područja manja od polovine veličine MF otvora. Stoga, da bi se potisnuo impulsni šum koji utiče na lokalna područja slike, veličinu MF otvora treba povećati.

Iz (1.1) proizilazi da je djelovanje MF-a da “ignorira” ekstremne vrijednosti ulaznog uzorka - i pozitivne i negativne outliers. Ovaj princip poništavanja smetnji može se primijeniti za smanjenje šuma slike. Međutim, studija potiskivanja buke korištenjem medijanskog filtriranja pokazuje da je njegova efikasnost u rješavanju ovog problema niža od one kod linearnog filtriranja.

Eksperimentalni rezultati koji ilustruju rad MF-a prikazani su na Sl. 1.2. U eksperimentima smo koristili MF koji ima kvadratni otvor sa stranom jednakom 3. Lijevi red prikazuje slike izobličene šumom, a desni red rezultate njihovog srednjeg filtriranja. Na sl. 1.2 a i sl. 1.2.c prikazuje originalnu sliku izobličenu impulsni šum... Kada je bio superponiran, korišten je generator slučajnih brojeva sa uniformnim zakonom raspodjele na intervalu, koji generiše nezavisne slučajne brojeve u svim tačkama okvira. Intenzitet smetnje je određen vjerovatnoćom p njenog pojavljivanja u svakoj tački. Ako za slučajni broj n i1i2 formiran u tački (i 1, i 2), uslov n i1i2

Rice. 1.2.

Rice. 1.2. e prikazuje sliku izobličenu nezavisnim Gausovim šumom pri omjeru signal-šum q 2 = -5 dB, a sl. 1.2.f - rezultat njegove filtracije srednjim filterom. Uslovi ovog eksperimenta omogućavaju da se njegovi rezultati uporede sa rezultatima linearne filtracije razmatrane gore. Tabela 1.1 daje podatke koji omogućavaju takvo poređenje. Za različite metode filtriranja, ova tabela daje vrijednosti relativnog srednjeg kvadrata greške q 2 i koeficijenta prigušenja buke r za slučaj kada je omjer signal-šum na ulazu filtera -5 dB.

Tabela 1.1. Poređenje efikasnosti supresije šuma pri filtriranju slika, q 2 = -5 dB.

Najefikasniji je dvodimenzionalni Wiener filter, koji smanjuje srednji kvadrat grešaka za 17 puta. Srednji filter ima najmanju efikasnost među svim razmatranim filterima, odgovara r = 5,86. Ipak, ovaj broj ukazuje da je uz njegovu pomoć moguće značajno smanjiti nivo šuma na slici.

Istovremeno, kao što je gore navedeno i kao što je prikazano na sl. 1.2.e, medijalno filtriranje izglađuje ivice slike u manjoj mjeri nego bilo koje linearno filtriranje. Mehanizam ove pojave je vrlo jednostavan i glasi kako slijedi. Pretpostavimo da se otvor filtera nalazi blizu granice koja razdvaja svijetle i tamne dijelove slike, dok se njegov centar nalazi u području tamnog područja. Tada će, najvjerovatnije, radna selekcija sadržavati veći broj elemenata s niskim vrijednostima svjetline, te će stoga medijan biti među onim elementima radne selekcije koji odgovaraju ovoj oblasti slike. Situacija je obrnuta ako se centar otvora blende pomjeri u područje veće svjetline. Ali to takođe znači da je MF osjetljiv na promjene u svjetlini. Postoji mnogo tumačenja metoda rada MF, razmotrimo još jednu, na primjer, njegovu upotrebu u obradi slika krvnih stanica - granulocita. Prije mjerenja veličine granulocita, njegova slika je izglađena srednjim filterom kako bi se eliminirale granule koje bi mogle utjecati na rezultat mjerenja. Obično, u procesu medijanskog filtriranja, vrijednosti signala u određenoj blizini tačke u kojoj se izračunava odziv filtera sortiraju se uzlaznim ili opadajućim redoslijedom u niz varijacija. Odziv filtera je definiran kao medijan - vrijednost signala sredine (centra) varijacione serije. U nastavku, ovo susjedstvo će se zvati prozor filtera. Osim toga, radi jednostavnosti, razmotrit ćemo filter s kvadratnim prozorom veličine n × n.

Stoga, kada se izračunava medijana u prozoru filtera, broj operacija s podacima, na primjer, broj operacija sortiranja, jednak je n 2. Prilikom obrade slike veličine M × N tačaka (piksela), broj operacija podataka bit će velik i iznosit će M × N × n 2. Različite operacije zahtijevaju različita vremena izvršenja. Skeniranjem slike u nizu, operacije sortiranja koje oduzimaju najviše vremena mogu se smanjiti. Dakle, kada se prelazi iz tačke o1 sa prozorom w1 do tačke o2 sa prozorom w2 na Sl. 1.3. moguće je isključiti tačke kolone 1 iz varijacionog niza prozora w1, sortirati tačke kolone 6 i spojiti dva dobijena varijantna niza u jedan. Ovaj algoritam radi brže u odnosu na nezavisno sortiranje u svakom prozoru, ali ukupan broj manipulacija podacima (iako manje napornih), na primjer, barem nabrajanje podataka, ostaje isti, odnosno prilično velik. Stoga su, uz srednje filtriranje slika, obično ograničene na prozore od 3 × 3 ili 5 × 5 i rijetko više, što je sasvim dovoljno, na primjer, za uklanjanje impulsnog šuma.

Rice. 1.3. Skeniranje slike sa srednjim prozorom filtera

Ista ograničenja su prisilno prihvaćena za različite nelinearne operacije morfološke obrade, koje se izvode u geometrijskom prostoru slike, a koje se, za razliku od linearnih operacija, ne mogu izvoditi u Fourierovom prostoru. Istovremeno, postoji niz problema obrade slike koji se mogu efikasno riješiti korištenjem medijanskog filtera, ali zahtijevaju veliki prozor. Jedan od ovih zadataka bit će razmotren u nastavku. Stoga, moguće povećanje srednje brzine filtriranja obećava u zadacima obrade slike.

Metode srednjeg filtriranja su prilično različite. Mogu se poboljšati. Jedna takva nadogradnja se zove adaptivno srednje filtriranje.

Filtriranje medijana također ima svoje nedostatke. Konkretno, eksperimentalno je utvrđeno da ova metoda ima relativno slabu efikasnost u filtriranju tzv. fluktuacionog šuma. Osim toga, kako se veličina maske povećava, rubovi slike su zamućeni i, kao posljedica toga, jasnoća slike je smanjena. Ovi nedostaci metode mogu se minimizirati korištenjem medijanskog filtriranja s dinamičkom veličinom maske (prilagodljivo srednje filtriranje). Princip izračunavanja centralne reference u lokalnoj obradi slike pomoću kliznog prozora ostaje isti. Ovaj medijan je iz skupa uređenih uzoraka koji padaju u prozor (maska), a veličina kliznog prozora (maske) je dinamička i ovisi o svjetlini susjednih piksela.

Uvedemo koeficijent praga odstupanja svjetline S threshold =. Vrijednosti odstupanja svjetline susjednih piksela A (r, n, m), koje padaju u prozor veličine n × m, u odnosu na svjetlinu središnje reference A (r), biće zapisane u oblik (1.2):

Tada će kriterij prema kojem je potrebno povećati veličinu maske sa središnjom referencom r imati oblik:

Na osnovu opisanog algoritma razvijen je kompjuterski program koji je u praksi potvrdio prednosti adaptivnog medijanskog filtriranja.

Ako je vaša inženjerska pozadina slična mojoj, onda vjerojatno znate mnogo o različitim vrstama linijskih filtera, čiji je glavni zadatak propuštanje signala u jednom frekvencijskom rasponu i odlaganje signala u preostalim rasponima. Ovi filteri su naravno nezamjenjivi za mnoge vrste buke. Međutim, u stvarnom svijetu ugrađenih sistema, potrebno je malo vremena da se shvati da su klasični linijski filteri beskorisni protiv rafalnog šuma (buka kokica).

Impulsni šum obično nastaje iz pseudo slučajnih događaja. Na primjer, pored vašeg uređaja može biti uključen dvosmjerni radio ili se može pojaviti neka vrsta statičkog elektriciteta. Kad god se to dogodi, ulazni signal može biti privremeno izobličen.

Na primjer, kao rezultat analogno-digitalne konverzije, dobijamo sljedeći raspon vrijednosti: 385, 389, 912, 388, 387. Vrijednost 912 je vjerovatno anomalna i treba je odbaciti. Ako isprobate klasični linijski filter, primijetit ćete da će vrijednost 912 imati značajan utjecaj na izlaz. Najbolje rješenje u ovom slučaju bilo bi korištenje srednjeg filtera.

Uprkos očiglednosti ovog pristupa, prema mom iskustvu, srednji filteri se iznenađujuće retko koriste u ugrađenim sistemima. Možda je to zbog nedostatka znanja o njihovom postojanju i poteškoća u implementaciji. Nadam se da će moj post donekle ukloniti ove prepreke.

Ideja iza filtera medijana je jednostavna. Odabire prosjek iz grupe ulaznih vrijednosti i šalje ga na izlaz. Štaviše, obično grupa ima neparan broj vrijednosti, tako da nema problema s izborom.

Do nedavno sam razlikovao tri klase srednjih filtara koji se razlikuju po broju korištenih vrijednosti:

Filtrirajte koristeći 3 vrijednosti (najmanji mogući filter),
- filter koristeći 5, 7 ili 9 vrijednosti (najčešće korišteni),
- filter koristeći 11 ili više vrijednosti.

Trenutno se držim jednostavnije klasifikacije:

Filtrirajte koristeći 3 vrijednosti,
- filter koristeći više od 3 vrijednosti.

Medijan filter od 3

Ovo je najmanji mogući filter. Lako se implementira sa nekoliko operatora i stoga ima mali i brz kod.


uint16_t sredina_3 (uint16_t a, uint16_t b, uint16_t c)
{
uint16_t sredina;

Ako ((a<= b) && (a <= c)){
sredina = (b<= c) ? b: c;
}
drugo (
ako ((b<= a) && (b <= c)){
sredina = (a<= c) ? a: c;
}
drugo (
sredina = (a<= b) ? a: b;
}
}

Povratak u sredinu;
}

Filter medijana> 3

Za filter veći od 3, predlažem da koristite algoritam koji je opisao Phil Ekstrom u izdanju Embedded Systems Programming iz novembra 2000. godine. Extrom koristi povezanu listu. Dobra stvar kod ovog pristupa je da kada se niz sortira, uklanjanje stare vrijednosti i dodavanje nove ne poremeti značajno niz. Stoga ovaj pristup dobro funkcionira s velikim veličinama filtera.

Imajte na umu da je bilo nekih grešaka u originalnom objavljenom kodu koje je Extrom kasnije ispravio. S obzirom da je sada teško pronaći nešto na embedded.com, odlučio sam da objavim svoju implementaciju njegovog koda. Kôd je prvobitno napisan u dinamičkom C-u, ali je za ovu objavu prenet na standardni C. Kod navodno radi, ali na vama je da ga u potpunosti potvrdite.


#define NULL 0
#define STOPPER 0 / * Manji od bilo kojeg datuma * /
#define MEDIAN_FILTER_SIZE 5

uint16_t MedianFilter (uint16_t datum)
{

strukturni par (
struct pair * point; / * Pokazivači koji formiraju listu povezani sortiranim redoslijedom * /
vrijednost uint16_t; / * Vrijednosti za sortiranje * /
};

/ * Bafer parova nwidth * /
statički bafer para struktura = (0);
/ * Pokazivač na kružni bafer podataka * /
statički par struktura * datpoint = bafer;
/ * Čep za lanac * /
statički par struktura mali = (NULL, STOPPER);
/ * Pokazivač na vrh (najveće) povezane liste. * /
statički par struktura big = (& small, 0);

/ * Pokazivač na nasljednika zamijenjene stavke podataka * /
strukturni par * nasljednik;
/ * Pokazivač koji se koristi za skeniranje sortirane liste * /
struct pair * scan;
/ * Prethodna vrijednost skeniranja * /
struct pair * scanold;
/ * Pokazivač na medijanu * /
par struktura * medijan;
uint16_t i;

if (datum == STOPPER) (
datum = STOPPER + 1; / * Nisu dozvoljeni čepovi. * /
}

Ako je ((++ datapoint - bafer)> = MEDIAN_FILTER_SIZE) (
datpoint = bafer; / * Povećajte i umotajte podatke u pokazivač. * /
}

Datapoint-> value = datum; / * Kopiraj u novi datum * /
naslednik = datapoint-> point; / * Sačuvaj pokazivač na nasljednika stare vrijednosti "s * /
medijana = / * Medijana u početku do prvog u lancu * /
scanold = NULL; / * Scanold je u početku null. * /
scan = / * Pokazuje na pokazivač na prvi (najveći) datum u lancu * /

/ * Rukovati lancem prve stavke u lancu kao poseban slučaj * /
if (scan-> point == datapoint) (
skeniranje-> tačka = naslednik;
}


scan = scan-> point; / * spusti lanac * /

/ * Petlja kroz lanac, normalni izlaz iz petlje preko prekida. * /
za (i = 0; i< MEDIAN_FILTER_SIZE; ++i){
/ * Rukovati neparnim brojem u lancu * /
if (scan-> point == datapoint) (
skeniranje-> tačka = naslednik; / * Izvucite stari datum. * /
}

If (scan-> value< datum){ /* If datum is larger than scanned value,*/
datpoint-> point = scanold-> point; / * Povežite ga ovdje. * /
scanold-> point = datapoint; / * Označite ga lancem. * /
datum = STOPPER;
};

/ * Srednja vrijednost pokazivača koraka prema dolje u lancu nakon neparnog elementa * /
medijan = medijan-> tačka; / * srednji pokazivač koraka. * /
if (scan == & mali) (
break; / * Prekid na kraju lanca * /
}
scanold = skeniranje; / * Sačuvajte ovaj pokazivač i * /
scan = scan-> point; / * spusti lanac * /

/ * Rukovati parnim brojem u lancu. * /
if (scan-> point == datapoint) (
skeniranje-> tačka = naslednik;
}

If (scan-> value< datum){
datpoint-> point = scanold-> point;
scanold-> point = datapoint;
datum = STOPPER;
}

Ako (skenirati == & mali) (
break;
}

Scanold = skeniranje;
scan = scan-> point;
}

vrati vrijednost medijana->;
}

Da biste koristili ovaj filter, jednostavno pozovite funkciju svaki put kada primite novu ulaznu vrijednost. Funkcija će vratiti prosjek posljednjih prihvaćenih vrijednosti, čiji je broj određen konstantom MEDIAN_FILTER_SIZE.

Ovaj algoritam može koristiti priličnu količinu RAM-a (naravno, to ovisi o veličini filtera), jer pohranjuje ulazne vrijednosti i pokazivače na strukture. Međutim, ako to nije problem, onda je algoritam zaista dobar za korištenje jer je znatno brži od algoritama zasnovanih na sortiranju.

Filtriranje medijane zasnovano na sortiranju

U staroj verziji ovog članka, za srednje filtere veličine 5, 7 ili 9, podržao sam pristup baziran na algoritmu sortiranja. Sada sam se predomislio. Međutim, ako ih želite koristiti, dajem vam osnovni kod:


if (ADC_Buffer_Full) (

Uint_fast16_t adc_copy;
uint_fast16_t filtered_cnts;

/ * Kopirajte podatke * /
memcpy (adc_copy, ADC_Counts, sizeof (adc_copy));

/ * Sortiraj * /
shell_sort (adc_copy, MEDIAN_FILTER_SIZE);

/ * Uzmi srednju vrijednost * /
filtered_cnts = adc_copy [(MEDIAN_FILTER_SIZE - 1U) / 2U];

/ * Pretvori u inženjerske jedinice * /
...

Zaključak

Upotreba srednjih filtera povezana je s određenim troškovima. Očigledno, srednji filteri dodaju kašnjenje stepenastim vrijednostima. Također, srednji filteri mogu potpuno izbrisati informacije o frekvenciji u signalu. Naravno, ako vas zanimaju samo konstantne vrijednosti, onda to nije problem.

Imajući na umu ova upozorenja, i dalje toplo preporučujem da koristite srednje filtere u svojim dizajnima.

Srednji filter implementira proceduru nelinearne redukcije šuma. Srednji filter je prozor W koji klizi preko polja slike i pokriva neparan broj uzoraka. Centralni broj je zamijenjen medijanom svih elemenata slike koji padaju u prozor. Medijan diskretnog niza x1, x2, ..., xL za neparan L je element za koji postoje (L? 1) / 2 elementa manji ili jednaki njemu po veličini i (L? 1) / 2 elementi veće ili jednake veličine. Drugim riječima, medijan je prosjek u redoslijedu člana niza koji se dobiva namještanjem originalnog niza.

Na primjer, med (20, 10, 3, 7, 7) = 7.

Dvodimenzionalni srednji filter sa prozorom W je definiran na sljedeći način:

Srednji filter se koristi za suzbijanje aditivnog i impulsnog šuma na slici. Karakteristična karakteristika srednjeg filtera je očuvanje razlika u svjetlini (kontura). Srednji filter je posebno efikasan u slučaju impulzivne buke. Utjecaj filtera za izglađivanje i medijana sa prozorom od tri elementa na razliku u luminanciji šum sa aditivnim šumom za jednodimenzionalni signal prikazan je na Sl.

Što se tiče impulsne buke, srednji filter 3 x 3 prozora potpuno potiskuje pojedinačne pikove na ravnoj pozadini, kao i grupe od dva, tri i četiri impulsna pika. Općenito, da bi se potisnula grupa impulsnog šuma, veličina prozora bi trebala biti najmanje dvostruko veća od grupe smetnji.

Među srednjim filterima s prozorom 3x3, najčešći su sljedeći:

Koordinate prikazanih maski pokazuju koliko puta je odgovarajući piksel uključen u gore opisani poredak.

Jedan od najefikasnijih načina da se eliminiše impulsni šum na slici je upotreba srednjeg filtera.

Za svaki piksel u nekom njegovom okruženju (prozoru), traži se srednja vrijednost i dodjeljuje se ovom pikselu. Određivanje srednje vrijednosti: ako je niz piksela sortiran po njihovoj vrijednosti, medijana će biti srednji element tog niza. Shodno tome, veličina prozora mora biti čudna da bi postojao ovaj srednji element.

Medijan se također može odrediti formulom:

gdje je W skup piksela, među kojima se traži medijana, a fi su vrijednosti svjetline ovih piksela.

Za slike u boji koristi se vektorski srednji filter (VMF):

gdje je Fi vrijednosti piksela u 3D prostoru boja, a d je proizvoljna metrika (npr. Euklidska).

Međutim, u svom čistom obliku, srednji filter zamagljuje male detalje, čija je veličina manja od veličine prozora za pronalaženje medijane, te se stoga praktički ne koristi u praksi.

Svi algoritmi linearnog filtriranja izglađuju oštre promjene svjetline obrađenih slika. Ovaj nedostatak, koji je posebno značajan ako je potrošač informacija osoba, u principu se ne može isključiti u okviru linearne obrade. Poenta je da su linearne procedure optimalne za Gausovu distribuciju signala, šuma i posmatranih podataka. Prave slike, strogo govoreći, ne poštuju ovu distribuciju vjerovatnoće. Štoviše, jedan od glavnih razloga za to je prisutnost raznih granica, razlika u svjetlini, prijelaza s jedne teksture na drugu, itd. Upravo to uzrokuje loš prijenos granica s linearnim filtriranjem.

Druga karakteristika linearnog filtriranja je njegova optimalnost, kao što je upravo pomenuto, sa Gausovom prirodom šuma. Obično je ovaj uslov ispunjen interferencijom šuma u slikama, stoga, kada su potisnuti, linearni algoritmi imaju visoke performanse. Međutim, često morate imati posla sa slikama koje su izobličene drugim vrstama šuma. Jedan od njih je impulsna buka. Kada su joj izložene, na slici se uočavaju bijele i/ili crne tačke, haotično razbacane po kadru. Upotreba linearnog filtriranja u ovom slučaju je neefikasna - svaki od ulaznih impulsa (zapravo, delta funkcija) daje odgovor u obliku impulsnog odziva filtera, a njihova kombinacija doprinosi širenju smetnji na cijelom području okvir.

Uspješno rješenje ovih problema je korištenje medijanskog filtriranja, koje je predložio J. Tukey 1971. za analizu ekonomskih procesa. U zbirci je predstavljena najkompletnija studija medijanskog filtriranja u odnosu na obradu slike. Imajte na umu da je filtriranje medijana heuristička metoda obrade; njegov algoritam nije matematičko rješenje striktno formulisanog problema. Stoga istraživači veliku pažnju posvećuju analizi efikasnosti obrade slike na osnovu nje i poređenju sa drugim metodama.

Prilikom primjene filtera medijane (MF), svaka točka okvira se obrađuje sekvencijalno, kao rezultat toga se formira niz procjena. U idealnom slučaju, obrada na različitim tačkama je nezavisna (ovaj MF je sličan filteru maske), ali da bi se ubrzao, preporučljivo je algoritamski koristiti prethodno obavljene proračune u svakom koraku.

Medijansko filtriranje koristi dvodimenzionalni prozor (otvor filtera), obično sa centralnom simetrijom, sa središtem smještenim na trenutnoj tački filtriranja. Na sl. Na slici 3.10 prikazana su dva primjera najčešće korištenih križnih i četvrtastih prozora. Dimenzije otvora su među parametrima koji se optimizuju u procesu analize efikasnosti algoritma. Uzorci slike unutar prozora čine radni uzorak trenutnog koraka.

Rice. 3.10. Primjeri prozora sa srednjim filtriranjem

Dvodimenzionalna priroda prozora omogućava da se izvrši u suštini dvodimenzionalno filtriranje, pošto se podaci iz trenutnog reda i kolone i iz susednih koriste za formiranje procene. Označimo radni uzorak kao jednodimenzionalni niz ; broj njegovih elemenata jednak je veličini prozora, a njihov raspored je proizvoljan. Obično se koriste prozori sa neparnim brojem tačaka (to se automatski osigurava centralnom simetrijom otvora i kada se u njegovu kompoziciju uključi i sama centralna tačka). Ako redoslijed poredate uzlaznim redoslijedom, tada će njegov medijan biti element uzorka koji zauzima središnju poziciju u ovom uređenom nizu. Broj dobijen na ovaj način je proizvod filtera za trenutnu tačku okvira. Jasno je da rezultat takve obrade zapravo ne zavisi od redosleda u kojem su elementi slike predstavljeni u radnom uzorku. Uvedemo formalnu notaciju za opisani postupak u obliku:

. (3.48)

Pogledajmo primjer. Pretpostavimo da izbor ima oblik:, a element 250, koji se nalazi u njegovom centru, odgovara trenutnoj tački filtriranja (slika 3.10). Velika vrijednost svjetline u ovoj tački kadra može biti rezultat impulsne (tačke) smetnje. U ovom slučaju uzorak sortiran rastućim redom ima oblik (45,55,75,99,104,110,136,158,250), dakle, u skladu sa procedurom (3.48), dobijamo. Vidimo da je uticaj “susjeda” na rezultat filtriranja u trenutnoj tački doveo do “zanemarivanja” impulsne emisije svjetline, što bi trebalo smatrati efektom filtriranja. Ako impulsni šum nije točkast, već pokriva neko lokalno područje, onda se može i potisnuti. To će se dogoditi ako je veličina ovog lokalnog područja manja od polovine veličine MF otvora. Stoga, da bi se potisnuo impulsni šum koji utiče na lokalna područja slike, veličinu MF otvora treba povećati.

Iz (3.48) proizilazi da je djelovanje MF-a da “ignorira” ekstremne vrijednosti ulaznog uzorka – i pozitivne i negativne outliers. Ovaj princip poništavanja smetnji može se primijeniti za smanjenje šuma slike. Međutim, studija potiskivanja buke korištenjem medijanskog filtriranja pokazuje da je njegova efikasnost u rješavanju ovog problema niža od one kod linearnog filtriranja.

Eksperimentalni rezultati koji ilustruju rad MF-a prikazani su na Sl. 3.11. U eksperimentima smo koristili MF sa kvadratnim otvorom

strana jednaka 3. Lijevi red prikazuje slike izobličene šumom, a desni red prikazuje rezultate njihovog srednjeg filtriranja. Na sl. 3.11.a i sl. 3.11.c prikazuje originalnu sliku, izobličenu impulsnom bukom. Kada je bio superponiran, korišten je generator slučajnih brojeva sa uniformnim zakonom raspodjele na intervalu, koji generiše nezavisne slučajne brojeve u svim tačkama okvira. Intenzitet smetnje je određen vjerovatnoćom njegovog pojavljivanja u svakoj tački. Ako je uslov bio zadovoljen za slučajni broj generiran u nekoj tački, tada je svjetlina slike u ovoj tački zamijenjena brojem 255, što odgovara maksimalnoj svjetlini (nivo bijele boje). Na sl. 3.11 I efekat impulsnog šuma izobličen je 5% (= 0,05), a na Sl. 3.11.c - 10% elemenata slike. Rezultati obrade ukazuju na gotovo potpuno suzbijanje smetnji u prvom slučaju i njihovo značajno slabljenje u drugom.

Rice. 3.11. Primjeri srednjeg filtriranja

Rice. 3.11.d prikazuje sliku izobličenu nezavisnim Gausovim šumom pri omjeru signal-šum dB, a sl. 3.11.f - rezultat filtriranja sa srednjim filterom. Uslovi ovog eksperimenta omogućavaju da se njegovi rezultati uporede sa rezultatima linearne filtracije razmatrane gore. Tabela 3.1 prikazuje podatke koji omogućavaju ovakvo poređenje. Za različite metode filtriranja, ova tabela daje vrijednosti relativne srednje kvadratne greške i faktora prigušenja buke za slučaj kada je omjer signal-šum na ulazu filtera -5 dB.

Tabela 3.1. Poređenje efikasnosti supresije šuma pri filtriranju slika, dB

filter maske sa optim. NJIHOVIM

maska ​​filter sa uniformom NJIHOVIM

dvodimenzionalni rekurentni filter

dvodimenzionalni Wiener filter

Najefikasniji je dvodimenzionalni Wiener filter, koji smanjuje srednji kvadrat grešaka za 17 puta. Srednji filter ima najmanju efikasnost među svim razmatranim filterima, odgovara = 5,86. Ipak, ovaj broj ukazuje da je uz njegovu pomoć moguće značajno smanjiti nivo šuma na slici.

Istovremeno, kao što je gore navedeno i kao što je prikazano na sl. 3.11.e, medijalno filtriranje izglađuje ivice slike u manjoj mjeri nego bilo koje linearno filtriranje. Mehanizam ove pojave je vrlo jednostavan i glasi kako slijedi. Pretpostavimo da se otvor filtera nalazi blizu granice koja razdvaja svijetle i tamne dijelove slike, dok se njegov centar nalazi u području tamnog područja. Tada će, najvjerovatnije, radna selekcija sadržavati veći broj elemenata s niskim vrijednostima svjetline, te će stoga medijan biti među onim elementima radne selekcije koji odgovaraju ovoj oblasti slike. Situacija je obrnuta ako se centar otvora blende pomjeri u područje veće svjetline. Ali to takođe znači da je MF osjetljiv na promjene u svjetlini.

Top srodni članci