Documente Academic
Documente Profesional
Documente Cultură
Cuprins
Filtrarea in domeniul frecventa
Filtrarea in domeniul spatial
Modelul imaginii
Operatii de netezire
Filtrare trecejos
Tranzitiile abrupte de niveluri de gri, cum sunt zgomotele in anumite
imagini, contribuie la cresterea ponderii frecventelor inalte din cadrul
transformatei Fourier. Rezulta ca inlaturarea acestui efect se poate face
prin atenuarea unor componente de inalta frecventa din transformata unei
imagini date. Exista relatia:
G(u,v) = H(u,v) F(u,v)
unde F(u,v) este transformata imaginii care se doreste sa fie filtrata.
Problema consta in a selecta o functie H(u,v) care furnizeaza G(u,v)
atenuand componentele de frecventa inalta din F(u,v). Transformata
inversa a lui G(u,v) va furniza imaginea filtrata g(x,y). Functia H(u,v) este
functia de transfer a filtrului.
1 daca D(u,v) D0
H(u,v) =
0 daca D(u,v)>D0
Aplicatie.
Imagine 500x500 pixeli si spectrul Fourier. Sunt trasate cercuri de raza 5, 15,
30, 80, 230 care incadreaza 92%, 94.6%, 96.4%, 98% si 99.5% din puterea
imaginii.
Filtrul butterworth (cu valori netezite) tip trece jos de ordinul n si cu frecventa
de taiere la distanta D0 de origine este definita de functia de transfer:
H(u,v) = 1/[1+(D(u,v)/D0)2n]
unde D(u,v) este dat de relatia D(u,v) = (u2 + v2)1/2
1
daca D(u,v)<D0
H(u,v) = [D(u,v)D1]/[D0D1]
daca D0 D(u,v) D1
0
daca D(u,v)>D1
unde D(u,v) = (u2 + v2)1/2 , iar D0 si D1 sunt valori specificate, astfel incat
D0<D1. Exista conventia ca frecventa de taiere sa se gaseasca la primul punct
D0 al functiei de transfer.
Filtrare trecesus
Marirea claritatii imaginilor se poate face in domeniul frecventa prin procesul
de filtrare trecesus, care atenueaza componentele de frecventa mica, fara sa
modifice componentele de frecventa mare ale transformatei Fourier.
Filtrul ideal trecesus are functia de transfer:
0 daca D(u,v) D0
H(u,v) =
1 daca D(u,v)>D0
unde D0 este o valoare specificata pozitiva, iar D(u,v) este distanta de la punctul
(u,v) la originea planului de frecventa conform relatiei (D(u,v) = (u2 + v2)1/2 . De
remarcat faptul acest filtru este opusul filtrului ideal trece-jos.
0
daca D(u,v)<D1
1
daca D(u,v)>D0
g ( x, y )
wk ,l f ( x k , y l )
( k , l )W
g(x,y) =
f(x,y)
altfel
unde T este o valoarea de prag pozitiva, data. Ideea acestei solutii este sa se
lase nemodificate nivelurile punctelor ale caror diferente fata de vecini nu
depasesc valoarea de prag T.
g ( x, y )
1 1
k 1 l 1 9
f (x k, y l)
1 / 9 1 / 9 1 / 9
W 1 / 9 1 / 9 1 / 9
1 / 9 1 / 9 1 / 9
Aceasta masca de filtrare se aplica succesiv fiecarui pixel din imaginea initiala,
valoarea calculata inlocuind pixelul respectiv in imaginea filtrata. O problema
apare la medierea pixelilor de pe cele patru granite ale imaginii. O solutie este
ca valorile acestor pixeli sa ramana nemodificate. O alta solutie este sa se
efectueze medierea si pentru acesti pixeli, copiind pentru fiecare linie sau
coloana de pe margine cate o linie, respectiv coloana suplimentara avand
aceleasi valori cu pixelii de pe linia sau coloana respectiva, eventual avand
anumite valori constante.
In general valorile pixelilor din fereastra de filtrare sunt apropiate de
valoarea pixelului central. Evident ca acest aspect nu este valabil in cazul
contururilor, care astfel prin mediere vor fi estompate. Pentru a rezolva aceasta
problema unele filtre utilizeaza un coeficient (pondere) de valoare mai mare
corespunzator pixelului central.
imaginea originala
Filtrul median
O alta solutie pentru a conserva contururile dintr-o imagine o reprezinta
filtrul median. Intr-o fereastra de filtrare valoarea pixelului central se determina ca
fiind valoarea mediana a valorilor pixelilor din aceea fereastra. De exemplu,
considerand o fereastra 3x3, valorile pixelilor din fereastra respectiva sunt:
10
15
20
20
20
25
20
20
100
Prin sortarea acestor valori se obtine sirul (10, 15, 20, 20, |20|, 20, 20, 25, 100),
pentru care valoarea mediana este 20 (valoarea marcata in sir). Deci aplicarea
filtrului va furniza in aceasta fereastra pentru pixelul central valoarea 20. In
acest fel se forteaza ca fiecare pixel din imagine sa fie cat mai asemanator cu
vecinii sai, dar in acelasi timp contururile sunt conservate. Evident filtrul median
este neliniar, fiind de fapt o operatie morfologica. Astfel la operatia de erodare
fiecare pixel este inlocuit cu valoarea cea mai mica din fereastra, la operatia de
dilatare, fiecare pixel este inlocuit cu valoarea cea mai mare din fereastra, in
timp ce la filtrarea mediana fiecare pixel este inlocuit cu valoarea mediana din
fereastra.
Aplicatie. Imaginea unui circuit imprimat afectata de zgomot sare-sipiper, filtrata cu filtru de mediere 3x3 (reducere semnificativa a zgomotului, dar
cu blurr) si filtrata cu filtru median (evident rezultate superioare).
i=1
E{gm(x,y)} = f(x,y)
si
2gm(x,y) = 1/M 2(x,y)
unde E{gm(x,y)} este valoarea asteptata a lui gm, iar 2gm(x,y) si 2(x,y) sunt
abaterile patratice pentru gm si respectiv , in punctele de coordonate (x,y).
Deviatia standard in oricare punct din imaginea mediata este data de relatia:
gm(x,y) = 1/
(x,y)
Efectele medierii pot fi mai bine apreciate din imaginile diferenta dintre
imaginea originala si cele patru imagini obtinute prin mediere. Din histograme
se deduce scaderea mediei si deviatiei standard ale imaginilor diferenta pe
masura ce M creste.
MODELUL IMAGINII
Modelul iluminarereflectanta se poate utiliza ca o baza pentru o procedura
din domeniul frecventa utila pentru a imbunatati aparenta unei imagini prin
comprimarea domeniului stralucirii si simultan imbunatatirea contrastului
(filtrare homomorfica). O imagine f(x,y) se poate exprima in termenii
componentelor iluminare si reflectanta prin relatia:
f(x,y) = i(x,y) r(x,y)
Aceasta ecuatie nu se poate utiliza direct pentru a opera separat asupra
componentelor de frecventa ale iluminarii si reflectantei deoarece transformata
Fourier a produsului celor doua functii nu este separabila, deci:
fourier{f(x,y)} fourier{i(x,y)} fourier{r(x,y)}
Se presupune totusi ca:
z(x,y) = ln[f(x,y)] = ln[i(x,y)] + ln[r(x,y)]
Rezulta ca:
fourier{z(x,y)} = fourier{ln[f(x,y)]} =
= fourier{ln[i(x,y)]} + fourier{ln[r(x,y)]}
sau:
Z(u,v) = I(u,v) + R(u,v)
unde I(u,v) si R(u,v) sunt transformatele Fourier pentru ln[i(x,y)] si respectiv,
ln[r(x,y)]. Daca se prelucreaza Z(u,v) utilizand o functie de filtrare H(u,v), care
atenueaza componentele de frecventa joasa si amplifica componentele de
frecventa inalta (figura urmatoare) se obtine:
S(u,v) = H(u,v) Z(u,v) = H(u,v) I(u,v) + H(u,v) R(u,v)
unde S(u,v) este transformata Fourier a rezultatului. In domeniul spatial exista
relatia:
s(x,y) = fourier-1{S(u,v)} = fourier-1{H(u,v)I(u,v)} +
+ fourier-1{H(u,v)R(u,v)}
Daca se noteaza:
i'(x,y) = fourier-1{H(u,v)I(u,v)}
r'(x,y) = fourier-1{H(u,v)R(u,v)}
ecuatia s(x,y) poate fi exprimata sub o alta forma:
s(x,y) = i'(x,y) + r'(x,y)
OPERATII DE NETEZIRE
Operatiile de netezire permit eliminarea micilor diferente dintre valorile
pixelilor apartinand unei aceleiasi regiuni, reduc zgomotul si pregatesc
imaginile pentru prelucrari ulterioare, ca de exemplu segmentarea. Algoritmii de
netezire se pot clasifica in:
-algoritmi liniari, utilizabili in domeniul Fourier;
-algoritmi neliniari, neutilizabili in domeniul Fourier.
De asemenea, se disting implementari bazate pe suport rectangular pentru
filtru si implementari bazate pe suport circular.
Filtre liniare
In continuare sunt prezentati cei mai importanti algoritmi liniari de
filtrare de netezire.
Avand in vedere relatia generala pentru filtrarea liniara:
wk ,l f ( x k , y l )
g ( x, y )
( k , l )W
se considera cazul unei imagini complet uniforme, in care toti pixelii au aceeasi
valoare v. Aplicand relatia de mai sus valorile pixelilor nu se mai modifica, deci
nici uniformitatea imaginii nu se modifica. Se obtine:
v
adica:
wk ,l v
( k , l )W
wk , l
( k , l )W
1/ 16 1/ 16 1/ 16
W1 1/ 16 1/ 2 1/ 16
1/ 16 1/ 16 1/ 16
0 1/ 5 0
W2 1 / 5 1 / 5 1 / 5
0 1 / 5 0
0 1/ 8 0
W3 1 / 8 1 / 4 1 / 8
0 1/ 8 0
1 / 2 1 / 6
W4
1
/
6
1
/
6
Chiar daca nucleul de filtrare poate avea orice forma, in practica se utilizeaza
forme regulate, avand pixelul care se calculeaza in centru. Intr-o astfel de
situatie nucleul W4 poate fi rescris prin completarea cu coeficienti nuli astfel
incat sa rezulte un patrat 3x3:
0
0 0
W4 0 1 / 2 1 / 6
0 1 / 6 1 / 6
Se observa ca toate aceste masti respecta conditia de normare pentru un
nucleu de netezire.
Pentru domeniul spatial discret [m,n] valorile filtrului sunt esantioane ale
domeniului continuu. De exemplu, pentru cazul rectangular (J=K=5 filtru
rectangular):
1 1 1 1 1
1 1 1 1 1
1
hrect [ j , k ] 1 1 1 1 1
25
1
1
1
1
1
1 1 1 1 1
0
1
1
1
hcirc [ j , k ]
21
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
2
1
3
hrect [ j , k ]
81
2
1
4
6
6
9
4
6
2
3
4
2
6
3
4
2
2
1
0
0
1
1
hcirc [ j , k ]
25
0
0
0 1 0 0
2 2 2 0
2 5 2 1
2 2 2 0
0 1 0 0
1 2 2
h ( x , y ) g 2 D ( x, y )
e
2
2
x2
y2
1
2
2
1
2
e
e 2 g1D ( x) g1D ( y )
2
2
g1D [n]
1
e
2
x2
2 2
n N0
n N0
u[ n]
1
2N0 1
0
n N0
n N0
0.9871 0.9633
q
3.97156 4.14554 1 0.26891
2.5
0.5 2.5
W1 1 / 4
0
1/ 4
W2 1 / 2
1 / 4
1/ 4
1
1/ 4
1/ 2
1
1/ 2
0
1 / 4
0
1/ 4
1 / 2
1 / 4
1 / 8 1 / 8 1 / 8
W3 1 / 8
1
1 / 8
1 / 8 1 / 8 1 / 8
wk ,l v 0
k ,l W
deci
wk , l
( k , l )W
Filtre neliniare
Au fost dezvoltate o serie de filtre neliniare, care insa nu pot fi aplicate
in domeniul Fourier:
Filtrul median se bazeaza pe deplasarea unei ferestre peste o imagine
(ca pentru o convolutie) si calculeaza pixelul de iesire ca valoarea mediana a
stralucirii pixelilor din interiorul ferestrei. Pentru o fereastra de dimensiune J*K
se ordoneaza crescator cele JK valori de stralucire, iar valoarea mediana este
valoarea cu numarul de ordine (JK+1)/2 (pentru JK impar). Valoarea rezultata
este egala chiar cu valoarea unui pixel din cadrul ferestrei, deci nu este
necesara nici o rotunjire. Complexitatea algoritmului per pixel este
O(JKlog(JK)). Exista si un algoritm mai rapid (Huang), care reduce
complexitatea la O(K), pentru JK.
Filtrul procentaj este o varianta a celui precedent. Pixelul central din
cadrul ferestrei este inlocuit cu valoarea stralucirii p%, unde p% varieaza de la
0% (filtrul minimal) la 100% (filtrul maximal). Filtrul median se obtine pentru
valoarea p=50% si corespunde filtrului de netezire.
In fiecare din cele patru regiuni se masoara stralucirea medie, mi si varianta si2
(deviatia standard de esantionare). Valoarea de iesire a pixelului central este
valoarea medie a regiunii cu varianta cea mai mica. Complexitatea per pixel a
algoritmului este O(JK).