Lucrarea 1. REPREZENTAREA $I AFISAREA IMAGINILOR.
TRANSFORMARI GEOMETRICE
4.4. SCOPUL LUCRARI!: Familiarizarea cu principalele caracteristici ale imaginilor gi a modalitatilor
de afigare a acestora. Descrierea functilor geometrice folosite la prelucrarea tuturor tipurilor de
imagini, care modifica geometria unei imagini prin redimensionarea, translatarea, rotirea, scalarea,
decuparea sau culegerea unor_portiuni din imagini
4.2, CONSIDERATII GENERALE
Pentru prelucrarea digital a imaginilor analogice este nevoie de o matrice care confine elementele
de imagine (pixeli). Imaginile ce urmeaza a fi prelucrate in aceasta lucrare sunt imagini discrete
deoarece au fost captate cu o camera foto digitala, care realizeaza discretizarea imaginilor chiar in
procesul de captare.
O imagine digitald este reprezentata in MATLAG sub urmatoarea forma:
FO) £02) ~ (UN)
(2. (2,2) ow f(2.N)
foayy=|FO0 122) = FAN)
S(Ml) f (M2)... (MN).
unde (i, /) reprezinta nivelul de culoare (gri) pentru pixelul situat pe linia i si coloana j.
Fiecare pixel va avea un anumit nivel de gri (pentru imagini alb-negru) sau 0 anumita culoare (pentru
imagini color).
in cazul imaginilor color matricea asociaté (denumita in continuare img) va fi de dimensiune m xn x
3 gi, ca urmare elementele din img ( :, :, 1) suntinterpretate ca intensitati de rogu,
img (:, :, 2) caintensitati de verde iar img ( :, :, 3) ca intensitafi de albastru
Stocarea imaginilor In figiere sau in memorie se face conform unor standarde, numite formate de
imagine. Cel mai simplu format de figier grafic este IMG. In acest format se reprezinté imagini cu
maxim 256 niveluri de gri (0=negru, 255=alb), de dimensiune fix (256%256 sau 512x512 pixeli).
Pentru anumite operatii, este folositor ca o imagine sd fie convertita intr-un tip diferit de imagine. De
‘exemplu, daca se doreste filtrarea unei imagini colorate, care este stocatd ca imagine indexata,
trebuie ca, in primul rand, aceasta sa fie convertita in format RGB, deoarece MATLAG filtreazé doar
valorile de intensitate ale imaginii. Daca trebuie fitrata o imagine indexata, atunci MATLAG va aplica
filtrul doar indicilor din matricea imaginii indexate, si rezultatul nu ar avea nici un sens.
Pachetul de programe ofera cateva functii care fac posibilé convertirea oricarei imagini intr-un alt tip
de imagine.
Trebuie remarca faptul cd atunci cnd se converteste o imagine dintr-un format in altul, imaginea
rezultata poate aparea diferité fata de original. De exemplu, daca se converteste o imagine indexat
de culoare intr-o imagine de intensitate, imaginea rezultata este o imagine cu nivele de gri, nu
colorala.
Tabelul 1. rezuma aceste functii ale conversiei de imagine.Tabelu 1 Func care reatizeeza conversia de imagin!
[ Scop’ = none
Crearea unel imaginibinare dint-o magine ou ni
‘sau a une! imagin’ indexate dint-o imagine RGB
(ditherintg) |
Crearea unei maginiindexale dini-o imagine cu nivele de gr |
‘Crearea unei magini indexate dint-o imagine cu nivele de gri
prin utiizarea unui prag
“im2by | Crearea unei imagini binare dintro magine indexata, de
inlensitate sau RGB, bazata pe un preg de luminozitate
“nd2gray | Crearea unei maginicu nivele de gri dint-o magine indexed
“ind2rgb | Crearea unei imagini RGB dint-o indexale
‘mat2gray | Crearea unei maginicu nivele de gr, folosind datele dint-o
matrice
‘Egb2gray | Crearea unei magini cu nivele de gr dint-o magine RGB
‘EgbZind — | Crearea unei magini indexate dint-o imagine RGB
Se pot efectua de asemenea, anumite conversii doar prin folosirea sintaxei MATLAB. De exemplu,
se poate converti o imagine de intensitate intr-un format RGB prin concatenarea a 3 copii ale matricei
originale in cea de-a treia dimensiune: RGB = cat (3, I,I,I)/
Imaginea RGB rezultaté are matrice identice pentru planurile de rogu, verde si albastru, astfel ca
imaginea se afigeaza sub forma unor nivele de gr.
Transformarea geometric a unui obiect consta in transformarea individual a fiecarui punct din
teprezentarea obiectului. Transformarile geometrice utilizate pentru prelucrarea imaginilor permit
reprezentarea obiectelor la scara doritd, efectuarea operatilor de marire si de micsorare a imaginilor,
realizarea animatiei etc
Orice obiect poate fi descris printr-un set de atribute geometrice (coordonate), atribute topologice
(legaiturile existente intre punctele unei constructi) si atribute de aspect (culoare, tipul liniei de trasare
etc.)
Pentru descrierea principalelor transformari geometrice se considerd un sistem de coordonate
carteziene in plan.
Exist dou puncte de vedere complementare asupra transformarilor geometrice:
* se pastreaz sistemul de coordonate fix si se deplaseaza punctul P(x, y) > P(x',»’)(figura
1a);
* se pastreaza punctul fix si se deplaseaza sistemul de coordonate xOy —> xO’ y' (figura 1b),
metoda utité pentru operatile de vizualizare a obiectelor 2D $i 3D.
Fig. 1. Reprezentarea unei transformari aplicate unui punctPentru implementarea operatillor geometrice in MATLAB se defineste o matrice 7’, specifica fiecarei
transformari:
i 00
translatie T=|0 1 0},
tx Ty 1
Ss, 0 0
scalare T-|0 5,
oot
cos? sind 0
rotatie sind cos 0},
o oO 1
1 00
intinderea pe axa Ox. = T=|SHx 1 0],
o o1
1 Sty 0
Intinderea peaxa Oy =T=|0 1 Oj,
oo 1
1 00
oglindire fatide axa Ox T=|0 -1 0},
(onan
-1 00
oglindire fatade axa Oy =T=|0 1 0
o 04
pe baza careia se construieste o structura de transformare spatiala cu ajutorul functiei maket form
Imaginea finala transformata se obtine cu ajutorul functiei imtrans form.
4.3. DESFASURAREA LUCRARIT
Se vor studia gi exersa functile M/ITLAG care realizeaza citirea gi scrierea unei imagini de diferite
formate, dintr-un figier.
Se copiaza directorul cu pozele ce urmeaza a fi prelucrate (,Poze prelucrare") in directorul de lucru
MATLAB: C:\MATLABXX\work. Nu se va lucra direct pe pozele din acest director ele raman ca
rezerva ( back-up).Se copiaza pozele din directorul ,Poze prelucrare” in directorul de lucru .work". Se intra in programul
MATLAB gi se deschide editorul de text File - New- M-File.
Se va deschide imaginea ,lena_gri_512x512.bmp" in mediul MATLAB cu ajutorul functiei imread.
folosind urmatoarea secventa de cod:
clear a utilizata pentru stergerea
or in Workspace
imread ( “512
6. Se poate vizualiza matricea corespunztoare imaginii prin dublu click pe variabila ing din
‘Workspace. Precizém ca nivelele de gri au valorile cuprinse Intre 0 (negru) gi 255 (alb) (aga cum se
poate observa si din analiza matricei img)
Care este nivelul de gri al pixelului [312,453], dar pentru [276,142] ?
6. Cu ajutorul comenzii size se poate determina dimensiunea imaginii, respectiv numarul de pixeli
pe orizontala gi pe verticala (sau numarul de linii si de coloane ale matricel iy
[M,N] = size (img)
7. Cu ajutorul functiei whos se pot obtine informatii suplimentare despre imagine.
whos
8. Imaginile pot fi afigate cu ajutorul functiei imshow care are urmatoarea sintaxa:
imshow (img)
8.1. Utilizand sintaxa: imshow (img, [low,hish]) tofi pixelii care au valoarea mai mica sau egal
decat pragul ow, vor deveni pixeli_negti, iar cei cu valoarea mai mare sau egal cu pragul high vor
deveni albi
Observatie: Daca nu se specifica cele doua praguri atunci programul va folosi valoarea implicit 256
Daca se Incearca folosirea simultana a ambelor sintaxe prezentate anterior se va constata c
MATLAB -ul va tine cont la afigare doar de ultima comanda. Pentru a putea vizualiza doua imagini se
foloseste functia figure, aga cum este prezentat in urmatoarea secventa de cod.
imshow (img)
figure
imshow(img, [115,132])
Observatia 1: Inainte oricarei noi rulari trebuie inchise toate imaginile din rularile anterioare pentru a
se putea evidentia modificarile operate la fiecare rulare a programului.
Observatia 2: Ultima line de cod nu determina modificarea valorilor din matricea imaginii initiale, ci
influenteazé doar modul de afigare pe ecran
8.2. Controlul detaliilor la afigarea imaginilor se realizeazA printr-o apropiere (zoom in) sau 0
departare (zoon out) asupra planului imaginii. Acest contro! se poate realiza interactiv cu ajutorut
functiei zoom on aplicatd asupra figuri curente.
Dupa afisarea imaginii tinand apasat butonul mouse-ului si plimbandu-| Intre axe se va selecta o zona
din imagine. Cand butonu! mouse-ului este eliberat, se realizeazA zoom in pe regiunea selectata.
Apasnd de dou ori butonul mouse-ului axele vor reveni la starea initial’.
De exemplu’
imshow (img)