Documente Academic
Documente Profesional
Documente Cultură
Curs 3
1. Consideraţii generale
Spre deosebire de operaţiunile punctuale, operaţiunile spaţiale se realizează asupra
pixelilor dintr-o vecinătate din imaginea iniţială şi valorile corespunzătoare ale unei subimagini
de aceeaşi dimensiune cu vecinătatea aleasă. Subimaginea este numită filtru, mască, nucleu,
fereastră. Valorile filtrului se numesc coeficienţi sau ponderi. Operaţiile de filtrare care se aplică
direct asupra pixelilor se mai numesc filtrări spaţiale, pentru a le deosebi de tehnicile Fourier
care sunt referite ca filtrări în domeniul frecvenţelor.
Filtrările spaţiale se pot clasifica după mai multe criterii:
a) după efectul şi destinaţia lor:
- pentru eliminarea zgomotelor;
- pentru netezirea (estomparea) detaliilor (bluring/smoothing);
- pentru accentuarea detaliilor (sharpening);
- pentru detecţia muchiilor; etc.
b) după structura şi modul de aplicare:
- liniare – se aplică o operaţie liniară asupra imaginii (de obicei operaţia de
convoluţie);
- neliniare – se aplică operaţii neliniare asupra imaginii.
1
PI, curs 3
0 X
Masca
Imagine f(x,y)
Y
w(-1,-1) w(0,-1) w(1,-1)
Coeficientii filtrului
f(x-1,y-1) f(x,y-1) f(x+1,y-1)
a b
=
g ( x, y ) ∑ ∑ w(s, t ) f ( x + s, y + t ) (2)
s=
−a t =
−b
m −1 n −1
a= , b= , x = 0, M − 1 , y = 0, N − 1
2 2
2
PI, curs 3
Relaţia (2) este de fapt o relaţie de convoluţie (strict vorbind este corelaţie, vezi sfârşitul
cursului). Valoarea pixelului curent este înlocuită cu produsul de convoluţie dintre vecinătatea
pixelului curent şi masca de convoluţie.
Observaţie: Pentru simplitate relaţia (2) se scrie uneori sub forma:
mn −1
g ( x, y ) = ∑ wi zi (3)
i =0
w0 w1 w2
w3 w4 w5
w6 w7 w8
Observaţie: Relaţia (2) se aplică în forma dată atunci când o mască de dimensiune n × n are
n −1
centrul la cel puţin de marginile imaginii. În acest fel imaginea rezultată este mai mică
2
decât cea iniţială. Dacă se doreşte să fie de aceeaşi dimensiune putem procesa pixelii de pe
margine: (i) cu o mască parţială sau (ii) putem extinde imaginea originală prin simpla copiere a
liniilor sau a coloanelor.
a b
=g ( x, y ) ∑ ∑ w(s, t ) f ( x + s, y + t ) + η ab ( x, y) (4)
s=
−a t =
−b
η ab ( x, y ) - este dependentă de dimensiunea ferestrei (măştii). Cu cât dimensiunea este mai mare
cu atât η ab → 0 .
Observaţie. Filtrele liniare de netezire diminuează influenţa zgomotului nu prin eliminare ci prin
împrăştierea lui în imagine.
3
PI, curs 3
1 a b
=
g ( x, y ) ∑ ∑ f ( x + s, y + t )
m n s=
(5)
−a t =
−b
Pentru m= n= 3 ⇒ masca:
1 1 1
1
1 1 1
9
1 1 1
Acest tip de filtru poate fi folosit pentru zgomot gaussian şi zgomot uniform.
a)
b) c)
d) e)
4
PI, curs 3
Filtrul gaussian este cel mai potrivit pentru eliminarea zgomotului gaussian. Ponderea
pixelilor se reduce odată cu creşterea distanţei faţă de pixelul central.
s 2 +t 2
1 a b −
=g ( x, y )
2πσ 2 ∑ ∑ f ( x + s , y + t )e 2σ 2 (6)
s=
−a t =
−b
Filtrarea este cu atât mai puternică cu cât valoarea deviaţiei standard σ şi dimensiunea
măştii de convoluţie este mai mare. Pentru dimensiunea 3 × 3 , aplicarea acestui filtru se poate
face cu masca:
1 2 1
1
2 4 2
16
1 2 1
Concluzie:
Filtrele de mediere se folosesc în special la estomparea (bluring) obiectelor mici pentru a
putea izola obiectele mari care ne interesează. Intensitatea obiectelor mici se amestecă cu fondul
şi astfel obiectele mari sunt mult mai uşor de detectat. Dimensiunea măştii se alege în funcţie de
dimensiunea obiectelor pe care dorim să fie amestecate cu fondul.
5
PI, curs 3
3. Filtre neliniare
În general, zgomotele din imagini apar în domeniu frecvenţelor înalte din spectrul
imaginii. De aceea, pentru înlăturarea lor se folosesc filtre trece-jos. Aceste filtre tind să reducă
detaliile din imagini (linii, colţuri). Filtrele trece-jos degradează punctele de front, degradând
imaginea.
Filtrele neliniare elimină zgomotele, păstrând totodată fronturile şi detaliile din imagine.
( )
g ( P ) = Rang j RVP , (7)
6
PI, curs 3
g ( P ) min
= = RVP ( ) {
min f ( Q ) Q ∈ VP } (8)
g ( P ) max
= = RVP ( ) {
max f ( Q ) Q ∈ VP } (9)
Filtrul median este definit pentru N impar. El corespunde poziţiei din mijloc în vectorul
ordonat al intensităților, RV p , deci:
( )
g ( P ) = Rang N −1 RVP (10)
2
Obs.: În cazul în care notăm pozițiile cu 1, 2, , N (indexul în vector ia valorile 1, 2, , N ),
rezultă:
( )
g ( P ) = Rang N +1 RVP (11)
2
Filtrul median înlătură zgomotele fără a degrada imaginea, deci fără a atenua punctele de
front.
Filtrele de netezire tind să distribuie zgomotele în punctele înconjurătoare acelora care
reprezintă zgomot. Principala proprietate a filtrului median este aceea că forţează pixelii cu
nivele de gri distincte să fie mai asemănătoare cu vecinii lor. De fapt, sunt eliminate grupurile de
pixeli care sunt mai luminoase sau mai întunecate decât vecinii lor şi a căror arie este mai mică
mn
decât (jumătatea ariei filtrului).
2
7
PI, curs 3
Obs: În general, filtrul median este cel mai potrivit pentru zgomotul sare şi piper.
a) b)
c)
Fig. 6 a) imaginea originală; b) imaginea cu zgomot sare şi piper; c) imaginea filtrată
8
PI, curs 3
Exemplu:
Considerăm cazul N = 5 = (m 1,= n 5) . Vectorul ordonat al intensităţilor pixelilor din
vecinătatea (fereastra, masca) de filtrare îl considerăm:
RVP {100,110,120,130, 250}
Ieşirea filtrului median va fi 120. Prin comparaţie, ieşirea unui filtru de netezire cu
100 + 110 + 120 + 130 + 250
ponderi egale (filtru medie aritmetică) este = 142.
5
Alegerea vecinătăţii (fereastra de filtrare)
Forma vecinătăţii în care se calculează cele N intensităţi influenţează efectul filtrului. În
general, vecinătatea se alege mică pentru a se evita efortul de calcul presupus de sortarea unui
vector mare de intensităţi. Dimensiunea este dată de dimensiunea grupurilor de pixeli care
trebuie eliminate. Alegerea formei ferestrei se poate baza pe o cunoaştere a caracteristicilor de
zgomot din imagine, de exemplu orientarea orizontală sau verticală.
Formele de ferestre uzuale pentru filtrul median sunt:
n n
n n
9
PI, curs 3
Algoritmul Huang
Exemplu: cazul N = 7
0 1 2 3 4 5 6
4, 6, 8, 10, 11, 12, 14
}
N/2
N −1
valoarea mediană: poziţia =3
2
În vectorul sortat al intensităţilor N 2 intensităţi sunt mai mici decât valoarea mediană.
Dacă valoarea mediană corespunde poziției i în histogramă (nivelul i de intensitate)
atunci numărul total de pixeli cu intensitatea mai mică decât a nivelului i este:
i −1
∑ h( j )
j =0
10
PI, curs 3
Algoritmul Huang:
11
PI, curs 3
Algoritmul este mult mai rapid decât în cazul folosirii sortării în fereastră, chiar dacă se folosește
un algoritm de sortare rapidă.
Observație. Filtrul nu se aplică pe marginea de lățime m 2 , respectiv n 2 a imaginii. Pentru
filtrarea acestor margini se poate folosi o fereastră trunchiată.
12
PI, curs 3
Adaptive Filters
The filters discussed so far are applied to an entire image without any regard for how
image characteristics vary from one point to another.
The behaviour of adaptive filters changes depending on the characteristics of the image inside
the filter region.
We will take a look at the adaptive median filter.
The median filter performs relatively well on impulse noise (white or black pixels) as
long as the spatial density of the impulse noise is not large. The adaptive median filter can handle
much more spatially dense impulse noise, and also performs some smoothing for non-impulse
noise. Moreover, the adaptive median filter seeks to preserve detail while smoothing non-impulse
noise, while the median filter does not do.
The key insight in the adaptive median filter is that the filter size changes depending on
the characteristics of the image.
The adaptive median filter aims to replace f(x,y) with median of a neighborhood up to a
specified size as long as the median is different from the max and min values but f(x,y)=min or
f(x,y)=max. Othervise, f(x,y) is not changed.
Remember that filtering looks at each original pixel image in turn and generates a new
filtered pixel.
First examine the following notation:
– zmin = minimum grey level in Sxy
– zmax = maximum grey level in Sxy
– zmed = median of grey levels in Sxy
– zxy = grey level at coordinates (x, y)
– Smax =maximum allowed size of Sxy
Level A: =
A1 zmed − zmin
=A2 zmed − zmax
if A1 > 0 and A2 < 0, go to level B
else increase the window size
if window size ≤ Smax, repeat Level A
else output zmed
Level B: =
B1 z xy − zmin
B=
2 z xy − zmax
if B1 > 0 and B2 < 0 ,
output z xy
else output zmed
13
PI, curs 3
Explanation
Level A: IF zmin < zmed < zmax , then
// zmed is not an impulse (white or black pixel)
(1) go to level B to test if z xy is an impulse …
ELSE
// zmed is an impulse
(1) the size of the window is increased and
(2) level A is repeated until…
(a) zmed is not an impulse and go to level B or
(b) Smax reached: output z xy
Level B: IF zmin < z xy < zmax , then
// z xy is not an impulse
(1) output is z xy (distortion reduced)
ELSE
// either z xy = zmin or z xy = zmax
(2) output is zmed (standard median filter)
// zmed is not an impulse (from level A)
The key to understanding the algorithm is to remember that the adaptive median filter has three
purposes:
– Remove impulse noise (white or black pixel);
– Provide smoothing of other noise;
– Reduce distortion, like excessive thinning or thickening of object
boundaries.
14
PI, curs 3
Image corrupted by salt and pepper Filtering with a 7*7 median filter Adaptive median filtering with S =7
max
noise with probabilities P = P =0.25
a b
15
PI, curs 3
The filtering we have been talking about so far is referred to as correlation with the filter itself
referred to as the correlation kernel.
a b
=
g ( x, y ) ∑ ∑ w(s, t ) f ( x + s, y + t )
s=
−a t =
−b
16