Documente Academic
Documente Profesional
Documente Cultură
1.1.1. Introducere
Mediul MATLAB oferă funcţii speciale pentru procesarea imaginilor. Acestea sunt
incluse într-un toolbox numit Image Processing Toolbox. Puteţi vedea toate comenzile cu:
help images.
O imagine este echivalentă unei matrice. În mod esenţial afişarea unei imagini implică
plasarea pixelilor (culori şi strălucire) în locul corespunzător.
Roșu
Magenta Galben
Alb
Cian
Albastru Verde
Negru
RGB
Y I Q
Figura 1.4. Reprezentarea celor trei componente ale spatiului de culori YIQ
RGB
Y U V
Figura 1.5. Reprezentarea celor trei componente ale spatiului de culori YUV
APDSV – Laborator 1 5
RGB
Y Cb Cr
Figura 1.6. Reprezentarea celor trei componente ale spatiului de culori YCbCr
APDSV – Laborator 1 6
b) Imagini de intensitate
Sunt imagini monocrome în care intensitatea pixelilor ia valori discrete în intervalul
[0,1], funcţie de numărul de biţi pe care este reprezentată imaginea. În mediul Matlab valorile
intensităţii pixelilor sunt de tip uint8 (număr întreg fără semn pe 8 biţi), astfel intensitatea
unui pixel poate lua valori în intervalul [0,255].
d) Imagini indexate
Pentru imaginile color care nu folosesc toată gama de 16 milioane de culori se preferă
să se alcătuiască un tabel separat cu toate culorile din imagine (de exemplu cu 256 culori).
Acesta este o matrice cu 3 coloane, pentru culorile primare, şi cu 256 de linii (câte culori are
imaginea), matrice numită şi paletă de culori (colormap). Fiecare pixel din imagine are un
indice scris în matricea imaginii, indice care corespunde unei linii din paleta de culori. Astfel
se poate reconstitui orice culoare pe 24 de biţi cu ajutorul unui index de 8 biţi (256 culori) şi o
paletă de culori.
ind2gray im2bw
rgb2gray
gray2ind gray2ind
Diferitele tipuri de imagini pot fi citite în mediul Matlab folosind următoarele comenzi:
A = imread('filename.ext') - pentru imagini RGB sau monocrome. Matricea
A va avea valori întregi pe 8 biţi corespunzător intensităţii/culorii fiecărui pixel.
APDSV – Laborator 1 8
Aplicaţia 1
• Extrageţi informaţii despre imaginea „rose.tif” folosind funcţia imfinfo. Ce tip de
imagine este? Care este rezoluţia imaginii?
• Citiţi imaginea folosind funcţia imread şi afişaţi-o folosind imshow.
• Convertiţi imaginea într-o imagine de intensitate A şi afişaţi-o.
• Scădeţi rezoluţia imaginii A de 4 ori şi afişaţi noua imagine.
• Afişaţi transpusa matricei imaginii A.
• Rotiţi imaginea A cu 270 de grade folosind funcţia rot90.
APDSV – Laborator 1 10
Aplicaţia 2
• Implementaţi în Matlab o funcţie care să aibă următoarea expresie:
0, 0 ≤ x ≤ x1
x x1
=y 255 − x1 < x < x2 (1.4)
x2 − x1 x2 − x1
x ≥ x2
255
− Pentru a înlocui pixelii din matricea A mai mici decât x1 cu valoarea 0 în matricea
Y se utilizează comanda: Y(X<=x1)=0;
− Pentru a înlocui pixelii din matricea A mai mari decât x2 cu valoarea 255 în
matricea Y se utilizează comanda: Y(X>=x2)=255;
− Mai trebuie să scrieți linia 2 din formulă!
Matlab oferă funcţia histeq pentru egalizarea automată de histogramă. Funcţia are
următoarea sintaxă:
J = histeq(I) transformă imaginea de intensitate I în imaginea J, astfel încât
histograma lui J să aibă o distribuţie relativ uniformă în întreaga plajă de valori de intensitate.
J = histeq(I,HGRAM) transformă imaginea de intensitate I astfel încât
histograma imaginii de ieşire J de lungime length(HGRAM) aproximează histograma
HGRAM.
J = histeq(I,N) transformă imaginea de intensitate I returnând o imagine de
intensitate cu N niveluri discrete. Fiecare nivel conţine un număr aproximativ egal de pixeli,
astfel încât histograma lui J să aibă o distribuţie relativ uniformă. Valoarea implicită pentru N
este 64.
Aplicaţia 3
• Folosiţi funcţia histeq, pentru a îmbunătăţi contrastul imaginii „rose_gray.tif”.
Cum depinde calitatea noii imagini de numărul de niveluri de intensitate N.
Această neliniaritate trebuie corectată. Dacă valoarea lui gama este cunoscută, corecţia
constă în aplicarea inversei ecuaţiei (1.6).
Aplicaţia 4
• Implementaţi în Matlab o funcţie care să facă corecţia de gama, cu sintaxa:
B=corgama(A,1/gama), unde A este imaginea necorectată şi B este imaginea
corectată. Alegeți gama=2,2.
• Aplicaţi funcţia corgama pe imaginea „dark.tif” şi afişaţi imaginea originală şi cea
corectată.
• Observație: înainte de ridicarea la putere, convertiți intervalul de valori [0;255] în
intervalul [0;1].
Aplicaţia 5
• Evaluaţi diferenţa între imaginea originală şi imaginile obţinute.
• Pentru a observa corespondenţa între indicele pixelului şi culoarea din paleta de
culori se va selecta un fragment de 11x11 pixeli din imaginea A2 (liniile 70:80 şi
coloanele 40:50 din matricea A2):
B=A2(70:80,40:50)
figure(1),imshow(B,M2);
r=impixel
Funcţia impixel citeşte culoarea pixelului selectat cu mouse-ul astfel: butonul
stâng introduce date; butonul drept sau Enter încheie introducerea datelor. Fiecare
pixel are asociat un număr în matricea B reprezentând indexul culorii pixelului.
• Folosind impixel completaţi Tabelul 1.2.
Tabelul 1.2. Rezultatele aplicării funcţiei impixel
Aplicaţia 6
• Pentru imaginea (img1,map1), să se obțină imaginea oglindită faţă de orizontală
imgoriz şi faţă de verticală imgvert.
• Convertiţi imaginile img1 şi img2 în imagini de intensitate cu 256 niveluri de gri.
Realizaţi suprapunerea lor (mixarea) în imaginea imgmix.