Sunteți pe pagina 1din 4

Sisteme de vedere artificială Lucrarea de laborator nr.

LUCRAREA NR. 4

1. Scopul lucrării
În lucrarea de faţă se tratează metode de netezire a imaginii (smoothing). Aceste metode
se încadrează în categoria operaţiilor de preprocesare locală.

2. Breviar teoretic
Etapele de prelucrare a informaţiilor realizate de un Sistem de Vedere Artificială sunt:
• achiziţia şi formarea imaginilor
• preprocesarea imaginilor
o transformări ale nivelurilor de gri;
o transformări geometrice;
o preprocesări locale;
- netezirea;
- operatorii gradient;
o refacerea imaginii.
• segmentarea imaginilor
• descrierea
• recunoaşterea formelor
• interpretarea
Metodele de preprocesare locală utilizează o mică vecinătate a fiecărui pixel pentru a
produce o nouă nuanţă de gri pentru noua imagine. Această operaţie mai este numită şi
filtrare.
Metodele de preprocesare locală pot fi împărţite după scopul lor în două categorii:
• netezire – au ca scop atenuarea zgomotelor (pixeli paraziţi), a fluctuaţiilor mici din
imagine; dezavantajul acestei metode constă în umbrirea muchiilor;
• operatorii gradient – au la bază derivatele locale ale funcţiei imagine; deorece
derivatele sunt mai mari atunci cand variaţiile imaginii sunt mai mari, aceste operaţii
accentuează zonele de trecere de la o nuanţă la alta. Pixelii paraziţi dintr-o imagine
conduc de asemenea la variaţii ale funcţiei imagine. De aceea, aplicarea acestor
operatori unor imagini afectate de zgomote va duce la creşterea nedorită a nivelului de
zgomot.

1
Sisteme de vedere artificială Lucrarea de laborator nr. 4
Cele două metode au scopuri opuse, dar există algoritmi care rezolvă această problemă,
permiţând atât netezirea cât şi accentuarea muchiilor.
Dacă se are în vedere tipul transformării nuanţelor de gri ale imaginii, obţinem o altă
clasificare a metodelor de preprocesare locală:
• lineare – noua nuanţă este obţinută dintr-o combinaţie liniară a pixelilor din imaginea
iniţială:
f (i, j ) = ∑ ∑ h(i − m, j − n) ⋅ g (m, n) ,
( m , n ) ∈O

unde h sunt coeficienţii de ponderare, iar g este funcţia imagine a imaginii iniţiale.
• non-lineare;
Alegerea tipului de transfomare, dimensiunii şi formei vecinătăţii depind de dimeniunea
obiectelor din imaginea preprocesată. Filtrarea prin această metodă a vecinătăţilor poate fi
folosită la netezirea imaginii iar operatorii gradient pentru accentuarea muchiilor şi a liniilor.

3. Preprocesarea locală – netezirea


3.1. Noţiuni generale
Netezirea imaginii poate fi realizată cu metode de preprocesare locală care au ca scop
estomparea (atenuarea) zgomotelor din imagine. Calculul noii valori ale nuanţei de gri este
realizat prin medierea valorilor dintr-o vecinătate O. Netezirea locală a imaginii poate elimina
zgomote de tip impuls, numite “sare şi piper”, sau linii subţiri din imagine.

Medierea
Se poate realiza o mediere a valorilor funcţiei imagine în vecinătatea O. De menţionat
este dezavantajul umbririi muchiilor. Totuşi, rezultate acceptabile se obţin dacă dimensiunea
zgomotului este mai mică decât cel mai mic obiect de interes din imagine. Medierea este un
caz particular al unei operaţii discrete de convoluţie cu nucleul h. Pentru o vecinătate de
⎡1 1 1⎤
1 ⎢
dimensiune 3x3, nucleul h este: h = ⋅ ⎢1 1 1⎥⎥ . Deseori, ponderea centrului măştii de
9
⎣⎢1 1 1⎥⎦
convoluţie h este mărită, aproximând mai bine proprietăţile zgomotului cu o distribuţie
Gaussiană:
⎡1 1 1⎤ ⎡1 2 1 ⎤
1 ⎢ 1 ⎢
h = ⋅ ⎢1 2 1⎥ sau h = ⋅ ⎢2 4 2⎥⎥ ;

10 16
⎢⎣1 1 1⎥⎦ ⎢⎣1 2 1 ⎥⎦

2
Sisteme de vedere artificială Lucrarea de laborator nr. 4
Medierea cu limitarea datelor
Aceste metode încearcă să evite umbrirea muchiilor mediind doar pixeli care satisfac
anumite criterii. Cel mai simplu criteriu folosit este folosirea pixelilor care au nivelul de gri
situat într-un interval [min, max]. Considerând punctul (m,n), masca de convoluţie este
calculată după formula:
⎧1, pentru g (m + i, n + j ) ∈ [min, max]
h(i, j ) = ⎨
⎩0, in rest
3.2 Filtre spaţiale (formă analitică)
a) Filtru medie aritmetică
1
fˆ ( x, y ) = ∑ g ( s, t )
mn ( s ,t )∈S xy

b) Filtru medie geometrică


1
⎡ ⎤ mn
fˆ ( x, y ) = ⎢ ∏ g ( s, t ) ⎥
⎢ ( s,t )∈S xy ⎥
⎣ ⎦

c) Filtru medie armonică


mn
fˆ ( x, y ) =
∑ g ( s, t )
( s ,t )∈S xy

d) Filtru medie contraarmonică

∑ g ( s, t )Q +1
( s ,t )∈S xy
fˆ ( x, y ) =
∑ g ( s , t )Q
( s ,t )∈S xy

e) Filtru median
fˆ ( x, y ) = median { g ( s, t )}
( s ,t )∈S xy

f) Filtre min – max


fˆ ( x, y ) = max { g ( s, t )} , fˆ ( x, y ) = min { g ( s, t )}
( s ,t )∈S xy ( s ,t )∈S xy

g) Filtru tip punct median

1 ⎧⎪ ⎫⎪
fˆ ( x, y ) = ⎨ max { g ( s, t )} + min { g ( s, t )}⎬
2 ⎩⎪( s ,t )∈S xy ( s ,t )∈S xy ⎭⎪

3
Sisteme de vedere artificială Lucrarea de laborator nr. 4

3.3. Funcţii Matlab utile în preprocesări locale:


¾ filtrarea imaginii - imfilter – modifică dimensiunile imaginii folosind o metodă de
interpolare cunoscută;
¾ operaţia de convoluţie – conv2 – realizează o convoluţie bidimensională ;
¾ adăugare de zgomot – imnoise – adaugă zgomot de diferite tipuri unei imagini
intensitate ;
¾ generare filtre neliniare de ordin statistic – ordfilt2
¾ filtru median - medfilt2

3.4. Funcţii Matlab utile în realizarea filtrelor:


fspecial – realizează un filtru după specificaţiile primite ca parametri;

Notă: Observaţi exemplele de utilizarea a acestor funcţii din help-ul Matlab.

4. Exemplu
Următorul exemplu realizează o netezire cu un filtru median. Urmăriţi efectul acestor
funcţii.
%clc, clear, close all;
[J, map] = imread('m83.tif');
I = ind2gray(J, map);
h = ones(5,5) / 25;
% h = fspecial (‘average’, 3);
I2 = imfilter(I,h);
imshow(I), title('Original Image');
pause
figure, imshow(I2), title('Filtered - Image 2');
pause
h3 = [1 2 1; 2 4 2; 1 2 1];
h3 = h3 / sum(sum(h3));
% h3 = fspecial ('gaussian',3);
I3 = imfilter(I,h3);
figure, imshow(I3), title('Filtered - Image 3');
Metodele de preprocesare locală utilizează o mică vecinătate a fiecărui pixel pentru a produce
o nouă nuanţă de gri pentru noua imagine. Această operaţie mai este numită şi filtrare.

5. Exerciţii
Realizaţi implementări ale filtrelor descrise în referat şi testaţi pe diferite distribuţii ale
zgomotului.