Sunteți pe pagina 1din 8

Sisteme de vedere artificial

Lucrarea de laborator nr. 2

LUCRAREA NR. 2 1. Scopul lucrrii


n cea de-a doua lucrare de laborator se propune studiul prelucrrii histogramei imaginilor avnd ca efect obinerea de imagini noi cu un contrast modificat sau obinerea negativului unei imagini.

2. Breviar teoretic
Reamintim etapele de prelucrare a informaiilor realizate de un Sistem de Vedere Artificial: achiziia i formarea imaginilor preprocesarea imaginilor segmentarea imaginilor descrierea recunoaterea formelor interpretarea

Sisteme de vedere artificial

Lucrarea de laborator nr. 2

Dac n lucrarea numrul 1 s-a discutat despre achiziia i formarea imaginilor, cea de fa ncepe tratarea etapei preprocesrii imaginilor, pentru care att marimea de intrare ct i cea de ieire sunt imagini picturale (iconice). n aceast categorie de prelucare a imaginii, intr o serie de transformari studiate mai pe larg n cadrul cursului. Amintim urmtoarele metode: transformri ale nivelurilor de gri; transformri geometrice; preprocesri locale; refacerea imaginii.

3. Transformri ale nivelurilor de gri 3.1. Noiuni generale


Modificarea nivelurilor de gri are ca scop scoaterea n eviden a anumitor trsturi prin schimbarea contrastului imaginii. Dup localizarea pixelilor modificai, se pot distinge: a. corectarea nivelului de gri dependent de poziia pixelului n imagine; b. modificarea scalei nivelului de gri. a. n etapa de formare a imaginii pot apare distorsiuni generate de urmtoarele cauze: - lentila necorespunztoare lumina nu e captat doar de focarul imaginii, o parte din radiaii fiind captate de lentil; - fotodetectorul senzorului un senzor este format dintr-o matrice de elemente fotosensibile. Sensibilitatea fiecrui element depinde de poziia sa n cadrul matricei, sensibilitatea maxim fiind n centrul focarului. Din anumite motive (degradarea datorat timpului sau calitte necorespunztoare), zone ale senzorului pot suferi modificri ale sensibilitii, astfel nct unele poriuni ale senzorului s fie mai puin sensibile la radiaii 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 poziia pixelului. b. Modificarea ntregii scale a nivelului de gri va conduce la schimbarea contrastului intregii imagini. Este de dorit o asemenea operaie pentru evidenierea anumitor zone din imagine ce conin anumite nuante de gri, sau pentru separarea mai clar a diferitelor poriuni de imagine.de nuane diferite. Histograma unei imagini este definit ca fiind frecvena de apariie a unui anumit nivel de gri: H(p) ={ (i, j) / f(i,j) = p}.
2

Sisteme de vedere artificial

Lucrarea de laborator nr. 2

3.2. Funcii Matlab utile n transformarea nivelurilor de gri:


egalizarea histogramei - histeq modificarea luminozitii brighten ajustarea intensitii sau paletei de culori imadjust histeq mrete contrastul utiliznd egalizarea histogramei. brighten modific luminozitatea unei palete de culori. imagini indexate. calcularea intensitilor minime i maxime necesare unui constrast bun stretchlim stretchlim calculeaz limitele necesare funciei imadjust pentru obinerea unui contrast bun al imaginii. imadjust ajusteaz intensitatea unei imagini de tip grayscale sau paleta de culori a unei

3.3. Funcii Matlab utile n aritmetica imaginilor:


imabsdiff - diferena absolut a dou imagini; imadd - adunarea a dou imagini; imcomplement - complementarea unei imagini; imlincomb - combinaie liniar a dou imagini; immultiply - nmulirea a dou imagini; imsubstract - diferena a dou imagini; Not: Observai exemplele de utilizarea a acestor funcii din help-ul Matlab.

4. Exemplu
Unele imagini conin nuante de gri situate in intervalul [pMin , pMax]. Se dorete o nou imagine care s conin nuanele de gri dispersate pe un interval mai larg dect al imaginii iniiale. O astfel de trasformare mbuntete contrastul imaginii. De exemplu, imaginea pout.tif conine nuane de gri n intervalul [74, 224], ceea ce denot o imagine cu un constrast sczut. Funcia din exemplul urmtor 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 dupa formula: % % image(i,j) = qMin + % qMax - qMin ----------pMax - pMin
3

* (image(i,j) - pMin )

Sisteme de vedere artificial

Lucrarea de laborator nr. 2

% % unde pMin este nivelul minim de gri al imaginii image, iar pMax este nivelul % maxim % % efect: histograma imagini image, cu valori in intervalul [pMin,pMax] va fi dispersata in 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

Observaii Deoarece nu sunt definite operatii aritmetice asupra tipului de date uint8 si uint16 , datele sunt convertite la double, se fac operaiile necesare si apoi se realizeaz o nou conversie la tipul iniial

5. Transformri geometrice 5.1. Noiuni generale


Transformrile geometrice (spaiale) sunt necesare atunci cnd se dorete eliminarea anumitor distorsiuni geometrice introduse de imperfeciuni ale dispozitivului de captare, sau cnd se dorete compararea imaginilor aceluiai obiect obinute cu dispozitive de captare diferite. n realizarea transformrilor spaiale se disting dou etape: a. transformarea coordonatelor pixelilor imaginii iniiale;
4

Sisteme de vedere artificial

Lucrarea de laborator nr. 2

b. calcularea nivelelelor de gri ale pixelilor noii imagini.

a. trasformarea coordonatelor pixelilor pune n eviden relaia dintre coordonatele pixelilor din imaginea iniial i coordonatele pixelilor din imaginea trasformat:
Tx ( x, y ) = x i T y ( x, y ) = y . Astfel, pixelului de coordonate (x,y) din imaginea iniial i

va corespunde pixelul (x,y) din imaginea transformat (fig. 1).


(x,y) (x,y)

Fig. 1 Dintre transformrile uzuale, amintim: - transformarea biliniar:

x' = a0 + a1 x + a2 y + a3 xy y' = b0 + b1 x + b2 y + b3 xy
(sunt necesare patru perechi de puncte pentru determinarea coeficienilor) - transformarea afin:

x' = a0 + a1 x + a2 y y' = b0 + b1 x + b2 y
(sunt necesare doar trei perechi de puncte pentru determinarea coeficienilor). Folosind transformarea afin cu anumii parametri se pot defini urmtoarele operaii: rotaia, translaia, scalarea i nclinarea cu un anumit unghi fa de o anumit ax. Transformarea duce la schimbarea sistemului de coordonate. Pentru a studia influena acestei schimbri, se folosete iacobianul J : Dac J = 0, atunci nu exist transformare invers. Dac J = 1, atunci aria este invariant la transformare. Pentru transformarea biliniar, J = a1b 2 a 2 b1 +(a1b 3 a3b1 ) x +( a3b 2 a2 b3 ) y . Pentru transformarea afin, J = a1b 2 a 2 b1 . Amintim c iacobianul se definete ca fiind:

Sisteme de vedere artificial

Lucrarea de laborator nr. 2

J=

x' y ' x x x' y ' y y

Transformri utile: - nclinarea cu unghiul pe direcia y:

x' = x + y tg y' = y x' = ax y' = by

(J=1, aria nu se modific).

- scalarea cu factorul a pe direcia x i b pe direcia y:

(J=ab, aria se modific).

- translaia pe direcia x cu a i pe y cu b:

x' = x a y' = y b

(J=1, aria nu se modific).

- rotaia cu unghiul :

x' = x cos + y sin y' = x sin + y cos

(J=1, aria nu se modific).

b. Interpolarea reprezint metoda de estimarea a nivelului de gri a unui punct situat ntre pixelii imaginii. Interpolarea nivelelor de gri este necesar deoarece coordonatele obinute prin transformare, x` i y` nu sunt numere ntregi, ci sunt numere reale, i nu se suprapun peste grila noii imagini. Astfel, se realizeaz o aproximare a tonurilor de gri ale pixelilor imaginii noi. Metodele de interpolare cele mai ntlnite sunt: - metoda vecinului cel mai apropiat;
6

Sisteme de vedere artificial

Lucrarea de laborator nr. 2

- interpolarea liniar; - interpolarea bicubic. Considernd punctul (x`,y`) din imaginea nou, dac se aplic transformata invers T 1 , se obin coordonatele (x,y) reale din imaginea iniial. Pe baza acestor coordonate, i a nivelelor de gri din imaginea iniial, se aproximeaz nivelul de gri al pixelului (x`,y`) din imaginea nou.

5.2. Funcii Matlab utile n transformrile spaiale:


redimensionarea imaginii - imresize rotirea imaginii imrotate selectarea unei anumite zone dreptunghiulare din imagine imcrop imcrop noua imagine va conine o zon dreptunghiular coninut n prima imagine. imresize modific dimensiunile imaginii folosind o metod de interpolare cunoscut; imrotate rotete o imagine cu un anumit unghi primit ca parametru;

5.3. Funcii Matlab utile n realizarea unor transformri generale:


maketform realizeaz structura unei transfomri geometrice; cp2tform realizeaz structura unei transfomri geometrice; imtransform aplic o transformare general unei imagini; Not: Observai exemplele de utilizarea a acestor funcii din help-ul Matlab.

6. Exemplu
Urmtorul exemplu realizeaz o transformare de perspectiv a unei texturi tip tabl de ah. Urmrii efectul acestor funcii. I = checkerboard(20,1,1); figure; imshow(I) T = maketform('projective',[1 1; 41 1; 41 41; 1 41],... [5 5; 40 5; 35 30; -10 30]); R = makeresampler('cubic','circular'); K = imtransform(I,T,R,'Size',[100 100],'XYScale',1); figure, imshow(K)

7. Exerciii
7

Sisteme de vedere artificial

Lucrarea de laborator nr. 2

1. Realizai cateva achiziii de imagine folosind calculatorul Ursula si camera video din dotarea laboratorului de Sisteme de Vedere Artificial i mbuntii contrastul acestora. 2. Refacei exerciiul 1, dar utiliznd o iluminare excesiv a scenei. 3. Refacei exerciiul 1, utiliznd o iluminare insuficient a scenei. 4. Scriei o funcie matlab care s realizeze negativul unei imagini primite ca parametru. 5. Optimizai exemplul din aceast lucrare realiznd un tablou cu nuanele de gri corespunztoare (propria paleta de culori), pentru a elimina calculul excesiv. 6. Realizai trei funcii matlab care s modifice nuanele de gri dup cele trei grafice din figura urmtoare:
g 2 255 225 1 1 2 3

3 30 a b 255 f

7. Realizai o funcie de scalare (redimensionare), utiliznd metoda de interpolare a vecinului cel mai apropiat 8. Scriei o funcie matlab care s realizeze rotaia unei imagini grayscale cu un anumit unghi primit ca parametru Observaii: se va utiliza interpolarea prin metoda vecinului cel mai apropiat.