Cum se configurează smartphone-uri și PC-uri. Portal informativ

Filtru de semnal median. Filtru median

Dacă experiența dvs. de inginerie este similară cu a mea, atunci probabil că știți multe despre tipuri diferite filtre de linie, a căror sarcină principală este să transmită un semnal într-un interval de frecvență și să întârzie semnalele în intervalele rămase. Aceste filtre sunt desigur indispensabile pentru multe tipuri de zgomot. Cu toate acestea, în lumea reală a sistemelor încorporate, este nevoie de puțin timp pentru a realiza că filtrele clasice de linie sunt inutile împotriva zgomotului de explozie (zgomot de popcorn).

Zgomot de impuls de obicei apare din pseudo evenimente aleatorii... De exemplu, un radio cu două sensuri poate fi pornit lângă dispozitivul dvs. sau poate apărea un fel de electricitate statică. Ori de câte ori se întâmplă acest lucru, semnalul de intrare poate fi distorsionat temporar.

De exemplu, ca rezultat conversie analog-digitală obținem acest interval de valori: 385, 389, 912, 388, 387. Valoarea 912 este probabil anormală și ar trebui respinsă. Dacă încerci să folosești clasicul filtru de linie atunci veți observa că valoarea 912 va avea un impact semnificativ asupra ieșirii. Cea mai bună soluțieîn acest caz se va folosi filtrul median.

În ciuda faptului că această abordare este evidentă, din experiența mea, filtrele mediane sunt surprinzător de rar utilizate în sistemele încorporate. Poate că acest lucru se datorează lipsei de cunoștințe despre existența lor și dificultății de implementare. Sper că postarea mea va elimina aceste obstacole într-o oarecare măsură.

Idee filtru median simplu. Selectează media dintr-un grup de valori de intrare și o trimite la ieșire. Mai mult, de obicei grupul are un număr impar de valori, deci nu există nicio problemă cu alegerea.

Până de curând, am distins trei clase filtre mediane care diferă în numărul de valori utilizate:

Filtrați folosind 3 valori (cel mai mic filtru posibil),
- filtrați folosind 5, 7 sau 9 valori (cele mai utilizate),
- filtrați folosind 11 sau mai multe valori.

În acest moment mă țin de o clasificare mai simplă:

Filtrați folosind 3 valori,
- filtrați folosind mai mult de 3 valori.

Filtru median de 3

Acesta este cel mai mic filtru posibil. Este ușor de implementat cu câțiva operatori și, prin urmare, are un mic și cod rapid.


uint16_t middle_of_3 (uint16_t a, uint16_t b, uint16_t c)
{
uint16_t mijloc;

În cazul în care un<= b) && (a <= c)){
mijloc = (b<= c) ? b: c;
}
altfel (
dacă ((b<= a) && (b <= c)){
mijloc = (a<= c) ? a: c;
}
altfel (
mijloc = (a<= b) ? a: b;
}
}

întoarcere la mijloc;
}

Filtru median> 3

Pentru un filtru mai mare de 3, vă sugerez să utilizați algoritmul descris de Phil Ekstrom în numărul din noiembrie 2000 al revistei Embedded Systems Programming. Extrom folosește o listă legată. Lucrul bun despre această abordare este că, atunci când matricea este sortată, eliminarea vechii valori și adăugarea uneia noi nu distruge în mod semnificativ matricea. Prin urmare, această abordare funcționează bine cu filtru de dimensiuni mari.

Rețineți că au existat unele erori în codul publicat inițial pe care Extrom le-a remediat ulterior. Având în vedere că acum este dificil să găsești ceva pe embedded.com, am decis să public implementarea codului său. Codul a fost scris inițial în Dynamic C, dar pentru această postare a fost portat la C standard. Se presupune că codul funcționează, dar depinde de tine să-l verifici complet.


#define NULL 0
#define STOPPER 0 / * Mai mic decât orice datum * /
#define MEDIAN_FILTER_SIZE 5

uint16_t MedianFilter (datum uint16_t)
{

pereche de structuri (
struct pair * punct; / * Indicatori care formează o listă legată în ordine sortată * /
valoarea uint16_t; / * Valori de sortat * /
};

/ * Buffer de perechi nwidth * /
buffer de perechi de structuri statice = (0);
/ * Indicator în buffer circular de date * /
pereche de structuri statice * datpoint = buffer;
/ * Opritor de lanț * /
pereche de structuri statice small = (NULL, STOPPER);
/ * Indicator la capul (cel mai mare) al listei conectate. * /
pereche de structuri statice mare = (& mic, 0);

/ * Indicator către succesorul elementului de date înlocuit * /
struct pair * succesor;
/ * Indicatorul folosit pentru a scana în jos lista sortată * /
struct pair * scanare;
/ * Valoarea anterioară a scanării * /
struct pair * scanold;
/ * Indicator către mediană * /
struct pair * mediană;
uint16_t i;

dacă (datum == OPRITOR) (
datum = STOPPER + 1; / * Nu sunt permise opritoare. * /
}

Dacă ((++ datpoint - buffer)> = MEDIAN_FILTER_SIZE) (
datpoint = buffer; / * Incrementează și împachetează datele în pointer. * /
}

Datpoint-> value = datum; / * Copiați într-un nou datum * /
succesor = datpoint-> point; / * Salvați indicatorul la succesorul vechii valori * /
mediană = / * Mediană inițial până la primul din lanț * /
scanold = NULL; / * Scanold inițial nul. * /
scanare = / * Indică indicatorul către primul (cel mai mare) datum din lanț * /

/ * Gestionați înlănțuirea primului articol din lanț ca caz special * /
dacă (scanare-> punct == punct dat) (
scan-> punct = succesor;
}


scanare = scanare-> punct; / * coborârea lanțului * /

/ * Buclă prin lanț, ieșire normală a buclei prin pauză. * /
pentru (i = 0; i< MEDIAN_FILTER_SIZE; ++i){
/ * Manipulați articole cu numere impare în lanț * /
dacă (scanare-> punct == punct dat) (
scan-> punct = succesor; / * Înlănțuiește vechiul datum. * /
}

Dacă (scanare-> valoare< datum){ /* If datum is larger than scanned value,*/
datpoint-> point = scanold-> punct; / * Înlănțuiește-l aici. * /
scanold-> point = datpoint; / * Marcați-l înlănțuit. * /
datum = STOPPER;
};

/ * Treceți indicatorul median în jos în lanț după ce faceți un element impar * /
median = median-> punct; / * Indicator median al pasului. * /
dacă (scanați == și mic) (
pauză; / * Rupere la capătul lanțului * /
}
scanold = scanare; / * Salvați acest indicator și * /
scanare = scanare-> punct; / * coborârea lanțului * /

/ * Manipulați articolele cu număr par în lanț. * /
dacă (scanare-> punct == punct dat) (
scan-> punct = succesor;
}

Dacă (scanare-> valoare< datum){
datpoint-> point = scanold-> punct;
scanold-> point = datpoint;
datum = STOPPER;
}

Dacă (scanați == și mic) (
pauză;
}

Scanold = scanare;
scanare = scanare-> punct;
}

returnează mediana-> valoare;
}

Pentru a utiliza acest filtru, apelați pur și simplu funcția de fiecare dată când primiți o nouă valoare de intrare. Funcția va returna media ultimelor valori acceptate, al căror număr este determinat de constanta MEDIAN_FILTER_SIZE.

Acest algoritm poate folosi o cantitate suficientă de RAM (desigur, depinde de dimensiunea filtrului), deoarece stochează valorile de intrare și pointerii către structuri. Cu toate acestea, dacă aceasta nu este o problemă, atunci algoritmul este foarte bun de utilizat, deoarece este semnificativ mai rapid decât algoritmii bazați pe sortare.

Filtrare mediană bazată pe sortare

În versiunea veche a acestui articol, pentru filtrele mediane de dimensiunea 5, 7 sau 9, am susținut o abordare bazată pe algoritm de sortare. Acum m-am răzgândit. Cu toate acestea, dacă doriți să le utilizați, vă ofer codul de bază:


dacă (ADC_Buffer_Full) (

Uint_fast16_t adc_copy;
uint_fast16_t filtered_cnts;

/ * Copiați datele * /
memcpy (adc_copy, ADC_Counts, sizeof (adc_copy));

/ * Sortați-l * /
shell_sort (adc_copy, MEDIAN_FILTER_SIZE);

/ * Luați valoarea de mijloc * /
filtered_cnts = adc_copy [(MEDIAN_FILTER_SIZE - 1U) / 2U];

/ * Convertiți în unități de inginerie * /
...

Concluzie

Utilizarea filtrelor mediane este asociată cu anumite costuri. Evident, filtrele mediane adaugă o întârziere la valorile în trepte. De asemenea, filtrele mediane pot șterge complet informațiile de frecvență din semnal. Desigur, dacă sunteți interesat doar de valorile constante, atunci aceasta nu este o problemă.

Având în vedere aceste avertismente, vă recomand în continuare să utilizați filtre medii în design-ul dvs.

1. Termeni de referință

Zgomot gaussian - „gaussian”

Imagine originală.

Principiul de filtrare.

Medianele au fost mult timp folosite și studiate în statistică ca alternativă la valorile medii aritmetice ale eșantioanelor în estimarea mediilor eșantionului. Mediana unei secvențe numerice x 1, x 2, ..., x n pentru un n impar este membrul mediu al seriei obținute prin ordonarea acestei secvențe în ordine crescătoare (sau descrescătoare). Pentru n chiar, mediana este definită de obicei ca media aritmetică a celor două medii ale șirului ordonat.

Filtrul median este un filtru de fereastră care alunecă secvenţial peste matricea de semnal şi returnează la fiecare pas unul dintre elementele care cad în fereastra de filtru (apertura). Semnalul de ieșire yk al unui filtru median glisant cu o lățime de 2n + 1 pentru eșantionul curent k este format din seria de timp de intrare ..., xk -1, xk, xk +1, ... în conformitate cu formula :

y k = med (x k - n, x k - n + 1,..., x k -1, x k, x k +1,..., x k + n-1, x k + n),

unde med (x 1,…, x m,…, x 2n + 1) = x n + 1, x m sunt elementele seriei de variații, i.e. clasate în ordine crescătoare a valorilor xm: x 1 = min (x 1, x 2, ..., x 2n + 1) ≤ x (2) ≤ x (3) ≤… ≤ x 2n + 1 = max (x 1) , x 2 ,…, X 2n + 1).

Astfel, filtrarea mediană înlocuiește valorile eșantionului din centrul deschiderii cu valoarea mediană a probelor originale din deschiderea filtrului. În practică, pentru a simplifica algoritmii de procesare a datelor, deschiderea filtrului este de obicei setată cu un număr impar de mostre, care va fi acceptat în discuția următoare fără explicații suplimentare.

Zgomote de impuls și puncte

La înregistrarea, prelucrarea și schimbul de date în sistemele moderne de măsurare, calcul și informații, fluxurile de semnal, pe lângă semnalul util s (tt 0) și zgomotul de fluctuație q (t), conțin, de regulă, fluxuri de impulsuri g (t) = d (tt k) de diferite intensități cu o structură regulată sau haotică:

x (t) = s (t-t 0) + g (t) + q (t).

Zgomotul de impuls se referă la distorsiunea semnalelor prin impulsuri mari de polaritate arbitrară și de scurtă durată. Motivul apariției fluxurilor de impuls poate fi atât interferența electromagnetică de impuls extern, cât și interferența, defecțiunile și interferența în funcționarea sistemelor în sine. Agregatul zgomotului distribuit statistic și fluxul de impuls cvasi-determinist este o interferență combinată. O metodă radicală de a trata interferența combinată este utilizarea codurilor anti-interferențe. Totuși, acest lucru duce la o scădere a vitezei și a complicațiilor sistemelor de recepție și transmisie a datelor. O metodă alternativă simplă, dar destul de eficientă pentru curățarea semnalelor în astfel de condiții este un algoritm în două etape pentru procesarea semnalelor x (t), în care, în prima etapă, impulsurile de zgomot sunt îndepărtate din fluxul x (t), iar în a doua etapă, semnalul este curățat prin filtre de frecvență de zgomotul statistic. Pentru semnalele distorsionate de acțiunea zgomotului de impuls, nu există o formulare riguroasă (în sens matematic) și o soluție a problemei de filtrare. Sunt cunoscuți doar algoritmi euristici, dintre care cel mai acceptabil este algoritmul de filtrare mediană.

Să presupunem că zgomotul q (t) este un proces statistic cu așteptare matematică zero, semnalul util s (t-t 0) are o poziție de timp necunoscută t 0 Î, iar fluxul de impulsuri de zgomot g (t) are forma:

g (t) = e k a k g (t-t k),

unde a k este amplitudinea impulsurilor în flux, t k este poziția temporală necunoscută a impulsurilor, e k = 1 cu probabilitatea p k și e k = 0 cu probabilitatea 1-p k. Această setare a zgomotului de impuls corespunde fluxului Bernoulli.

Atunci când este aplicat fluxului x (t), filtrarea mediană glisantă cu o fereastră de N eșantioane (N este impar), filtrul median elimină complet impulsurile individuale distanțate la cel puțin jumătate din deschiderea filtrului și suprimă zgomotul de impuls dacă numărul de impulsuri în interiorul deschiderea nu depășește (N-1) / 2. În acest caz, cu p k = p pentru toate impulsurile de interferență, probabilitatea de suprimare a interferenței poate fi determinată prin expresia / 3i /:

R (p) = p m (1-p) N- p.

Figura 1 prezintă rezultatele calculelor probabilității de suprimare a zgomotului de impuls de către filtrul median. Pentru p<0.5 результаты статистического моделирования процесса показывают хорошее соответствие расчетным значениям. Для интенсивных импульсных шумовых потоков при p>Filtrarea mediană de 0,5 devine ineficientă deoarece nu este suprimată, ci amplificată și transformată într-un flux de impulsuri de altă structură (cu o durată aleatorie).

Dacă probabilitatea de eroare nu este foarte mare, atunci filtrarea medie, chiar și cu o deschidere suficient de mică, va reduce semnificativ numărul de erori. Eficiența eliminării impulsurilor de zgomot crește odată cu creșterea deschiderii filtrului, dar, în același timp, poate crește și distorsiunea semnalului util.

Diferența plus zgomot.

Luați în considerare filtrarea marginilor în prezența zgomotului alb aditiv, și anume, secvențe de filtrare sau imagini, cu

unde s este un semnal determinist egal cu 0 pe o parte a marginii sau și h pe cealaltă, iar z sunt valori aleatorii ale zgomotului alb. Să presupunem că valorile aleatorii ale zgomotului z sunt distribuite conform legii normale N (0, s). Pentru început, luăm în considerare filtrarea unidimensională și presupunem că scăderea are loc în punctul i = 1, astfel încât pentru i £ 0 valoarea xi este N (0, s), iar pentru i≥1 valoarea xi este N ( h, s).

În fig. 2 prezintă o succesiune de valori medii ale medianelor și o medie mobilă lângă o picătură cu o înălțime de h = 5 la N = 3. Valorile medii mobile urmează o linie înclinată, ceea ce indică faptul că picătura este mânjită. Comportamentul așteptării matematice a valorilor mediane indică, de asemenea, o oarecare neclaritate, deși mult mai puțin decât pentru media mobilă.

Dacă folosim măsura erorii pătratice medii (RMSE), mediată pe N puncte în apropierea picăturii și calculăm valorile RMS în funcție de valorile lui h, atunci este ușor să o remediați pentru valori mici de h<2 СКО для скользящего среднего немного меньше, чем для медианы, но при h>3 Abaterea standard a mediei este semnificativ mai mică decât abaterea standard a mediei. Acest rezultat arată că mediana în mișcare este semnificativ mai bună decât media în mișcare pentru leagănele la altitudine mare. Rezultate similare pot fi obținute pentru deschiderea N = 5 și pentru filtrarea 2D cu deschideri 3x3 și 5x5. Astfel, așteptările matematice ale mediei pentru h mic sunt apropiate de așteptările matematice pentru mediile corespunzătoare, dar pentru h mare sunt mărginite asimptotic. Acest lucru se explică prin faptul că pentru h mare (să zicem, h> 4) variabilele x cu o valoare medie de 0 (pentru acest exemplu) vor fi puternic separate de variabilele x cu o medie h.

Măsura de precizie utilizată poate caracteriza doar claritatea în picătură și nu spune nimic despre netezimea imaginii filtrate de-a lungul picăturii. Media glisantă oferă semnale care sunt netede de-a lungul marginii, în timp ce atunci când sunt procesate cu filtrul median, marginile extinse sunt ușor zimțate.

Filtrarea Wiener

Filtrarea inversă are imunitate scăzută la zgomot, deoarece această metodă nu ține cont de zgomotul din imaginea observată. Filtrul Wiener este mult mai puțin susceptibil la influența zgomotului și a singularităților cauzate de zerourile funcției de transfer a sistemului de distorsionare. în timpul sintezei sale, împreună cu tipul PSF, sunt utilizate informații despre densitățile de putere spectrală a imaginii și a zgomotului.

Densitatea spectrală a semnalului este determinată de raportul:

unde este funcția de autocorelare.

Densitatea spectrală reciprocă a semnalului este determinată de raportul:

, (14)

unde este funcția de corelație încrucișată.

La construirea unui filtru Wiener, problema se pune pentru a minimiza abaterea standard a imaginii procesate de la subiect:

unde este așteptarea matematică. Prin transformarea acestor expresii, se poate arăta că minimul este atins atunci când funcția de transfer este determinată de următoarea expresie:

O analiză ulterioară arată că restaurarea imaginii, a cărei formare este descrisă de expresie, ar trebui efectuată folosind următorul OTF al convertorului de restaurare:

Dacă nu există zgomot în imagine, atunci densitatea spectrală a funcției de zgomot este egală cu 0, iar expresia, care se numește filtru Wiener, se transformă într-un filtru invers convențional.

Cu o scădere a densității de putere spectrală a imaginii originale, funcția de transfer a filtrului Wiener tinde spre zero. Acest lucru este tipic pentru imaginile la frecvențe înalte.

La frecvențele corespunzătoare zerourilor funcției de transfer a sistemului de modelare, funcția de transfer a filtrului Wiener este, de asemenea, egală cu zero. Astfel, se rezolvă problema singularității filtrului de reconstrucție.

Filtre OPF Wiener

Filtre inverse

Orez. 3. Exemple de filtre

Filtrarea imaginilor.

Filtrarea mediană a imaginilor este cea mai eficientă atunci când zgomotul din imagine este impulsiv și reprezintă un set limitat de vârfuri pe un fundal de zerouri. Ca urmare a aplicării filtrului median, pantele și scăderile accentuate ale valorilor de luminozitate din imagini nu se modifică. Aceasta este o proprietate foarte utilă mai ales pentru imaginile în care contururile poartă informația principală.

Fig. 4

Cu filtrarea mediană a imaginilor zgomotoase, gradul de netezire a contururilor obiectelor depinde direct de dimensiunea deschiderii filtrului și de forma măștii. Exemple de formă de măști cu o deschidere minimă sunt prezentate în Figura 4. La dimensiuni mici ale diafragmei, detaliile contrastante ale imaginii sunt mai bine păstrate, dar zgomotul de impuls este suprimat într-o măsură mai mică. Pentru deschideri mari, se observă imaginea opusă. Alegerea optimă a formei deschiderii de netezire depinde de specificul problemei care se rezolvă și de forma obiectelor. Acest lucru este de o importanță deosebită pentru sarcina de a păstra diferențele (marginile ascuțite de luminozitate) în imagini.

Prin imaginea unei picături înțelegem o imagine în care punctele de pe o parte a unei anumite linii au aceeași valoare A, iar toate punctele de pe cealaltă parte a acestei linii sunt valoarea b, b¹ A... Dacă deschiderea filtrului este simetrică față de origine, atunci filtrul median reține orice imagine de margine. Acest lucru se face pentru toate deschiderile de eșantion impare, de ex. cu excepția deschiderilor (cadre pătrate, inele), care nu conțin o origine. Cu toate acestea, ramele pătrate și inelele vor schimba doar puțin scăderea.

Pentru a simplifica o analiză suplimentară, ne limităm la exemplul unui filtru cu o mască pătrată de dimensiune N × N, cu N = 3. Filtrul de alunecare se uită prin mostrele de imagine de la stânga la dreapta și de sus în jos, în timp ce secvența bidimensională de intrare este, de asemenea, reprezentată ca un număr secvențial de mostre (x (n)) de la stânga la dreapta de sus în jos. Din această secvență, în fiecare punct curent, masca de filtru extrage matricea w (n) ca vector de elemente W, care în acest caz conține toate elementele din fereastra 3 × 3 centrată în jurul x (n) și centrala elementul în sine, dacă este prevăzut tip de mască:

w (n) =.

În acest caz, valoarea x i corespunde unei mapări de la stânga la dreapta și de sus în jos a unei ferestre 3 × 3 într-un vector unidimensional.

Elementele acestui vector, precum și pentru filtrul median unidimensional, pot fi, de asemenea, ordonate într-o serie în ordinea crescătoare sau descrescătoare a valorilor lor:

r (n) =,

se determină valoarea mediană y (n) = med (r (n)), iar citirea centrală a măștii este înlocuită cu valoarea mediană. Dacă, în funcție de tipul de mască, eșantionul central nu este inclus în numărul rândului 8, atunci valoarea mediană este sub forma mediei celor două eșantioane centrale din rândul 9.

Expresiile de mai sus nu explică cum să găsiți semnalul de ieșire în apropierea punctelor de capăt și de limită în secvențele și imaginile de final. Un truc simplu este să găsiți mediana doar a acelor puncte din imagine care se încadrează în diafragma. Prin urmare, pentru punctele situate în apropierea limitelor, medianele vor fi determinate pe baza unui număr mai mic de puncte.

Filtrarea mediană poate fi efectuată și într-o versiune recursivă, în care valorile de deasupra și din stânga referinței centrale din mască (în acest caz, x 1 (n) -x 4 (n) în Fig. 9) în rândul 8 sunt înlocuite cu cele deja calculate în ciclurile precedente valorile y 1 (n) -y 4 (n).

Prelucrarea rezultatelor

Suprapunerea zgomotului pe imaginea originală

Sare gaussiană și pete de hârtie

Rezultatul procesării de către filtrul Median

MedFilter_Gaussian MedFilter_Sare și hârtie MedFilter_Speckle

Rezultatul procesării de către filtrul Wiener

WinFilter_Gaussian WinFilter_ Sare și hârtie WinFilter_ Speckle

Rezultatul calculării deviației pătrate medii a imaginilor filtrate față de original.

CONCLUZIE

Graficul arată că bine filtrul median suprimă zgomotul de un singur impuls și emisiile de zgomot aleatoare ale probelor (CKOSaPeMed), iar graficul arată că aceasta este cea mai bună metodă de a elimina acest tip de zgomot.

Filtrul Wiener (CKOSaPeWin), spre deosebire de filtrul median, cu o creștere a factorului de zgomot al imaginii, s-a îndepărtat de original de mai multe ori.

Suprimarea zgomotului alb și gaussian, în cazul filtrului median, este mai puțin eficientă (CKOGausMed, CKOSpecMed) decât filtrul Wiener (CKOGausWin, CKOSpecWin). Eficiența slabă este de asemenea observată la filtrarea zgomotului de fluctuație. Când măriți dimensiunea ferestrei filtrului medial, imaginea este neclară.

Bibliografie

1. Prelucrarea digitală a imaginilor color. Shlikht G.Yu. M., Editura EKOM, 2007 .-- 336 p.

2.http://prodav.narod.ru/dsp/index.html

3. Introducere în procesarea digitală a imaginilor. Yaroslavsky L.P. M .: Sov. radio, 2007 .-- 312 p.

4.http://matlab.exponenta.ru/

5. Procesarea digitală a imaginilor în MATLAB. R. Gonzalez, R. Woods, S. Eddins, Moscova: Technosphere, 2006.

6.http://www.chipinfo.ru/literature/chipnews/199908/29.html

1. Termeni de referință ................................................ ........................... 2

2. Analiza specificațiilor tehnice ................................................ . ...... 3

2.1. Filtru median. Filtrarea mediană ................. 4

2.1.1 Avantajele și dezavantajele filtrelor mediane .............................. 6

2.2 Principiul de filtrare ................................................ ...................... 7

2.3 Suprimarea zgomotului statistic ................................................ 8

2.4 Zgomote de impuls și de punct ............................................. ... 9

2.5 Diferența plus zgomotul ............................................. .......................... unsprezece

2.6 Filtrarea Wiener ................................................ ........................ treisprezece

2.7. Filtrarea imaginilor ................................................. ......... 15

2.7.1 Utilizarea filtrării adaptive ..................... 17

2.7.2 Utilizarea filtrarii mediane ........................ 17

3. PROIECTAREA FUNCȚIILOR AUXILIARE MATLAB. optsprezece

3.1. Citirea unei imagini și realizarea unei copii... 18

3.2. Adăugarea de zgomot la o copie a imaginii originale ................... 18

3.3. Procesarea unei copii zgomotoase folosind un filtru median. optsprezece

3.4. Procesarea unei copii zgomotoase folosind un filtru Wiener... 20

3.5. Calculul abaterii standard dintre imaginea filtrată și originală. 21

4. Rezultatele prelucrării ................................................ ...................... 23

Bibliografie................................................. . ............................ 26

1. Termeni de referință

Comparația eficienței filtrelor medii și medii

1. Creați o copie a imaginii originale.

2. Adăugați zgomot la copia imaginii originale.

Zgomot gaussian - „gaussian”

Zgomot de impuls - „sare și piper”

Zgomot multiplicativ - „speckle”

4. Procesați una dintre copiile zgomotoase cu un filtru.

5. Procesați cealaltă copie cu filtrul 2.

7. Construiți grafice ale dependenței RMS a imaginii filtrate de parametrul de zgomot (în aceleași axe pentru diferite filtre).

Imagine originală.

2. Analiza specificaţiilor tehnice

Filtrele mediane sunt adesea folosite în practică ca mijloc de preprocesare a datelor digitale. O caracteristică specifică a filtrelor este selectivitatea lor pronunțată în ceea ce privește elementele de matrice, care sunt o componentă nemonotonă a unei secvențe de numere în cadrul ferestrei de filtru (apertura) și se evidențiază brusc pe fundalul eșantioanelor învecinate. În același timp, filtrul median nu afectează componenta monotonă a secvenței, lăsând-o neschimbată. Datorită acestei caracteristici, filtrele mediane cu o deschidere selectată optim pot, de exemplu, să mențină marginile ascuțite ale obiectelor fără distorsiuni, suprimând eficient zgomotul necorelat sau slab corelat și detaliile de dimensiuni mici. Această proprietate vă permite să aplicați filtrarea mediană pentru a elimina valorile anormale din seturile de date, pentru a reduce valorile aberante și zgomotul de impuls. O trăsătură caracteristică a filtrului median este neliniaritatea acestuia. În multe cazuri, utilizarea unui filtru median se dovedește a fi mai eficientă decât filtrele liniare, deoarece procedurile de procesare liniară sunt optime cu o distribuție uniformă sau gaussiană a zgomotului, ceea ce poate să nu fie cazul în semnalele reale. În cazurile în care pantele valorilor semnalului sunt mari în comparație cu varianța zgomotului alb aditiv, filtrul median oferă o valoare mai mică a erorii pătratice medii în comparație cu filtrele liniare optime. Filtrul median se dovedește a fi deosebit de eficient la curățarea semnalelor de zgomotul de impuls în timpul procesării imaginii, semnalelor acustice, transmiterii semnalelor de cod etc. Cu toate acestea, studiile detaliate ale proprietăților filtrelor mediane ca mijloc de filtrare a semnalelor de diferite tipuri sunt destul de rare.

Filtru median. Filtrarea mediană

În prezent, metodele de procesare a semnalului digital sunt utilizate pe scară largă în televiziune, inginerie radio, sisteme de comunicații, control și monitorizare. Una dintre cele mai comune operațiuni în astfel de procesare este filtrarea semnalului digital.

Filtrarea mediană a fost propusă de Tukey ca instrument de netezire a seriilor de timp găsit în cercetarea economică, iar mai târziu a devenit utilizat pe scară largă în procesarea imaginilor, semnale de vorbire etc.

Un filtru media 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 este scoasă la filtru. Dacă numărul de mostre din fereastră este par, rezultatul filtrului este 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 care sunt supuse zgomotului de impuls.


Filtrarea mediană.

Filtrarea mediană înlocuiește valorile eșantioanelor din centrul deschiderii cu valoarea mediană a probelor originale din deschiderea filtrului. În practică, pentru a simplifica algoritmii de procesare a datelor, deschiderea filtrului este de obicei setată cu un număr impar de mostre, care va fi acceptat în discuția următoare fără explicații suplimentare.

Filtrarea mediană este implementată ca o procedură de procesare locală a eșantioanelor într-o fereastră glisantă, care include un anumit număr de eșantioane de semnal. Pentru fiecare poziție de fereastră, mostrele selectate în ea sunt clasate în ordine crescătoare sau descrescătoare. Media raportului în poziția sa în lista clasată se numește mediana grupului de eșantioane considerat. Acest eșantion înlocuiește eșantionul central din fereastra pentru semnalul care este procesat. Din această cauză, filtrul median este unul dintre filtrele neliniare care înlocuiesc punctele și vârfurile anormale cu valoarea mediană, indiferent de valorile lor de amplitudine, și este stabil prin definiție, capabil să anuleze chiar și eșantioane infinit de mari.

Algoritmul de filtrare mediană are o selectivitate pronunțată față de elementele de matrice cu o componentă nemonotonă a secvenței de numere din interiorul deschiderii și exclude cel mai eficient valorile aberante unice din semnale, negative și pozitive, care se încadrează pe marginile listei clasate. Luând în considerare clasamentul din listă, filtrele mediane sunt bune la suprimarea zgomotului și interferențelor, a căror lungime este mai mică de jumătate din fereastră. Un punct stabil este o secvență (într-un caz unidimensional) sau o matrice (într-un caz bidimensional) care nu se modifică cu filtrarea mediană. În cazul unidimensional, punctele stabile ale filtrelor mediane sunt secvențe „local monotone”, pe care filtrul median le lasă neschimbate. Excepție fac unele secvențe binare periodice.

  • Filtrarea mediană este neliniară, deoarece mediana sumei a două secvențe arbitrare nu este egală cu suma medianelor acestora, ceea ce în unele cazuri poate complica analiza matematică a semnalelor.
  • Filtrul cauzează aplatizarea vârfurilor funcțiilor triunghiulare.
  • Reducerea zgomotului alb și gaussian este mai puțin eficientă decât filtrele de linie. Eficiența slabă este de asemenea observată la filtrarea zgomotului de fluctuație.
  • Pe măsură ce dimensiunea ferestrei de filtru crește, schimbările abrupte ale semnalului și salturile sunt neclare.

Dezavantajele metodei pot fi reduse prin aplicarea filtrarii mediane cu redimensionare adaptiva a ferestrei de filtru in functie de dinamica semnalului si de natura zgomotului (filtrare mediana adaptativa). Ca criteriu pentru dimensiunea ferestrei, puteți utiliza, de exemplu, abaterea valorilor eșantioanelor învecinate față de eșantionul clasat central / 1i /. Pe măsură ce această valoare scade sub un anumit prag, dimensiunea ferestrei crește.

16.2. FILTRAREA MEDIANA A IMAGINILOR.

Zgomot în imagini. Niciun sistem de înregistrare nu oferă calitatea ideală a imaginii obiectelor studiate. Imaginile aflate în procesul formării lor de către sisteme (fotografice, holografice, televiziune) sunt de obicei expuse la diverse interferențe sau zgomote aleatorii. O provocare fundamentală în procesarea imaginilor este eliminarea eficientă a zgomotului, păstrând în același timp detaliile imaginii care sunt importante pentru recunoașterea ulterioară. Complexitatea rezolvării acestei probleme depinde în mod semnificativ de natura zgomotului. Spre deosebire de distorsiunile deterministe, care sunt descrise prin transformări funcționale ale imaginii originale, modelele de zgomot aditiv, impulsiv și multiplicativ sunt folosite pentru a descrie efecte aleatorii.

Cel mai comun tip de interferență este zgomotul aditiv aleatoriu, care este independent din punct de vedere statistic de semnal. Modelul de zgomot aditiv este utilizat atunci când semnalul de la ieșirea sistemului sau la o anumită etapă a transformării poate fi considerat ca suma semnalului util și a unui semnal aleator. Modelul de zgomot aditiv descrie bine efectul granulației filmului, zgomotul de fluctuație în sistemele radio, zgomotul de cuantizare în convertoare analog-digitale etc.

Zgomotul Gaussian aditiv se caracterizează prin adăugarea de valori cu o distribuție normală și o medie zero la fiecare pixel dintr-o imagine. Acest zgomot este introdus de obicei în timpul etapei de imagistică digitală. Informația principală din imagini este purtată de contururile obiectelor. Filtrele clasice de linie pot elimina eficient zgomotul statistic, dar gradul de estompare a detaliilor mici din imagine poate depăși valorile acceptabile. Pentru a rezolva această problemă se folosesc metode neliniare, de exemplu, algoritmi bazați pe difuzia anizotropă a lui Perron și Malik, filtre bilaterale și trilaterale. Esența unor astfel de metode este de a folosi estimări locale adecvate pentru a determina conturul imaginii și pentru a netezi astfel de zone în cel mai mic grad.


Zgomotul de impuls este caracterizat prin înlocuirea unora dintre pixelii din imagine cu valori de o valoare fixă ​​sau aleatorie. În imagine, un astfel de zgomot apare ca puncte de contrast izolate. Zgomotul de impuls este tipic pentru dispozitivele de intrare a imaginii de la o cameră de televiziune, sistemele de transmitere a imaginilor prin canale radio, precum și pentru sistemele digitale de transmitere și stocare a imaginilor. Pentru a elimina zgomotul de impuls, se folosește o clasă specială de filtre neliniare bazate pe statistici de rang. Ideea generală a unor astfel de filtre este de a detecta poziția pulsului și de a o înlocui cu o valoare estimată, păstrând restul pixelilor imaginii neschimbați.

Filtre bidimensionale. Filtrarea mediană a imaginilor este cea mai eficientă atunci când zgomotul din imagine este impulsiv și reprezintă un set limitat de vârfuri pe un fundal de zerouri. Ca urmare a aplicării filtrului median, pantele și scăderile accentuate ale valorilor de luminozitate din imagini nu se modifică. Aceasta este o proprietate foarte utilă mai ales pentru imaginile pe care, după cum știți, contururile poartă informația principală.

Orez. 16.2.1.

Cu filtrarea mediană a imaginilor zgomotoase, gradul de netezire a contururilor obiectelor depinde direct de dimensiunea deschiderii filtrului și de forma măștii. Exemple de formă de măști cu o deschidere minimă sunt prezentate în Fig. 16.2.1. La dimensiuni mici ale diafragmei, detaliile contrastante ale imaginii sunt mai bine păstrate, dar zgomotul de impuls este suprimat într-o măsură mai mică. Pentru deschideri mari, se observă imaginea opusă. Alegerea optimă a formei deschiderii de netezire depinde de specificul problemei care se rezolvă și de forma obiectelor. Acest lucru este de o importanță deosebită pentru sarcina de a păstra diferențele (marginile ascuțite de luminozitate) în imagini.

Prin imaginea unei picături înțelegem o imagine în care punctele de pe o parte a unei anumite linii au aceeași valoare A, iar toate punctele de pe cealaltă parte a acestei linii sunt valoarea b, b¹ A... Dacă deschiderea filtrului este simetrică față de origine și o conține, atunci filtrul median păstrează orice imagine a picăturii. Acest lucru se face pentru toate deschiderile de eșantion impare, de ex. cu excepția deschiderilor (cadre pătrate, inele), care nu conțin originea. Cu toate acestea, ramele pătrate și inelele vor schimba doar puțin scăderea.

Orez. 16.2.2.

Pentru a simplifica o analiză suplimentară, ne limităm la exemplul unui filtru cu o mască pătrată de dimensiune N × N, cu N = 3. Filtrul de alunecare se uită prin mostrele de imagine de la stânga la dreapta și de sus în jos, în timp ce secvența bidimensională de intrare este, de asemenea, reprezentată ca un număr secvențial de mostre (x (n)) de la stânga la dreapta de sus în jos. Din această secvență, în fiecare punct curent, masca de filtru extrage matricea w (n) ca vector de elemente W, care în acest caz conține toate elementele din fereastra 3 × 3 centrată în jurul x (n) și centrala elementul în sine, dacă este prevăzut tip de mască:

w (n) =. (16.2.1)

În acest caz, valoarea x i corespunde unei mapări de la stânga la dreapta și de sus în jos a unei ferestre 3 × 3 într-un vector unidimensional, așa cum se arată în Fig. 16.2.2.

Elementele acestui vector, precum și pentru filtrul median unidimensional, pot fi, de asemenea, ordonate într-o serie în ordinea crescătoare sau descrescătoare a valorilor lor:

r (n) =, (16.2.2)

se determină valoarea mediană y (n) = med (r (n)), iar citirea centrală a măștii este înlocuită cu valoarea mediană. Dacă, după tipul de mască, eșantionul central nu este inclus în numărul rândului 16.2.1, atunci valoarea mediană este sub forma valorii medii a celor două eșantioane centrale din rândul 16.2.2.

Expresiile de mai sus nu explică cum să găsiți semnalul de ieșire în apropierea punctelor de capăt și de limită în secvențele și imaginile de final. Un truc simplu este să găsiți mediana doar a acelor puncte din imagine care se încadrează în diafragma. Prin urmare, pentru punctele situate în apropierea limitelor, medianele vor fi determinate pe baza unui număr mai mic de puncte.

În fig. 16.2.3 prezintă un exemplu de curățare a unei imagini zgomotoase cu filtrul median Chernenko / 2i /. Zgomotul imaginii în zonă a fost de 15%; pentru curățare, filtrul a fost aplicat de 3 ori succesiv.



Orez. 16.1.5.

Filtrarea mediană poate fi efectuată și într-o versiune recursivă, în care valorile de deasupra și din stânga eșantionului central din mască (în acest caz, x 1 (n) -x 4 (n) în Fig. 16.2. 2) în seria 16.2.1 se înlocuiesc cu valorile y 1 (n) -y 4 (n) calculate în ciclurile precedente.

Filtre 2D adaptive. Contradicția în dependența gradului de suprimare a zgomotului și de distorsiune a semnalului de deschiderea filtrului este oarecum netezită atunci când se utilizează filtre cu o dimensiune dinamică a măștii, cu adaptarea dimensiunii diafragmei la natura imaginii. În filtrele adaptive, deschiderile mari sunt utilizate în zonele monotone ale semnalului procesat (suprimare mai bună a zgomotului), iar deschiderile mici în apropierea neomogenităților, păstrându-și caracteristicile, în timp ce dimensiunea ferestrei glisante a filtrului este setată în funcție de distribuția luminozității pixelilor în masca de filtru. Ele se bazează, de regulă, pe analiza luminozității din vecinătatea punctului central al măștii de filtru.

Cei mai simpli algoritmi pentru modificarea dinamică a deschiderii unui filtru care este simetric de-a lungul ambelor axe funcționează de obicei conform unui coeficient de luminanță de prag S prag = dat pe baza datelor empirice. La fiecare poziție curentă a măștii din imagine, procesul iterativ începe cu dimensiunea minimă a deschiderii. Valorile abaterii luminozității pixelilor vecini A (r, n), care intră în fereastra de dimensiune (n x n), în raport cu luminozitatea referinței centrale A (r) sunt calculate prin formula:

S n (r) = | A (r, n) / A (r) - 1 |. (16.2.3)

Criteriul conform căruia se mărește dimensiunea măștii cu numărătoarea centrală r și se efectuează următoarea iterație are forma:

max< S порог. (16.2.4)

Dimensiunea maximă a măștii (numărul de iterații) este de obicei limitată. Pentru măștile nepătrate cu dimensiuni (n ​​x m), iterațiile pot fi calculate cu o creștere separată a parametrilor n și m, precum și cu o schimbare a formei măștilor în timpul procesului de iterație.

Filtre clasificate ... În ultimele două decenii, algoritmi neliniari bazați pe statistici de rang s-au dezvoltat activ în procesarea imaginilor digitale pentru recuperarea imaginilor deteriorate de diferite modele de zgomot. Astfel de algoritmi vă permit să evitați distorsiunile suplimentare ale imaginii atunci când eliminați zgomotul, precum și să îmbunătățiți semnificativ rezultatele filtrelor pe imaginile cu un grad ridicat de zgomot.

Esența statisticilor de rang constă de obicei în faptul că rândul 16.2.1 nu include eșantionul central al măștii de filtru, iar rândul 16.2.2 este utilizat pentru a calcula valoarea lui m (n). Pentru N = 3, conform Fig. 16.2.2:

m (n) = (x 4 (n) + x 5 (n)) / 2. (16.2.5)

Calculul valorii de ieșire a filtrului, care înlocuiește proba centrală, se realizează folosind formula:

y (n) = a x (n) + (1-a) m (n). (16.2.6)

Valoarea coeficientului de încredere a este asociată cu o anumită relație cu statisticile eșantioanelor din fereastra de filtrare (de exemplu, varianța totală a eșantioanelor, varianța diferențelor x (n) -xi (n) sau m (n) -xi (n), varianța diferențelor pozitive și negative x (n ) -xi (n) sau m (n) -xi (n), etc.). În esență, valoarea coeficientului a ar trebui să precizeze gradul de deteriorare a referinței centrale și, în consecință, gradul de împrumut pentru corectarea acestuia valoarea din eșantioanele m (n). Alegerea funcției statistice și natura dependenței coeficientului a de aceasta poate fi destul de diversă și depinde atât de dimensiunea diafragmei filtrului, cât și de natura imaginilor și a zgomotului.

literatură

44. Bolshakov I.A., Rakoshits V.S. Teoria aplicată a fluxurilor aleatoare, Moscova: Sov. radio, 1978, - 248s.

46. ​​​​Huang T.S. și alți algoritmi rapidi în procesarea digitală a imaginilor. - M .: Radio şi comunicare, 1984 .-- 224 p.

47. Soifer V.A. Procesarea imaginilor pe computer. Partea 2. Metode și algoritmi. - Jurnal Educaţional Soros Nr. 3, 1996.

48. Apalkov I.V., Hryashchev V.V. Eliminarea zgomotului din imagini pe baza algoritmilor neliniari folosind statistici de rang. - Universitatea de Stat din Iaroslavl, 2007.

1i. Yarovoy N.I. Filtrare mediană adaptivă. - http://www.controlstyle.ru/articles/science/text/amf/

2i. Chernenko S.A. Filtru median. - http://www.logis-pro.kiev.ua/math_power_medianfilter_ru.html.

3i. Yu.S. Radcenko Eficiența recepției semnalului pe fondul interferențelor combinate cu procesare suplimentară în filtrul median. - „Journal of Radio Electronics”, nr. 7, 2001. / http://jre.cplire.ru/iso/jul01/2/text.html

Despre erori observate și sugestii pentru completări: [email protected]

Copyright © 2008 Davydov A.V.

Filtrarea mediană este o tehnică de procesare a semnalului neliniară dezvoltată de Tukey. Această metodă este utilă pentru suprimarea zgomotului dintr-o imagine. Un filtru median unidimensional este o fereastră glisantă care acoperă un număr impar de elemente de imagine. Elementul central este înlocuit cu mediana tuturor elementelor de imagine din fereastră. Mediana unei secvențe discrete pentru una impară este acel element pentru care există elemente care sunt mai mici sau egale ca mărime și elemente care sunt mai mari sau egale cu aceasta ca mărime. Lasă elementele imaginii cu nivelurile 80, 90, 200, 110 și 120 să cadă în fereastră; în acest caz, elementul central ar trebui înlocuit cu o valoare de 110, care este mediana secvenței ordonate 80, 90, 110, 120, 200. Dacă, în acest exemplu, valoarea 200 este un vârf de zgomot într-un mod monoton. secvență crescândă, apoi filtrarea mediană va oferi o îmbunătățire semnificativă. Dimpotrivă, dacă valoarea de 200 corespunde unui impuls de semnal util (când se folosesc senzori de bandă largă), atunci procesarea va duce la o pierdere a clarității imaginii reproduse. Astfel, filtrul median în unele cazuri asigură suprimarea zgomotului, în altele determină suprimarea semnalului nedorit.

În fig. 12.6.1 arată efectul filtrelor mediană și de mediere (netezire) cu o fereastră cu cinci elemente asupra semnalelor discrete în trepte, dinți de ferăstrău, puls și triunghi. Din aceste diagrame se poate observa că filtrul median nu afectează funcțiile de treaptă sau rampă, ceea ce este de obicei o proprietate de dorit. Cu toate acestea, acest filtru suprimă semnalele pulsate care sunt mai mici de jumătate din lățimea ferestrei. De asemenea, filtrul aplatizează vârful funcției triunghiulare.

Orez. 12.6.1. Exemple de filtrare mediană a celor mai simple semnale discrete,.

a - tranziție în trepte: b - tranziție dinți de ferăstrău; c - un singur impuls; e - dublu impuls; d - triplu impuls; e - semnal triunghiular.

Posibilitățile de analiză a acțiunii filtrului median sunt limitate. Se poate arăta că mediana produsului dintre o constantă și o secvență este

În plus,

Cu toate acestea, mediana sumei a două secvențe arbitrare și nu este egală cu suma medianelor lor:

Această inegalitate poate fi verificată prin exemplul secvențelor 80, 90, 100, 110, 120 și 80, 90, 100, 90, 80.

Sunt posibile diferite strategii de aplicare a filtrului median pentru a suprima zgomotul. Se recomandă să începeți cu un filtru median care se întinde pe trei elemente de imagine. Dacă atenuarea semnalului este neglijabilă, fereastra filtrului este extinsă la cinci elemente. Acest lucru se face până când filtrarea mediană face mai mult rău decât bine. O altă posibilitate este de a efectua filtrarea mediană în cascadă a semnalului folosind o lățime de fereastră fixă ​​sau variabilă. În cazul general, acele zone care rămân neschimbate după un singur tratament cu filtru nu se modifică după procesări repetate. Regiunile în care durata semnalelor pulsate este mai mică de jumătate din lățimea ferestrei vor suferi modificări după fiecare ciclu de procesare.

Conceptul de filtru median poate fi generalizat cu ușurință la două dimensiuni prin aplicarea unei ferestre 2D de forma dorită, cum ar fi dreptunghiulară sau aproape circulară. Evident, un filtru median cu fereastră bidimensional asigură o suprimare mai eficientă a zgomotului decât filtrele mediane cu fereastră unidimensionale aplicate succesiv orizontale și verticale; Procesarea 2D, totuși, are ca rezultat o atenuare mai semnificativă a semnalului. În fig. 12.6.2 arată efectul filtrării mediane bidimensionale asupra semnalului de impuls spațial. S-au folosit filtre cu două tipuri de ferestre: dimensiune pătrată și dimensiune cruce. După cum puteți vedea, filtrul de fereastră pătrată mediană a distrus colțurile pătratului afișat, în timp ce filtrul de fereastră transversală l-a lăsat neschimbat.

Orez. 12.6.2. Exemple de filtrare mediană 2D

În fig. 12.6.3 și 12.6.4 prezintă mostre de imagini supuse la filtrare mediană pentru a suprima zgomotul. După cum puteți vedea, filtrul median este mai eficient la suprimarea zgomotului de impuls împrăștiat decât zgomotul neted. Filtrarea mediană a imaginilor pentru suprimarea zgomotului ar trebui considerată o metodă euristică. Nu poate fi aplicat orbește. Mai degrabă, rezultatele ar trebui verificate pentru a se asigura că filtrarea mediană este adecvată.

Orez. 12.6.3. Mostre de imagini procesate cu un filtru median unidimensional pentru a suprima zgomotul de impuls.

a - imaginea originală cu zgomot de impuls (15 elemente distorsionate pe fiecare linie); b - rezultatul filtrarii mediane la; c - rezultatul filtrarii mediane la; d - rezultatul filtrarii mediane la.

Orez. 12.6.4. Mostre de imagini procesate cu un filtru median unidimensional pentru a suprima zgomotul gaussian.

a - imagine originală cu zgomot gaussian; b - rezultatul filtrarii mediane la; c - rezultatul filtrarii mediane la; d - rezultatul filtrarii mediane la.

Introducere

semnal digital de filtrare mediană

Procesarea digitală a semnalului și-a găsit o largă aplicație în diverse domenii de activitate: televiziune, radar, comunicații, meteorologie, seismologie, medicină, analiza vorbirii și telefonie, precum și în prelucrarea imaginilor și a domeniilor de natură variată. În unele domenii de activitate economică, cum ar fi bancare, procesarea fluxurilor financiare digitale este de o importanță fundamentală.

Dezvoltarea tehnologiei de calcul și microprocesoare duce la crearea de echipamente din ce în ce mai fiabile, de mare viteză, miniaturale, de înaltă calitate și ieftine. Tehnologiile digitale au devenit atât de răspândite încât sunt folosite în viața de zi cu zi, fără prea multă atenție: un telefon mobil, un CD player, un computer etc.

În cursul acestei lucrări, este necesar să se ia în considerare avantajele și dezavantajele filtrării mediane. Aflați cum funcționează filtrele mediane. Folosind programul MatLab712 R2011a, arătați funcționarea acestuia prin exemplu.

Partea teoretică a DSP

Filtru median

Toți algoritmii de filtrare liniară netezesc schimbările bruște ale luminozității imaginilor procesate. Acest dezavantaj, care este deosebit de semnificativ dacă consumatorul de informații este o persoană, în principiu nu poate fi exclus în cadrul prelucrării liniare. Ideea este că procedurile liniare sunt optime pentru o distribuție gaussiană a semnalelor, a zgomotului și a datelor observate. Imaginile reale, strict vorbind, nu se supun acestei distribuții de probabilitate. Mai mult decât atât, unul dintre principalele motive pentru aceasta este prezența diferitelor margini, diferențe de luminozitate, tranziții de la o textură la alta etc. ... Acesta este tocmai ceea ce cauzează transmiterea slabă a limitelor cu filtrarea liniară.

A doua caracteristică a filtrării liniare este optimitatea sa, așa cum tocmai am menționat, cu natura gaussiană a zgomotului. De obicei, această condiție este îndeplinită de interferența de zgomot în imagini, prin urmare, atunci când sunt suprimate, algoritmii liniari au performanțe ridicate. Cu toate acestea, de multe ori trebuie să aveți de-a face cu imagini care sunt distorsionate de alte tipuri de zgomot. Unul dintre ele este zgomotul de impuls. Când sunt expuse la aceasta, pe imagine se observă puncte albe și/sau negre, împrăștiate haotic în tot cadrul. Utilizarea filtrării liniare în acest caz este ineficientă - fiecare dintre impulsurile de intrare (de fapt, o funcție delta) oferă un răspuns sub forma unui răspuns la impuls de filtru, iar combinația lor contribuie la propagarea interferenței pe întreaga zonă a cadrul.

O soluție de succes la aceste probleme este utilizarea filtrarii mediane, propusă de J. Tukey în 1971 pentru analiza proceselor economice. Cel mai complet studiu al filtrarii mediane în raport cu procesarea imaginilor este prezentat în colecție. Rețineți că filtrarea mediană este o metodă de procesare euristică; algoritmul său nu este o soluție matematică pentru o problemă strict formulată. Prin urmare, cercetătorii acordă o mare atenție analizei eficienței procesării imaginilor pe baza acesteia și comparării cu alte metode.

La aplicarea filtrului median (MF), fiecare punct al cadrului este procesat secvenţial, în urma căruia se formează o secvenţă de estimări. În mod ideal, procesarea în diferite puncte este independentă (acest MF este asemănător cu un filtru de mască), dar pentru a o accelera, este recomandabil să folosiți algoritmic calculele efectuate anterior la fiecare pas.

Filtrarea mediană folosește o fereastră bidimensională (apertura filtrului), de obicei cu simetrie centrală, cu centrul ei situat în punctul de filtrare curent. În fig. 1.1 prezintă două exemple de ferestre în cruce și pătrate cele mai frecvent utilizate. Dimensiunile deschiderii se numără printre parametrii care sunt optimizați în procesul de analiză a eficienței algoritmului. Mostre ale imaginii din fereastră formează eșantionul de lucru al pasului curent.

Orez. 1.1.

Natura bidimensională a ferestrei permite efectuarea de filtrare în esență bidimensională, deoarece datele atât din rândul și coloana curente, cât și din cele adiacente sunt folosite pentru a forma o estimare. Să desemnăm proba de lucru ca o matrice unidimensională; numărul elementelor sale este egal cu dimensiunea ferestrei, iar aranjarea lor este arbitrară. De obicei, se folosesc ferestre cu un număr impar de puncte (acest lucru este asigurat automat cu simetria centrală a deschiderii și când punctul foarte central este inclus în compoziția sa). Dacă ordonați secvența în ordine crescătoare, atunci mediana ei va fi elementul eșantion care ocupă poziția centrală în această secvență ordonată. Numărul obținut în acest fel este produsul de filtru pentru punctul curent al cadrului. Este clar că rezultatul unei astfel de prelucrări nu depinde cu adevărat de secvența în care sunt prezentate elementele imaginii în proba de lucru. Să introducem o notație formală pentru procedura descrisă sub forma:

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

Să ne uităm la un exemplu. Să presupunem că proba are forma: Y = (136,110,99,45,250,55,158,104,75), iar elementul 250, situat în centrul său, corespunde punctului de filtrare curent (i 1, i 2) (Fig. 1.1). O valoare mare a luminozității în acest punct al cadrului poate fi rezultatul interferenței de impuls (punct). Eșantionul ordonat crescător are forma (45,55,75,99,104,110,136,158,250), prin urmare, conform procedurii (1.1), se obține x * = med (y 1, y 2, ..., y 9) = 104. Vedem că influența „vecinilor” asupra rezultatului de filtrare în punctul curent a dus la „ignorarea” emisiei de impuls de luminozitate, care ar trebui considerată ca un efect de filtrare. Dacă zgomotul de impuls nu este punctual, dar acoperă o zonă locală, atunci poate fi și suprimat. Acest lucru se va întâmpla dacă dimensiunea acestei zone locale este mai mică de jumătate din dimensiunea diafragmei MF. Prin urmare, pentru a suprima zgomotul de impuls care afectează zonele locale ale imaginii, dimensiunea diafragmei MF ar trebui mărită.

Din (1.1) rezultă că acțiunea MF este de a „ignora” valorile extreme ale eșantionului de intrare - atât valori aberante pozitive, cât și negative. Acest principiu de anulare a interferențelor poate fi aplicat pentru a atenua zgomotul imaginii. Cu toate acestea, studiul suprimării zgomotului folosind filtrarea mediană arată că eficiența sa în rezolvarea acestei probleme este mai mică decât cea a filtrării liniare.

Rezultatele experimentale care ilustrează funcționarea MF sunt prezentate în Fig. 1.2. În experimente, am folosit un MF având o deschidere pătrată cu latura egală cu 3. Rândul din stânga arată imagini distorsionate de zgomot, iar rândul din dreapta arată rezultatele filtrării lor mediane. În fig. 1.2 a și fig. 1.2.c arată imaginea originală distorsionată de zgomotul de impuls. Când a fost suprapus, a fost folosit un generator de numere aleatoare cu o lege de distribuție uniformă pe interval, care generează numere aleatoare independente în toate punctele cadrului. Intensitatea interferenței a fost stabilită de probabilitatea p de apariție a acesteia în fiecare punct. Dacă condiţia n i1i2

Orez. 1.2.

Orez. 1.2. e arată o imagine distorsionată de zgomotul gaussian independent la un raport semnal-zgomot q 2 = -5 dB, iar Fig. 1.2.f - rezultatul filtrării acestuia de către filtrul median. Condițiile acestui experiment fac posibilă compararea rezultatelor acestuia cu rezultatele filtrării liniare considerate mai sus. Tabelul 1.1 oferă date care fac posibilă o astfel de comparație. Pentru diferite metode de filtrare, acest tabel oferă valorile pătratului mediu relativ al erorilor q 2 și coeficientul de atenuare a zgomotului r pentru cazul în care raportul semnal-zgomot la intrarea filtrului este -5 dB.

Tabelul 1.1. Comparația eficienței suprimării zgomotului la filtrarea imaginilor, q 2 = -5 dB.

Cel mai eficient este filtrul Wiener bidimensional, care reduce pătratul mediu al erorilor de 17 ori. Filtrul median are cea mai scăzută eficiență dintre toate filtrele considerate; acesta corespunde cu r = 5,86. Cu toate acestea, acest număr indică faptul că, cu ajutorul său, este posibil să se reducă semnificativ nivelul de zgomot din imagine.

În același timp, așa cum sa menționat mai sus și așa cum se arată în Fig. 1.2.e, filtrarea mediană netezește marginile imaginii într-o măsură mai mică decât orice filtrare liniară. Mecanismul acestui fenomen este foarte simplu și este următorul. Să presupunem că deschiderea filtrului este situată în apropierea graniței care separă zonele luminoase și întunecate ale imaginii, în timp ce centrul său este situat în zona zonei întunecate. Apoi, cel mai probabil, eșantionul de lucru va conține un număr mai mare de elemente cu valori scăzute de luminozitate și, prin urmare, mediana se va număra printre acele elemente ale selecției de lucru care corespund acestei zone a imaginii. Situația se inversează dacă centrul diafragmei este deplasat într-o regiune de luminozitate mai mare. Dar asta înseamnă și că MF este sensibil la schimbările de luminozitate. Există multe interpretări ale metodelor de lucru MF, să luăm în considerare alta, de exemplu, utilizarea sa în procesarea imaginilor celulelor sanguine - granulocite. Înainte de a măsura dimensiunea unui granulocite, imaginea acestuia a fost netezită cu un filtru median pentru a elimina granulele care ar putea afecta rezultatul măsurării. De obicei, în procesul de filtrare mediană, valorile semnalului dintr-o anumită vecinătate a punctului în care este calculat răspunsul filtrului sunt sortate în ordine crescătoare sau descrescătoare într-o serie de variații. Răspunsul filtrului este definit ca mediana - valoarea semnalului din mijlocul (centrul) seriei de variații. În cele ce urmează, acest cartier va fi numit fereastra de filtrare. În plus, pentru simplitate, vom lua în considerare un filtru cu o fereastră pătrată de dimensiune n × n.

Prin urmare, atunci când se calculează mediana în fereastra de filtrare, numărul de operațiuni de date, de exemplu, numărul de operațiuni de sortare, este egal cu n 2. La procesarea unei imagini de dimensiunea M × N puncte (pixeli), numărul de operațiuni de date va fi mare și se va ridica la M × N × n 2. Operațiuni diferite necesită timpi de execuție diferiți. Scanând imaginea în secvență, pot fi reduse operațiunile de sortare cele mai consumatoare de timp. Deci, la trecerea de la punctul o1 cu fereastra w1 la punctul o2 cu fereastra w2 din Fig. 1.3. este posibilă excluderea punctelor coloanei 1 din seria de variații a ferestrei w1, sortarea punctelor coloanei 6 și combinarea celor două serii de variații obținute într-una singură. Acest algoritm funcționează mai rapid în comparație cu sortarea independentă în fiecare fereastră, dar numărul total de manipulări de date (deși mai puțin laborioase), de exemplu, cel puțin enumerarea datelor, rămâne același, adică destul de mare. Prin urmare, cu filtrarea mediană a imaginilor, acestea sunt de obicei limitate la ferestre de 3 × 3 sau 5 × 5 și rareori mai mult, ceea ce este suficient, de exemplu, pentru a elimina zgomotul de impuls.

Orez. 1.3. Scanarea unei imagini cu fereastra de filtru mediană

Aceleași restricții sunt acceptate forțat pentru diferite operații neliniare de prelucrare morfologică, efectuate în spațiul geometric al imaginii și care, spre deosebire de operațiile liniare, nu pot fi efectuate în spațiul Fourier. În același timp, există o serie de probleme de procesare a imaginii care ar putea fi rezolvate eficient folosind filtrul median, dar necesită o fereastră mare. Una dintre aceste sarcini va fi discutată mai jos. Prin urmare, o posibilă creștere a vitezei medii de filtrare este foarte promițătoare în sarcinile de procesare a imaginii.

Metodele de filtrare mediană sunt destul de diverse. Ele pot fi îmbunătățite. O astfel de actualizare se numește filtrare mediană adaptivă.

Filtrarea mediană are și dezavantajele sale. În special, s-a stabilit experimental că această metodă are o eficiență relativ slabă în filtrarea așa-numitului zgomot de fluctuație. În plus, pe măsură ce dimensiunea măștii crește, marginile imaginii sunt neclare și, în consecință, claritatea imaginii este redusă. Aceste dezavantaje ale metodei pot fi minimizate prin utilizarea filtrarii mediane cu o dimensiune dinamică a măștii (filtrare mediană adaptivă). Principiul calculării referinței centrale în procesarea locală a imaginii printr-o fereastră glisantă rămâne același. Această mediană este dintr-un set de mostre ordonate care cad în fereastră (mască), iar dimensiunea ferestrei glisante (mască) este dinamică și depinde de luminozitatea pixelilor vecini.

Să introducem coeficientul de prag al abaterii luminozității S prag =. Valorile abaterii luminozității pixelilor vecini A (r, n, m), care se încadrează într-o fereastră de dimensiune n × m, în raport cu luminozitatea referinței centrale A (r), vor fi scrise în forma (1.2):

Apoi, criteriul conform căruia este necesară creșterea dimensiunii măștii cu referința centrală r va avea forma:

Pe baza algoritmului descris, a fost dezvoltat un program de calculator care a confirmat în practică avantajele filtrarii mediane adaptive.

Top articole similare