You are on page 1of 59
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 punct Pentru 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)

You might also like