Sunteți pe pagina 1din 5

Sisteme de vedere artificială Lucrarea de laborator nr.

LUCRAREA NR. 3

1. Scopul lucrării
În cea de-a treia lucrare de laborator se propune studiul prelucrării histogramei imaginilor
având ca efect obţinerea de imagini noi cu un contrast modificat sau obţinerea negativului
unei imagini.

2. Breviar teoretic
Reamintim etapele de prelucrare a informaţiilor realizate de un Sistem de Vedere
Artificială:
• achiziţia şi formarea imaginilor
• preprocesarea imaginilor
• segmentarea imaginilor
• descrierea
• recunoaşterea formelor
• interpretarea

⎡ x1 ⎤
x = ⎢ ⎥ → clasificare
⎢x ⎥
⎣ n⎦
achiziţie şi
segmentare descriere recunoaştere interpretare
preprocesare

Camera
TV Braţ
robot
controler
robot

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

3. Transformări ale nivelurilor de gri


3.1. Noţiuni generale
Modificarea nivelurilor de gri are ca scop scoaterea în evidenţă a anumitor trăsături
prin schimbarea contrastului imaginii. După localizarea pixelilor modificaţi, se pot distinge:
a. corectarea nivelului de gri dependent de poziţia pixelului în imagine;
b. modificarea scalei nivelului de gri.
a. În etapa de formare a imaginii pot apare distorsiuni generate de următoarele cauze:
- lentila necorespunzătoare – lumina nu e captată doar de focarul imaginii, o parte din
radiaţii fiind captate de lentilă;
- fotodetectorul senzorului – un senzor este format dintr-o matrice de elemente
fotosensibile. Sensibilitatea fiecărui element depinde de poziţia sa în cadrul matricei,
sensibilitatea maximă fiind în centrul focarului. Din anumite motive (degradarea datorată
timpului sau calităte necorespunzătoare), zone ale senzorului pot suferi modificări ale
sensibilităţii, astfel încât unele porţiuni ale senzorului să fie mai puţin sensibile la radiaţii
luminoase. Un asemenea defect ar conduce la zone mai intunecate ale tuturor imaginiilor
captate cu acel senzor.
- iluminare neuniformă a scenei.
Aceste distorsiuni pot fi eliminate prin corecturi ale nivelelor de gri dependente de
poziţia pixelului.
b. Modificarea întregii scale a nivelului de gri va conduce la schimbarea contrastului întregii
imagini. Este de dorit o asemenea operaţie pentru evidenţierea anumitor zone din imagine ce
conţin anumite nuanţe de gri, sau pentru separarea mai clară a diferitelor porţiuni de imagine
de nuanţe diferite.
Histograma unei imagini este definită ca fiind frecvenţa de apariţie a unui anumit nivel de gri:
H(p) ={ (i, j) / f(i,j) = p}.
Afişarea histogramei se realizează folosind funcţia imhist, iar diferite moduri de afişare
sunt realizate prin funcţiile bar şi stem. Uneori este util să se lucreze cu histograma
H ( p)
normalizată obţinută din elementele divizate , unde n este numărul total al pixelilor din
n
imagine.
c. Transformarea logaritmică aplicată unui interval de gri reprezintă o tehnică foarte
importantă de modificare dinamică a histogramei. Implementarea se realizează utilizând
expresia:
g = c ∗ log(1 + double( f ))

2
Sisteme de vedere artificială Lucrarea de laborator nr. 3
unde c este o constantă. Avantajele utilizării transformării logaritmice sunt în cazul analizelor

ce generează date cuprinse în intervale de tipul ⎡ 0 10n ⎤ , cu n>5. Când aceste date sunt afişate
⎣ ⎦
folosind o scalare pe 8 biţi se pierd detaliile intensităţilor scăzute din spectru.
Transformarea denumită „contrast-stretching” realizează o compresie a nivelurilor de gri
de valoare mai mică decât m . Similar nivelurile de gri mai mari decât m sunt transformate în
intensităţi mai apropiate de 255:
1
s = T (r ) =
E
⎛m⎞
1+ ⎜ ⎟
⎝r⎠
3.2. Funcţii Matlab utile în transformarea nivelurilor de gri:
¾ egalizarea histogramei - histeq
histeq – măreşte contrastul utilizând egalizarea histogramei.
¾ modificarea luminozităţii – brighten
brighten – modifică luminozitatea unei palete de culori.
¾ ajustarea intensităţii sau paletei de culori – imadjust
imadjust – ajustează intensitatea unei imagini de tip grayscale sau paleta de culori a unei
imagini indexate.
¾ calcularea intensităţilor minime şi maxime necesare unui constrast bun – stretchlim
stretchlim – calculează limitele necesare funcţiei imadjust pentru obţinerea unui contrast bun
al imaginii.
3.3. Funcţii Matlab utile în aritmetica imaginilor:
imabsdiff - diferenţa absolută a două imagini;
imadd - adunarea a două imagini;
imcomplement - complementarea unei imagini;
imlincomb - combinaţie liniară a două imagini;
immultiply - înmulţirea a două imagini;
imsubtract - diferenţa a două imagini;
Notă: Observaţi exemplele de utilizarea a acestor funcţii din help-ul Matlab.

4. Exemplu
Unele imagini conţin nuanţe de gri situate in intervalul [pMin , pMax]. Se doreşte o nouă
imagine care să conţină nuanţele de gri dispersate pe un interval mai larg decât al imaginii
iniţiale. O astfel de transformare îmbunătăţeşte contrastul imaginii. De exemplu, imaginea
pout.tif conţine nuanţe de gri în intervalul [74, 224], ceea ce denotă o imagine cu un constrast

3
Sisteme de vedere artificială Lucrarea de laborator nr. 3
scăzut. Funcţia din exemplul următor realizează o transformare liniară a histogramei:
intervalul [pMin, pMax] fiind dispersat în intervalul [qMin, qMax].
function newImage = StretchHistogram(image, qMin, qMax)
% functia creeaza o noua imagine cu nivelurile de gri modificate după formula:
% qMax - qMin
% image(i,j) = qMin + ----------- * (image(i,j) - pMin )
% pMax - pMin
%
% unde pMin este nivelul minim de gri al imaginii image, iar pMax este nivelul
% maxim
%
% efect: histograma imaginii image, cu valori in intervalul [pMin,pMax] va fi
dispersată în intervalul [qMin, qMax]
% observatie: daca qMin > qMax, atunci imaginea va fi negativa
% noua imagine este returnata

pMin = min(min(image));
pMax = max(max(image));

imageSize = size(image);
newImage = image;

for i = 1 : imageSize(1)
for j = 1 : imageSize(2)
newImage(i,j) = uint8(double(qMin) + (double(image(i,j)) -
double(pMin))*(double(qMax)-double(qMin))/(double(pMax)-double(pMin)));
end
end

Observaţii
ƒ Deoarece nu sunt definite operaţii aritmetice asupra tipului de date uint8 si uint16 ,
datele sunt convertite la double, se fac operaţiile necesare si apoi se realizează o nouă
conversie la tipul iniţial

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

5. Exerciţii
1. Scrieţi o funcţie matlab care să realizeze negativul unei imagini primite ca parametru.
2. Optimizaţi exemplul din această lucrare realizând un tablou cu nuanţele de gri
corespunzătoare (propria „paleta de culori”), pentru a elimina calculul excesiv.
3. Realizaţi trei funcţii matlab care să modifice nuanţele de gri după cele trei grafice din
figura următoare:
g
2 1
255
2
1
225
3

30

f
a b 255

4. Să se realizeze o funcţie pentru afişarea histogramei normalizate