Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Windows 7, XP
  • Metode filtriranja srednjeg filtriranja signala. Filtriranje medijana

Metode filtriranja srednjeg filtriranja signala. 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 koji pokrivaju neparan broj elemenata slike. Središnja stavka zamjenjuje se 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, te elementi veći ili jednaki njemu po veličini.

Neka elementi slike s razinama 80, 90, 200, 110 i 120 padnu u prozor; u ovom slučaju, središnji element treba zamijeniti vrijednošću 110, što je medijan uređenog niza 80, 90, 110, 200. Ako je u ovom primjeru vrijednost 200 šiljak šuma u monotono rastućem nizu, tada srednje filtriranje će osigurati 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 filtar u nekim slučajevima osigurava potiskivanje šuma, u drugima uzrokuje potiskivanje neželjenog signala.

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

manji je od polovice širine prozora. Filter također izravnava vrh trokutaste funkcije.

Mogućnosti analize akcije srednji filter ograničeno. Može se pokazati da je medijan umnoška konstante i niza:

Štoviše,

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

Ova se nejednakost 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 filtra za suzbijanje buke. Preporuča se početak sa srednjim filtrom koji obuhvaća tri elementa slike. Ako je slabljenje signala zanemarivo, prozor filtra se proširuje na pet elemenata. To se radi sve dok srednje filtriranje ne učini više štete nego koristi.

Druga mogućnost je izvođenje kaskadnog medijanskog filtriranja signala pomoću fiksnog ili promjenjiva širina prozor. Općenito,

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 manja od polovice širine prozora, bit će podložna promjenama nakon svakog ciklusa obrade.

Koncept srednjeg filtra može se lako generalizirati na dvije dimenzije primjenom 2D prozora željenog oblika, poput pravokutnog ili gotovo kružnog. Očito, dvodimenzionalni srednji filtar s prozorom osigurava bolje suzbijanje šuma od uzastopno primijenjenih horizontalnih i vertikalnih jednodimenzionalnih jednodimenzionalnih medijan filtera s prozorima. 2D obrada, međutim, rezultira značajnijim slabljenjem signala.

Uvod

srednje filtriranje digitalnog signala

Digitalna obrada signala našla je široku primjenu u raznim područjima djelatnosti: televiziji, radaru, komunikacijama, meteorologiji, seizmologiji, medicini, analizi govora i telefoniji, kao i u obradi slika i polja različite prirode. U nekim područjima gospodarske djelatnosti, poput bankarstva, obrada digitalnih financijskih tokova od temeljne je važnosti.

Razvoj računalne i mikroprocesorske tehnologije dovodi do stvaranja sve pouzdanije, brze, minijaturne, kvalitetne i jeftine opreme. Digitalne tehnologije postao toliko raširen da ih koristimo u svakodnevnom životu, ne primjećujući: mobilni telefon, CD player, računalo itd.

Tijekom ovog rada potrebno je razmotriti prednosti i nedostatke medijanskog filtriranja. Saznajte kako to funkcionira srednji filteri... Pomoću programa 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 načelu se ne može isključiti u okviru linearne obrade. Stvar je u tome da su linearni postupci optimalni za Gaussovu distribuciju signala, šuma i promatranih podataka. Prave slike, strogo govoreći, ne poštuju ovu raspodjelu vjerojatnosti. Štoviše, jedan od glavnih razloga za to je prisutnost raznih obruba, razlika u svjetlini, prijelaza s jedne teksture na drugu, itd. ... Upravo to uzrokuje loš prijenos granica s linearnim filtriranjem.

Druga značajka linearnog filtriranja je njegova optimalnost, kao što je upravo spomenuto, s Gaussovom prirodom šuma. Obično je ovaj uvjet ispunjen smetnjama šuma u slikama, stoga, kada su potisnute, 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 točke, kaotično razbacane po kadru. Upotreba linearnog filtriranja u ovom slučaju je neučinkovita - svaki od ulaznih impulsa (zapravo, delta funkcija) daje odgovor u obliku filtarskog impulsnog odziva, a njihova kombinacija doprinosi širenju smetnji na cijelom području okvir.

Uspješno rješenje ovih problema je korištenje filtriranja medijana, koje je predložio J. Tukey 1971. za analizu ekonomskih procesa. U zbirci je prikazana najcjelovitija studija medijanskog filtriranja u odnosu na obradu slike. Imajte na umu da je medijalno filtriranje heuristička metoda obrade, a njegov algoritam nije matematičko rješenje strogo formuliran zadatak. Stoga istraživači veliku pažnju posvećuju analizi učinkovitosti obrade slike koja se temelji na njoj i usporedbi s drugim metodama.

Prilikom primjene medijanskog filtra (MF), svaka se točka okvira obrađuje uzastopno, zbog čega se formira slijed procjena. U idealnom slučaju, obrada u različitim točkama je neovisna (ovaj MF je sličan filteru maske), ali kako bi se ubrzala, preporučljivo je algoritamski koristiti prethodno izvedene izračune u svakom koraku.

Medijansko filtriranje koristi dvodimenzionalni prozor (otvor filtera), obično sa središnjom simetrijom, sa središtem smještenim na trenutnoj toč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 optimiziraju u procesu analize učinkovitosti algoritma. Uzorci slike unutar prozora čine radni uzorak trenutnog koraka.

Riža. 1.1.

Dvodimenzionalna priroda prozora omogućuje 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 s neparnim brojem točaka (to se automatski osigurava središnjom simetrijom otvora i kada se u njegov sastav uključi i sama središnja točka). Ako slijed poredate uzlaznim redoslijedom, tada će njegov medijan biti element uzorka koji zauzima središnji položaj u ovom uređenom nizu. Broj dobiven na ovaj način je filtarski proizvod za trenutnu točku okvira. Jasno je da rezultat takve obrade zapravo ne ovisi o slijedu u kojem su elementi slike prikazani 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, smješten u njegovom središtu, odgovara trenutnoj točki filtriranja (i 1, i 2) (slika 1.1). Velika važnost svjetlina u ovoj točki kadra može biti rezultat impulsnog (točkastog) šuma. Uzorak poredan uzlaznim redoslijedom ima oblik (45,55,75,99,104,110,136,158,250), stoga, u skladu s postupkom (1.1), dobivamo x * = med (y 1, y 2, ..., y 9) = 104. Vidimo da je utjecaj “susjeda” na rezultat filtriranja u trenutnoj toč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 polovice veličine MF otvora. Stoga, da bi se suzbili impulsni šum koji utječe na lokalna područja slike, treba povećati veličinu MF otvora.

Iz (1.1) proizlazi 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 učinkovitost u rješavanju ovog problema niža od one kod linearnog filtriranja.

Eksperimentalni rezultati koji ilustriraju rad MF-a prikazani su na Sl. 1.2. U pokusima smo koristili MF kvadratnog otvora sa stranom jednakom 3. Lijevi red prikazuje slike izobličene šumom, a desni rezultat njihovog srednjeg filtriranja. Na sl. 1.2 a i sl. 1.2.c prikazuje izvornu sliku izobličenu impulsni šum... Kada je bio superponiran, korišten je generator slučajnih brojeva s uniformnim zakonom raspodjele na intervalu, koji generira neovisne slučajne brojeve u svim točkama okvira. Intenzitet smetnje određen je vjerojatnošću p njegovog pojavljivanja u svakoj točki. Ako za slučajni broj n i1i2 nastao u točki (i 1, i 2), uvjet n i1i2

Riža. 1.2.

Riža. 1.2. e prikazuje sliku izobličenu neovisnim Gaussovim šumom pri omjeru signal-šum q 2 = -5 dB, a sl. 1.2.f - rezultat njegove filtracije srednjim filtrom. Uvjeti ovog eksperimenta omogućuju usporedbu njegovih rezultata s rezultatima linearne filtracije razmatrane gore. Tablica 1.1 daje podatke koji takvu usporedbu čine mogućom. Za različite metode filtriranja, ova tablica daje vrijednosti relativnog srednjeg kvadrata pogrešaka q 2 i koeficijenta prigušenja buke r za slučaj kada je omjer signal-šum na ulazu filtra -5 dB.

Tablica 1.1. Usporedba učinkovitosti supresije šuma pri filtriranju slika, q 2 = -5 dB.

Najučinkovitiji je dvodimenzionalni Wienerov filtar koji smanjuje srednji kvadrat pogrešaka za 17 puta. Srednji filtar ima najmanju učinkovitost od svih razmatranih filtara, odgovara r = 5,86. Ipak, ovaj broj ukazuje da je uz njegovu pomoć moguće značajno smanjiti razinu šuma na slici.

U isto vrijeme, kao što je gore spomenuto i kao što je prikazano na sl. 1.2.e, medijalno filtriranje izglađuje rubove slike u manjoj mjeri od bilo kojeg linearnog filtriranja. Mehanizam ovog fenomena je vrlo jednostavan i glasi kako slijedi. Pretpostavimo da se otvor filtera nalazi blizu granice koja odvaja svijetla i tamna područja slike, dok se njegovo središte nalazi u području tamnog područja. Tada će, najvjerojatnije, radni uzorak sadržavati veći broj elemenata s niskim vrijednostima svjetline, te će stoga medijan biti među onim elementima radnog odabira koji odgovaraju ovom području slike. Situacija je obrnuta ako se središte otvora blende pomakne u područje veće svjetline. Ali to također znači da je MF osjetljiv na promjene svjetline. Postoje mnoga tumačenja metoda rada MF, razmotrimo još jednu, na primjer, njegovu upotrebu u obradi slika krvnih stanica - granulocita. Prije mjerenja veličine granulocita, njegova je slika izglađena srednjim filterom kako bi se eliminirale granule koje bi mogle utjecati na rezultat mjerenja. Obično se u procesu medijanskog filtriranja vrijednosti signala u određenoj blizini točke u kojoj se izračunava odziv filtra sortiraju uzlaznim ili silaznim redoslijedom u niz varijacija. Odziv filtra definiran je kao medijan - vrijednost signala sredine (centra) varijacijske serije. U nastavku će se ovo susjedstvo zvati prozor filtra. Osim toga, radi jednostavnosti, razmotrit ćemo filtar s kvadratnim prozorom veličine n × n.

Stoga, kada se izračunava medijan u prozoru filtra, broj operacija s podacima, na primjer, broj operacija sortiranja, jednak je n 2. Prilikom obrade slike veličine M × N točaka (piksela), broj podatkovnih operacija bit će velik i iznosit će M × N × n 2. Različite operacije zahtijevaju različita vremena izvršenja. Skeniranjem slike u nizu mogu se smanjiti operacije sortiranja koje oduzimaju najviše vremena. Dakle, kada se prijeđe od točke o1 s prozorom w1 do točke o2 s prozorom w2 na Sl. 1.3. moguće je isključiti točke stupca 1 iz varijacijskog niza prozora w1, sortirati točke stupca 6 i spojiti dva dobivena varijacijska niza u jedan. Takav algoritam radi brže od neovisnog sortiranja u svakom prozoru, ali ukupan broj manipulacija podacima (iako manje napornih), na primjer, barem nabrajanje podataka, ostaje isti, odnosno prilično je velik. Stoga su uz medijalno 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.

Riža. 1.3. Skeniranje slike pomoću prozora srednjeg filtra

Ista ograničenja prisilno su 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. Istodobno, postoji niz problema obrade slike koji bi se mogli učinkovito riješiti korištenjem medijanskog filtra, ali zahtijevaju veliki prozor. Jedan od tih zadataka bit će razmotren u nastavku. Stoga, moguće povećanje srednje brzine filtriranja obećava u zadacima obrade slike.

Metode srednjeg filtriranja prilično su raznolike. Mogu se poboljšati. Jedna takva nadogradnja naziva se adaptivno srednje filtriranje.

Filtriranje medijana također ima svoje nedostatke. Konkretno, eksperimentalno je utvrđeno da ova metoda ima relativno slabu učinkovitost u filtriranju tzv. fluktuacijskog š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 središnje reference u lokalnoj obradi slike kliznim prozorom ostaje isti. Ovaj medijan je iz skupa poredanih uzoraka koji padaju u prozor (maska), a veličina kliznog prozora (maske) je dinamička i ovisi o svjetlini susjednih piksela.

Uvedemo granični koeficijent odstupanja svjetline S prag =. 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), bit ć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 temelju opisanog algoritma razvijen je računalni program koji je u praksi potvrdio prednosti adaptivnog medijanskog filtriranja.

Ako je vaša inženjerska pozadina slična mojoj, onda vjerojatno znate puno o različitim vrstama linijskih filtara, čiji je glavni zadatak proći signal u jednom frekvencijskom rasponu i odgoditi signale u preostalim rasponima. Ovi filteri su naravno nezamjenjivi za mnoge vrste buke. Međutim, u stvarnom svijetu ugrađenih sustava, potrebno je malo vremena da se shvati da su klasični linijski filtri 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 pretvorbe, dobivamo sljedeći raspon vrijednosti: 385, 389, 912, 388, 387. Vrijednost 912 je vjerojatno anomalna i treba je odbaciti. Ako isprobate klasični linijski filtar, primijetit ćete da će vrijednost 912 imati značajan utjecaj na izlaz. Najbolje rješenje u ovom slučaju bilo bi korištenje srednjeg filtra.

Unatoč očitosti ovog pristupa, prema mom iskustvu, srednji filtri se iznenađujuće rijetko koriste u ugrađenim sustavima. Možda je to zbog nedostatka znanja o njihovom postojanju i poteškoća u provedbi. Nadam se da će moj post donekle ukloniti ove prepreke.

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

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

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

Trenutno se držim jednostavnije klasifikacije:

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

Medijan filter od 3

Ovo je najmanji mogući filter. Lako se implementira s 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;
}
ostalo (
ako ((b<= a) && (b <= c)){
sredina = (a<= c) ? a: c;
}
ostalo (
sredina = (a<= b) ? a: b;
}
}

Povratak u sredinu;
}

Filtar medijana> 3

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

Imajte na umu da je bilo nekih grešaka u izvornom objavljenom kodu koje je Extrom kasnije ispravio. S obzirom da je sada teško pronaći nešto na embedded.com, odlučio sam objaviti svoju implementaciju njegovog koda. Kôd je izvorno napisan u dinamičkom C-u, ali je za ovaj post prebačen na standardni C. Kod navodno radi, ali na vama je da ga u potpunosti provjerite.


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

uint16_t MedianFilter (uint16_t datum)
{

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

/ * Međuspremnik parova nwidth * /
statički međuspremnik za par struktura = (0);
/ * Pokazivač na kružni međuspremnik podataka * /
statički par struktura * datpoint = međuspremnik;
/ * Čep lanca * /
statički struct par small = (NULL, STOPPER);
/ * Pokazivač na vrh (najvećeg) povezanog popisa. * /
statički par struktura veliki = (& small, 0);

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

if (datum == STOPPER) (
datum = STOPER + 1; / * Nisu dopušteni čepovi. * /
}

Ako je ((++ datpoint - međuspremnik)> = MEDIAN_FILTER_SIZE) (
datpoint = međuspremnik; / * Povećajte i omotajte podatke u pokazivač. * /
}

Datapoint-> value = datum; / * Kopiraj u novi datum * /
nasljednik = datpoint-> točka; / * Spremi pokazivač na nasljednika stare vrijednosti "s * /
medijan = / * Medijan početno do prvog u lancu * /
scanold = NULL; / * Scanold u početku null. * /
scan = / * Pokazuje na pokazivač na prvi (najveći) podatak u lancu * /

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


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

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

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

/ * Srednji pokazivač koraka prema dolje u lancu nakon izvođenja neparnog elementa * /
medijan = medijan-> točka; / * srednji pokazivač koraka. * /
ako (skenirati == & mali) (
pauza; / * Prekid na kraju lanca * /
}
scanold = skeniranje; / * Spremi ovaj pokazivač i * /
scan = scan-> point; / * silazi lanac * /

/ * Rukovati parnim predmetom u lancu. * /
if (scan-> point == datapoint) (
skeniranje-> točka = nasljednik;
}

Ako (scan-> value< datum){
datpoint-> točka = scanold-> točka;
scanold-> točka = datapoint;
datum = STOPPER;
}

Ako (scan == & mali) (
pauza;
}

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

vratiti vrijednost medijana->;
}

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

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

Filtriranje medijana temeljeno na sortiranju

U staroj verziji ovog članka, za srednje filtre 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));

/ * Poredaj * /
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

Korištenje srednjih filtara povezano je s određenim troškovima. Očito, srednji filtri dodaju kašnjenje stepenastim vrijednostima. Također, srednji filtri mogu potpuno izbrisati informacije o frekvenciji u signalu. Naravno, ako vas zanimaju samo konstantne vrijednosti, onda to nije problem.

S tim upozorenjima na umu, još uvijek toplo preporučujem da koristite srednje filtre u svojim dizajnima.

Srednji filtar provodi postupak nelinearne redukcije šuma. Srednji filtar je prozor W koji klizi preko polja slike i pokriva neparan broj uzoraka. Središnji broj zamijenjen je medijanom svih elemenata slike koji padaju u prozor. Medijan diskretnog niza x1, x2, ..., xL za neparan L je element za koji postoji (L? 1) / 2 elementa koji su mu manji ili jednaki po veličini i (L? 1) / 2 elementa koji su veće ili jednake veličine. Drugim riječima, medijan je prosjek u redoslijedu člana niza dobiven redoslijedom izvornog niza.

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

Dvodimenzionalni srednji filtar s prozorom W definiran je kako slijedi:

Srednji filtar se koristi za suzbijanje aditivnog i impulsnog šuma na slici. Karakteristična značajka medijanskog filtra je očuvanje razlika u svjetlini (kontura). Srednji filter je posebno učinkovit u slučaju impulzivne buke. Utjecaj filtara za izglađivanje i medijana s prozorom od tri elementa na šumnu razliku svjetline s aditivnim šumom za jednodimenzionalni signal prikazan je na Sl.

Što se tiče impulsne buke, medijanski filtar 3 x 3 prozora potpuno potiskuje pojedinačne vrhove na ravnoj pozadini, kao i skupine od dva, tri i četiri impulsna vrha. Općenito, da bi se potisnula skupina impulsnog šuma, veličina prozora trebala bi biti najmanje dvostruko veća od grupe interferencije.

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

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

Jedan od najučinkovitijih načina za uklanjanje impulsnog šuma na slici je korištenje srednjeg filtra.

Za svaki piksel u nekom njegovom okruženju (prozoru), traži se srednja vrijednost i dodjeljuje se tom pikselu. Određivanje srednje vrijednosti: ako je niz piksela sortiran prema njihovoj vrijednosti, medijan će biti srednji element tog niza. Prema tome, veličina prozora mora biti neparna 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 medijan, a fi su vrijednosti svjetline ovih piksela.

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

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

Međutim, u svom čistom obliku, srednji filtar zamagljuje male detalje, čija je veličina manja od veličine prozora za pronalaženje medijana, 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 načelu se ne može isključiti u okviru linearne obrade. Stvar je u tome da su linearni postupci optimalni za Gaussovu distribuciju signala, šuma i promatranih podataka. Prave slike, strogo govoreći, ne poštuju ovu raspodjelu vjerojatnosti. Štoviše, jedan od glavnih razloga za to je prisutnost raznih obruba, razlika u svjetlini, prijelaza s jedne teksture na drugu, itd. ... Upravo to uzrokuje loš prijenos granica s linearnim filtriranjem.

Druga značajka linearnog filtriranja je njegova optimalnost, kao što je upravo spomenuto, s Gaussovom prirodom šuma. Obično je ovaj uvjet ispunjen smetnjama šuma u slikama, stoga, kada su potisnute, 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 točke, kaotično razbacane po kadru. Upotreba linearnog filtriranja u ovom slučaju je neučinkovita - svaki od ulaznih impulsa (zapravo, delta funkcija) daje odgovor u obliku filtarskog impulsnog odziva, a njihova kombinacija doprinosi širenju smetnji na cijelom području okvir.

Uspješno rješenje ovih problema je korištenje filtriranja medijana, koje je predložio J. Tukey 1971. za analizu ekonomskih procesa. U zbirci je prikazana najcjelovitija studija medijanskog filtriranja u odnosu na obradu slike. Imajte na umu da je medijalno filtriranje heuristička metoda obrade; njegov algoritam nije matematičko rješenje strogo formuliranog problema. Stoga istraživači veliku pažnju posvećuju analizi učinkovitosti obrade slike koja se temelji na njoj i usporedbi s drugim metodama.

Prilikom primjene medijanskog filtra (MF), svaka se točka okvira obrađuje uzastopno, zbog čega se formira slijed procjena. U idealnom slučaju, obrada u različitim točkama je neovisna (ovaj MF je sličan filteru maske), ali kako bi se ubrzala, preporučljivo je algoritamski koristiti prethodno izvedene izračune u svakom koraku.

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

Riža. 3.10. Primjeri prozora sa srednjim filtriranjem

Dvodimenzionalna priroda prozora omogućuje izvođenje u biti dvodimenzionalnog filtriranja, budući da se podaci iz trenutnog retka i stupca i iz susjednih podataka koriste za formiranje procjene. 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 s neparnim brojem točaka (to se automatski osigurava središnjom simetrijom otvora i kada se u njegov sastav uključi i sama središnja točka). Ako slijed poredate uzlaznim redoslijedom, tada će njegov medijan biti element uzorka koji zauzima središnji položaj u ovom uređenom nizu. Broj dobiven na ovaj način je filtarski proizvod za trenutnu točku okvira. Jasno je da rezultat takve obrade zapravo ne ovisi o slijedu u kojem su elementi slike prikazani u radnom uzorku. Uvedemo formalnu notaciju za opisani postupak u obliku:

. (3.48)

Pogledajmo primjer. Pretpostavimo da odabir ima oblik:, a element 250, smješten u njegovom središtu, odgovara trenutnoj točki filtriranja (slika 3.10). Velika vrijednost svjetline u ovoj točki kadra može biti rezultat impulsne (točke) smetnje. U ovom slučaju uzorak sortiran uzlaznim redoslijedom ima oblik (45,55,75,99,104,110,136,158,250), dakle, u skladu s postupkom (3.48), dobivamo. Vidimo da je utjecaj “susjeda” na rezultat filtriranja u trenutnoj toč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 polovice veličine MF otvora. Stoga, da bi se suzbili impulsni šum koji utječe na lokalna područja slike, treba povećati veličinu MF otvora.

Iz (3.48) proizlazi 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 učinkovitost u rješavanju ovog problema niža od one kod linearnog filtriranja.

Eksperimentalni rezultati koji ilustriraju rad MF-a prikazani su na Sl. 3.11. U eksperimentima smo koristili MF s 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 izvornu sliku, izobličenu impulsnim šumom. Kada je bio superponiran, korišten je generator slučajnih brojeva s uniformnim zakonom raspodjele na intervalu, koji generira neovisne slučajne brojeve u svim točkama okvira. Intenzitet smetnje bio je određen vjerojatnošću njegovog pojavljivanja u svakoj točki. Ako je uvjet bio zadovoljen za slučajni broj generiran u točki, tada je svjetlina slike u ovoj točki zamijenjena brojem 255, što odgovara maksimalnoj svjetlini (razini bijele). Na sl. 3.11. I učinak impulsne buke 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.

Riža. 3.11. Primjeri srednjeg filtriranja

Riža. 3.11.d prikazuje sliku izobličenu neovisnim Gaussovim šumom pri omjeru signal-šum dB, a sl. 3.11.f - rezultat filtriranja srednjim filtrom. Uvjeti ovog eksperimenta omogućuju usporedbu njegovih rezultata s rezultatima linearne filtracije razmatrane gore. Tablica 3.1 prikazuje podatke koji takvu usporedbu čine mogućom. Za različite metode filtriranja, ova tablica daje vrijednosti relativne srednje kvadratne pogreške i faktora prigušenja buke za slučaj kada je omjer signal-šum na ulazu filtra -5 dB.

Tablica 3.1. Usporedba učinkovitosti suzbijanja šuma pri filtriranju slika, dB

filter maske s optim. NJIHOVIM

maska ​​filter s uniformom NJIHOVIM

dvodimenzionalni rekurentni filtar

dvodimenzionalni Wiener filter

Najučinkovitiji je dvodimenzionalni Wienerov filtar koji smanjuje srednji kvadrat pogrešaka za 17 puta. Srednji filtar ima najmanju učinkovitost od svih razmatranih filtara, odgovara = 5,86. Ipak, ovaj broj ukazuje da je uz njegovu pomoć moguće značajno smanjiti razinu šuma na slici.

U isto vrijeme, kao što je gore spomenuto i kao što je prikazano na sl. 3.11.e, medijalno filtriranje izglađuje rubove slike u manjoj mjeri od bilo kojeg linearnog filtriranja. Mehanizam ovog fenomena je vrlo jednostavan i glasi kako slijedi. Pretpostavimo da se otvor filtera nalazi blizu granice koja odvaja svijetla i tamna područja slike, dok se njegovo središte nalazi u području tamnog područja. Tada će, najvjerojatnije, radni uzorak sadržavati veći broj elemenata s niskim vrijednostima svjetline, te će stoga medijan biti među onim elementima radnog odabira koji odgovaraju ovom području slike. Situacija je obrnuta ako se središte otvora blende pomakne u područje veće svjetline. Ali to također znači da je MF osjetljiv na promjene svjetline.

Vrhunski povezani članci