Sunteți pe pagina 1din 8

S.l.dr.ing.

Stefan Constantin PETRICEANU

Laborator IOPC

Anul IV IC + IS

LABORATORUL NUMRUL 2 Paleta de culori, conversia, filtrarea, detecia de contur, colorare i pseudocolorare a imaginilor cu ajutorul MATLAB 1 Introducere

ntre toate simurile cu care suntem dotai, sistemul vizual ne furnizeaz cea mai mare cantitate de informaii referitoare la mediul nconjurtor. Cu toate c percepia vizual este departe de a fi complet neleas, ingineria modern se preocup intens de problema realizrii unor sisteme de vedere artificial, capabile s emuleze, fie i parial, capabilitile sistemului vizual uman. Obiectivul prelucrrii numerice a imaginilor const n transformarea imaginii n scopul facilitrii interpretrii vizuale (ajustare contrast, iluminare, detectare/reprezentare contur etc) sau al reducerii cerinelor de memorie pentru reprezentare sau stocare, respectiv al debitului de date sau benzii de frecven necesare transmiterii la distan. n sensul cel mai larg, prelucrarea poate urmri msurarea unor parametri de poziie, vitez de micare sau form al unor obiecte, recunoaterea obiectelor dintr-un cadru de imagine, interpretarea scenei sau recunoaterea tipului de activiti ce sunt surprinse n secvenele nregistrate. 2 Scopul lucrrii

Aceast lucrare de laborator propune iniierea studenilor n studiul prelucrrii imaginilor avnd ca efect obinerea de imagini noi cu o palet de culori modificat, prin extragerea contururilor, filtrare, convoluie, pseudocolorare etc. Pentru aceasta se va pleca de la operaiunea de citire a imaginilor achiziionate de ctre stundei prin procedeele de termografiere n infrarou, ultrasunete n imersie etc urmnd ca mai apoi s se treac la preprocesarea lor n vederea prelucrrii ulterioare (eantionare, cuantizare). 3 Paleta de culori; Conversia

Paleta de culori desemneaz ansamblul de culori utilizate n definirea imaginii color (profunzimea). Manipularea acesteia are rolul de a reduce timpul de calcul cu atunci cnd se utilizeaz imaginea iar anumite detalii nu sunt semnificative. Codul Matlab pentru manipularea imaginilor este prezentat n cele ce urmeaz:
I=imread('IR_1026.jpg'); figure, imshow(I); rgb2gray(I);% transformarea imaginii color n niveluri de gri I2=rgb2gray(I);% imaginea este codat tot pe 8 bii deci are %256 de niveluri de gri figure; imshow(I2);

Rezulatul acestor comenzi va fi de felul celei din fig 1. Se poate crea propria palet de culori utiliznd funcia culorile_mele:
1/8

S.l.dr.ing.Stefan Constantin PETRICEANU

Laborator IOPC

Anul IV IC + IS

r=0:1/256:1; g=0:1/256:1; b=0:1/256:1; culorile_mele=[r',g',b'];%crearea propriei palete de culori cu 257 x 3 elemente colormap(culorile_mele); figure; imagesc(I2);

Rezultatul acestei transformri se prezint n figura 2. Se cere intrepretarea acestuia de ctre studeni. Ce reprezint variabilele r,g,b? De ce au valori subunitare? De ce paleta de culori este tridimensional?

Fig. 1 Imaginea in format uint8 transformat cu funcia rgb2gray din matlab Conversia unei imagini se realizeaz prin utilizarea unor multiplicatori scalari pentru fiecare vector al matricei imaginei (pentru o imagine color exist 3 vectori R,G,B). Codul surs se prezint mai jos:
J=rgb2gray(I); figure,imshow(J); coeff1=0.25; coeff2=0.25; coeff3=0.5; Igray=I(:,:,1)*coeff1+I(:,:,2)*coeff2+I(:,:,3)*coeff3;
2/8

S.l.dr.ing.Stefan Constantin PETRICEANU

Laborator IOPC

Anul IV IC + IS

figure; imshow(Igray);

Fig. 2 Crearea propriei palete de culori Rezultatul acestei transfromri se prezint n figura 3. Se observ o corecie a nuanelor de gri, conform operaiilor de multiplicare cu scalari efectuate de programator. Se cere studenilor s modifice valorile scalarilor i s observe ce se ntmpla cu imaginea prelucrat. Se va reine imaginea care evideniaz maximul de detalii interesante pentru operatorul de control nedistructiv.

3/8

S.l.dr.ing.Stefan Constantin PETRICEANU

Laborator IOPC

Anul IV IC + IS

Fig. 3 a) Imaginea nainte i b) dup conversie (multiplicarea cu scalari) Observaie: modificarea valorilor coeficienilor coeff1, coeff2 i coeff3 conduce la modificarea valorilor corespunztoare ale culorilor rou (coeff1), verde (coeff2) i albastru coeff (3). Dac se egaleaz cu zero unul sau mai muli coeficieni atunci pentru culorile respective se va obine pe imagine negru. Verificare: s se egaleze toi cei 3 coeficieni cu zero. Ce se obine? 4 Filtrarea; detecia de contur

Pentru filtrare trebuie creat un filtru care poate fi de tipul 2x2, 3x3 sau mai complex 5x5. Se exemplifica pe cazul cel mai general cu filtru 5x5. Codul surs matlab cu explicaii se prezint n cele ce urmeaz:
h=ones(5,5)/25;%masca de filtrare 5x5 pixeli I2=imfilter(I,h);% filtrarea imaginii cu masca anterioar imshow(I);%afisarea imaginii initiale title('Imaginea Initiala');% denumirea imaginii initiale figure; imshow(I2);%afisarea imaginii cu filtru 5x5,imagina devine %flu title('Imagine Filtrata');% denumirea imaginii modificate

Rezultatul obinut este reprezentat comparativ n figura 4. Comentai pierderea claritii imaginii (vezi curs; indicaie: la operaiile de transformare n spectru trebuie utilizat nainte o transformare de tipul ....).

4/8

S.l.dr.ing.Stefan Constantin PETRICEANU

Laborator IOPC

Anul IV IC + IS

Fig. 4 Imaginea iniial (stnga) i filtrat cu masca de filtrare 5x5 (dreapta) Se poate manipula funcia matlab imfilter pentru a obine rezultatele dorite. Pentru detalii help imfilter. Un exemplu se prezint n codul surs urmtor:
close all;h=ones(5,5)/25;%masca de convolutie 5x5 pixeli I2=imfilter(I,h);% filtrarea imaginii cu masca anterioar imshow(I);%afisarea imaginii initiale title('Imaginea Initiala');% denumirea imaginii initiale figure; imshow(I2);%afisarea imaginii cu filtru 5x5,imagina devine %flu title('Imagine Filtrata');% denumirea imaginii modificate h=ones(5,5)/25;% masca de filtrare 5x5 I2=imfilter(I,h);% utilizarea functiei de filtrare figure; imshow(I2);% afisarea imaginii modificate title('Imagine Modificata margini Negre');% Titlu imagine I3=imfilter(I,h,'circular');% adaugarea unui nou filtru; help %imfilter figure; imshow(I3);% afisarea imaginii modificate cu filtrul numarul %2 title('Imagine modificata Ultima');% titlul imaginii

Detecia de contur Pentru detectarea conturului se utilizeaz funcii matematice specifice de derivare sau filtre de imagine de tipul trece-sus, trece-jos sau band. Funcia matlab cea mai utilizat pentru detecia de contur este edge. n codul surs urmtor se arat modul de utilizare al acesteu funcii pentru dou moduri prestabilite de detectare a conturului:
cont1 = edge(J,'prewitt');%utilizarea %detectie contur
5/8

functiei

pentru

S.l.dr.ing.Stefan Constantin PETRICEANU

Laborator IOPC

Anul IV IC + IS

cont2 = edge(J,'canny');%se foloseste alt parametru (filtru) %al functiei edge figure(1); imshow(J);% reprezentare imagine initiala figure(2); imshow(cont1);% imaginea cu filtrare "prewitt" figure(3); imshow(cont2);% imaginea cu filtrare "canny"

Rezultatul palicrii acestor funcii se prezint n figurile 5, 6 i 7. Studenii vor utiliza toate cele 6 metode de dectare ale conturului conform matlab help.

Fig. 5 Imaginea iniial

6/8

S.l.dr.ing.Stefan Constantin PETRICEANU

Laborator IOPC

Anul IV IC + IS

Fig. 6 Detectarea conturului cu metoda prewitt

Fig. 7 Detectarea conturului cu metoda canny

7/8

S.l.dr.ing.Stefan Constantin PETRICEANU

Laborator IOPC

Anul IV IC + IS

Colorarea i pseudocolorarea

Colorarea i pseudocolorarea se utilizeaz pentru imagini mai ales din domeniile imagisticii n infrarou i biomedicale. Mai jos se prezint codul surs pentru diferite trasformri ale sistemelor de colorare aditiv (RGB) i substractiv (hsv) utiliznd funcii matlab specifice.
img=I; figure;imshow(img); imghsv=rgb2hsv(img); figure;imshow(imghsv); imghsv(100:200,300:400,1)=0.7; imgrgb=hsv2rgb(imghsv); figure;imshow(imgrgb); imghsv=rgb2hsv(img); figure;imshow(imghsv); imghsv(100:200,300:400,2)=0; imgrgb=hsv2rgb(imghsv); figure;imshow(imgrgb); imghsv=rgb2hsv(img); figure;imshow(imghsv); imghsv(100:200,300:400,3)=0.3; imgrgb=hsv2rgb(imghsv); figure;imshow(imgrgb);

Se cere ca studenii s interpreteze fiecare imagine obinut preciznd modul de transformare i relaia matematic utilizat. Exerciiu: urmnd instruciunile prelucrai imaginile preluate de dumneavoastr i tragei concluzii pertinente cu privire la modul de punere n eviden a problemelor constatate n imaginea prelucrat fa de imaginea original.

8/8