program de filtrare a zgomotului

Creați un program care filtrează zgomotul în metoda de calculare a mediei bitmap, pragul și filtre mediane.

Programul este scris în Object Pascal si ruleaza sub Win32. Vedere generală a programului este prezentat în Fig. № 1.

program de filtrare a zgomotului

Fig. № 2. Vedere generală a ferestrei principale c încărcate imaginea originală.

1. Filtru timp de mediere.

Filtrul de lucrări algoritm medie este de a înlocui valoarea luminanță

pixelul curent pe luminozitatea medie calculată din 8 împrejurimile sale, inclusiv elementul în sine. Acest filtru este cea mai ușoară. Dezavantajele pot fi atribuite netezirea funcției pas și rampă. În plus pixeli având o valoare luminanță substanțial diferită și este un zgomot poate aduce o contribuție semnificativă la rezultatul prelucrării.

Implementarea filtrului furnizat sub formă de procedură:

Această procedură efectuează o medie algoritm filtru aplicat obiectului TBitmap. Trebuie să fie imagine (Fig. № 2) pre-încărcate. Rezultatul filtrului se poate observa o echilibrare în Fig. № 3. Valoarea parametrului - un prag de la care a produs o manipulare a pixelilor.

dacă Image1.Picture.Bitmap.PixelFormat = pf8bit atunci

MessageBox (mâner, „Acest format de fișier nu a fost încă de sprijin.“

„Sunt încă un pic mai slab. “, MB_OK sau MB_ICONSTOP sau MB_APPLMODAL);

program de filtrare a zgomotului

Fig. № 3. Rezultatul filtrului de mediere.

2. Filtru de prag.

Pragul este o modificare a filtrului de mediere, iar diferența este

că înlocuirea valorilor medii de luminanță se efectuează numai în cazul în care diferența dintre valoarea luminozității și media a primit depășește pragul stabilit. Alegerea pragului se realizează într-o casetă de dialog special (Fig. 4). Pentru produsul folosește procedura de filtrare AverageFilter prezentat în etapa 1.

program de filtrare a zgomotului

Fig. № 4.Vybor medie prag de coeficienți ai filtrului.

program de filtrare a zgomotului

Fig. № 5. Ieșirea filtrului de prag.

3. Filtrul median.

filtru median unidimensional este o fereastră glisantă care acoperă numărul impar de elemente de imagine. Elementul central este înlocuit cu mediana a elementelor de imagine în fereastra. Elementele mediane ale secvenței discrete pentru M impar 1 este numit un element pentru care există un (M-1) / 2 elemente este mai mică sau egală cu ea în mărime, și (M-1) / 2 elemente mai mari sau egale cu aceasta magnitudine.

Filtrul median, în unele cazuri, oferă de suprimare a zgomotului, iar în cealaltă - determină supresie semnal nedorit. Filtrul median nu afectează SAWTOOTH și funcțiile pas, care de obicei este o caracteristică frumos, dar suprima semnalele de impulsuri, a căror durată este mai mică decât jumătate din lățimea ferestrei. Filtrul provoacă, de asemenea, o aplatizare a vârfurilor funcției triunghiulare.

Diferite strategii folosesc un filtru median pentru suprimarea zgomotului. Unul recomanda incepand cu un filtru median, care acoperă un element de imagine trei ferestre. În cazul în care semnalul slăbirea ușor, fereastra se extinde la cinci elemente. Deci, atâta timp cât filtrarea mediană va începe să aducă mai mult rău decât bine. O altă posibilitate este de a cascadă mediană filtrarea semnalului folosind o lățime fereastră fixă ​​sau variabilă. În general, zonele care rămân neschimbate după un singur tratament, și nu se modifică după re-tratament. Zonele în care durata semnalelor de impulsuri este mai mică decât jumătate din lățimea ferestrei va fi schimbată după fiecare ciclu de tratament. Conceptul de filtru median poate fi ușor generalizată la două dimensiuni utilizând o fereastră dreptunghiulară sau aproape forme circulare.

următorul cod este utilizat pentru a pune în aplicare un filtru median:

Procedura TMainForm.N16Click (Expeditor: TObject);

PixelArray: array de Byte;