Vous êtes sur la page 1sur 9

Laborator Introductiv 1 PRELUCRAREA IMAGINILOR ŞI RECUNOAŞTEREA FORMELOR 2

• Folosind comanda Balance vizualizaţi imaginea pentru fiecare din


1 LABORATOR INTRODUCTIV reglajele de strălucire, contrast şi gama pe poziţiile: 0%, 50%, 100%. Ce
observaţi? Reluaţi reglajul iniţial pentru fiecare culoare.

1.1 Introducere în prelucrarea imaginilor Aplicaţi comenzile din meniul Effects pentru imaginea rose.tif:

• Comanda: Sharpen. Aplicaţi această comandă cu intensitatea 1; 5 şi 10.

Folosind programul “Microsoft Photo Editor” încărcaţi fişierul rose.tif Care este operaţia realizată? Salvaţi pentru intensitatea 5 ca rosesh5.jpg.

(imaginile diferă pentru fiecare student). • Comanda Soften. Aplicaţi această comandă cu intensitatea 1; 5 şi 10. Care

• Determinaţi numărul de pixeli (pentru amândouă dimensiunile); este operaţia realizată? Salvaţi pentru intensitatea 5 ca roseso5.jpg.

• Determinaţi rezoluţia; • Comanda Negative. Aplicaţi comanda pentru culorile roşu şi albastru.
Care este operaţia realizată? Salvaţi ca roseneg.jpg.
• Determinaţi numărul de culori şi pe câţi biţi se reprezintă;
• Comanda Posterize. Aplicaţi comanda pentru opţiunile 1; 4 şi 8 biţi. Care
• Reprezentaţi imaginea color în 256 culori (8 biţi).
este operaţia realizată? Salvaţi pentru rata de 1 bit cu numele
• Reprezentaţi imaginea monocromă pe 8 biţi. rosepos.jpg.
Completaţi tabelul: • Comanda Edge. Studiaţi opţiunile acestei comenzi. Care este operaţia
Dimensiuni Rezoluţie Memorie ocupată (Bytes) realizată?

pixeli Inch (pixeli/inch) color 24 biţi color 8biţi gri 8 biţi • Restauraţi imaginea girl.bmp folosind comanda Despeckle precum şi alte
efecte. Spuneţi ce efecte aţi folosit. Salvaţi rezultatul cu numele
nicegirl.bmp.
• Salvaţi fişierul rose.tif în format JPEG. Care este dimensiunea fişierului
rose.jpg. Ce observaţi? De ce?
Referatul va conţine imaginea iniţială, explicaţiile cerute şi toate imaginile
• Măriţi imaginea de 2 ori pe verticală. Măriţi imaginea iniţială de 4 ori pe
modificate.
verticală şi orizontală. Cum creşte mărimea fişierului? Ce rezoluţie
trebuie fixată pentru ca dimensiunea în inch să fie ca a imaginii originale?

• Rotiţi imaginea cu 45, 90, 180 de grade. Salvaţi imaginile ca rose45.jpg, Programele profesionale de prelucrări de imagini dispun de o gamă largă de

rose90.jpg etc. alte efecte. Toate acestea se pot realiza prin prelucrări matematice ale imaginilor cu
funcţii scrise în C++ sau alte limbaje. Vom studia cu ajutorul programului Matlab
• Care dintre transformările Transpose, Invert şi Mirror reprezintă
câteva din aceste funcţii.
imaginea rotită cu 180 de grade?
Laborator Introductiv 3 PRELUCRAREA IMAGINILOR ŞI RECUNOAŞTEREA FORMELOR 4

1.2 Utilizarea mediului Matlab în prelucrarea imaginilor d) Imagini indexate

Pentru imaginile color care nu folosesc toată gama de 16 milioane de culori

1.2.1 Introducere 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,
Mediul MATLAB oferă funcţii speciale pentru procesarea imaginilor. Acestea sunt
şi cu 256 de linii (câte culori are imaginea), matrice numită şi paletă de culori.
incluse într-un toolbox numit IMAGES. Puteţi vedea toate comenzile cu: help images.
Fiecare pixel din imagine are un index scris în matricea imaginii, index care
O imagine este echivalentă unei matrice. În mod esenţial afişarea unei imagini
corespunde unei linii din paleta de culori. Astfel se poate reconstitui orice culoare
implică plasarea pixelilor (culori şi strălucire) în locul corespunzător.
pe 24 de biţi cu ajutorul unui index de 8 biţi (256 culori) şi o paletă de culori.
Matrice Imagine

1 2 3 4 j 1 2 3 4 y
1 1 1.2.3 Conversia dintre diferite tipuri de imagini
2 (2,3) 2 (2,3)
Schema de conversie dintre diferitele tipuri de imagini este prezentată mai
3 3
jos.
4 4

i x Imagine rgb2ind Imagine


RGB indexată
Figura 1.1. Reprezentarea imaginilor sub forma unor matrice ind2rgb

ind2gray im2bw
rgb2gray
1.2.2 Tipuri de imagini gray2ind gray2ind

a) Imagini binare

Fiecare pixel din imagine este reprezentat pe un bit (negru=0, alb=1). Imagine de im2bw Imagine
intensitate binară
Elementele matricei sunt numere binare.

b) Imagini de intensitate Figura 1.2. Conversia între diferite tipuri de imagini

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. 1.2.4 Importul şi exportul unei imagini
c) Imagini RGB (“truecolor”)
Imaginile stocate în fişiere pot fi citite în Matlab cu funcţia IMREAD.
Sunt imagini color, fiecare pixel este reprezentat în spaţiul RGB pe 24 de biţi Formatele de imagini recunoscute de Matlab sunt:
(8 biţi pentru fiecare plan de culoare).
Laborator Introductiv 5 PRELUCRAREA IMAGINILOR ŞI RECUNOAŞTEREA FORMELOR 6

• Windows Bitmap (BMP) Se poate utiliza comanda imfinfo('filename.ext') pentru a obţine


informaţii despre formatul imaginii care urmează să fie citită.
• Hierarchical Data Format (HDF)

• Joint Photographic Experts Group (JPEG)


Pentru a exporta o imagine se foloseşte comanda IMWRITE:
• Windows Paintbrush (PCX)
imwrite(A,'filename.ext'); - pentru imagini RGB sau monocrome;
• Tagged Image File Format (TIFF)
imwrite(X,MAP,'filename.ext'); - pentru imagini indexate.
• X Window Dump (XWD)
Extensia fişierului trebuie să fie standard (BMP, TIFF etc.) pentru ca
formatul cu care se scrie imaginea să fie recunoscut de Matlab.
Diferitele tipuri de imagini pot fi citite cu comenzile:
Mai multe informaţii despre alţi parametrii utilizaţi cu comanda IMWRITE
A = imread('filename.ext'); - pentru imagini RGB sau monocrome;
pot fi obţinute cu comanda help imwrite.
Matricea A va avea valori întregi pe 8 biţi corespunzător intensităţii fiecărui pixel.

[X,MAP] = imread('filename.ext'); - pentru imagini indexate.


1.2.5 Afişarea imaginilor
Matricea X va avea valori întregi pe 8 biţi corespunzător indexului culorii din paleta
1. Pentru imagini binare: imshow(BW)
de culori reprezentată de matricea MAP.
2. Pentru imagini de intensitate: imshow(I,N) afişează imaginea de
intensitate I cu o scală de gri de dimensiune N;
În tabelul următor sunt sumarizate formatele şi tipurile de imagini care pot fi
3. Pentru imagini indexate: imshow(X,MAP) afişează imaginea indexată X
citite de Matlab:
cu paleta de culori MAP;
BMP - imagini necomprimate pe 1-bit, 4-biţi, 8-biţi şi 24-biţi;
4. Pentru imagini RGB: imshow(RGB)
- imagini comprimate RLE pe 4-biţi şi 8-biţi.

HDF - imagini pe 8-biţi sau 24 biţi.


1.2.6 Imagini monocrome
JPEG - orice imagine JPEG.
Pentru imaginile monocrome (alb-negru) valoarea intensităţii pentru fiecare
PCX - imagini pe 1-bit, 8-biţi şi 24-biţi.
pixel este în intervalul [0,Lmax]. Acest interval se cheamă scala de gri. Valoarea 0
TIFF - orice imagine TIFF pe 1-bit, 8-biţi şi 24-biţi necomprimată corespunde intensităţii minime iar valoarea Lmax corespunde maximului intensităţii.
sau comprimată cu packbits.
Pentru o imagine monocromă reprezentată pe 8 biţi Lmax=255.
XWD - 1-bit şi 8-bitţi ZPixmaps; XYBitmaps; 1-bit XYPixmaps
Laborator Introductiv 7 PRELUCRAREA IMAGINILOR ŞI RECUNOAŞTEREA FORMELOR 8

Deoarece în Matlab scala de gri este de clasă uint8 (numere întregi fără semn % negativul imaginii originale se obţine prin scăderea

pe 8 biţi) nu se pot efectua operaţii aritmetice asupra matricei imaginii. Aceasta % din 1 a intensităţii pixelului
poate fi convertită într-o imagine de intensitate (de clasă double) cu comanda ANEG=1-A;
I=ind2gray(A,gray(256));.
figure(5),imshow(ANEG,256)

Rulaţi în Matlab exemplul următor:


Pentru referat salvaţi imaginile AT, AR şi ANEG în format tif. Comanda este:
clear all;
imwrite(AT,'at.tif'); etc.

% Citeşte informaţii despre fişierul rosea.tif

imfinfo('rosea.tif')
1.2.7 Histograma unei imagini
pause
Histograma arată cum este distribuită intensitatea pixelilor din imagine. Pe
% Dimensiunile imaginii sunt 100x150 pixeli. direcţie orizontală este reprezentată intensitatea iar pe verticală, numărul de pixeli

% Este o imagine monocromă (grayscale) pe 8 biţi cu acea intensitate. Comanda este: imhist(A);

A=imread('rosea.tif'); Este posibilă transformarea intensităţii pixelilor după o anumită lege. Evident

figure(1),imshow(A) rezultatul este o schimbare în histogramă.

Implementaţi în Matlab o funcţie care să aibă următoarea caracteristică:


% Cu transpusa matricei A se obţine imaginea AT,

AT=A'; ⎧ 0, 0 ≤ x ≤ x1

⎪ x x1
figure(2),imshow(AT) y=⎨ − x1 ≤ x ≤ x2 (1.1)
x
⎪ 2 1− x x2 − x1
⎪⎩ 1 x ≥ x2
% care diferă de imaginea rotită cu 270 grade,

AR=rot90(A,3); Această funcţie trebuie să se aplice astfel:


figure(3),imshow(AR) B=corlin(A, x1, x2);

pause Aplicaţi această funcţie de corecţie a valorii intensităţii asupra imaginii


% Convertim imaginea indexată intr-o imagine de rosea.tif din paragraful anterior. Se vor alege x1=0,2 şi x2=0,9. Reprezentaţi
intensitate histograma. Care este legătura dintre vechea şi noua histogramă?
A=ind2gray(A,gray(256)); Indicaţii:
figure(4),imshow(A,256) - convertiţi imaginea într-o imagine de intensitate;
Laborator Introductiv 9 PRELUCRAREA IMAGINILOR ŞI RECUNOAŞTEREA FORMELOR 10

- iniţializaţi matricea de ieşire B cu matricea de intrare A; Aplicaţi funcţia de corecţie imaginii dark.tif cu gama=2,2. Se

- schimbaţi punctele de intensitate x din A cu intensitatea y calculată cu îmbunătăţeşte calitatea imaginii?


funcţia corlin şi plasaţi-le în matricea B.

- Pentru a găsi pixelii din matricea A mai mari decât x1 se utilizează 1.2.9 Imagini color
comanda find(A>=x1);
Culoarea este un fenomen legat de percepţia omului a diferitelor lungimi de
- Pentru a înlocui pixelii găsiţi anterior cu valoarea 0 în matricea B se
undă ale luminii între 400 şi 700 nanometri. Percepţia culorii provine din
utilizează comanda: B(find(A>=x1))=0;
senzitivitatea a trei tipuri de senzori ai retinei. Fiecare senzor răspunde într-un
Referatul va conţine funcţia cerută, vechea şi noua histogramă, imaginea interval de lungimi de undă. Datorită acestei proprietăţi a sistemului vizual uman,
iniţială, imaginea obţinută în urma transformării şi comentarii asupra modificărilor toate culorile sunt combinaţii a trei culori primare: roşu (Red), verde (Green) şi
(eventuale îmbunătăţiri) produse. albastru (Blue). Culorile primare pot fi combinate pentru a produce celelalte culori,
totuşi nu se pot realiza toate culorile vizibile.

Spaţiul culorilor ne permite să reprezentăm toate culorile percepute de om.


1.2.8 Corecţia de gama.
Culorile primare formează o bază, sau sistem de coordonate, cu care poate fi descris
Intensitatea luminoasă obţinută în reprezentarea imaginilor folosind diferite procesul de măsură a culorii. Există mai multe spaţii ale culorii din care cele mai
sisteme este de cele mai multe ori neliniară. Un exemplu este dat de monitoarele cunoscute sunt RGB şi Y CbCr.
tipice ale calculatoarelor (de fapt tuburile monitoarelor). Strălucirea este funcţie de
• spaţiul RGB se bazează pe teoria celor trei stimuli prezentată mai sus. De
tensiunea aplicată după legea:
asemenea spaţiul RGB este convenabil din punct de vedere hardware,
I =Vγ (1.2) fiind utilizat la monitoare şi alte dispozitive. În acest spaţiu al culorii,
unde I este intensitatea pixelilor şi V este tensiunea aplicată. fiecare pixel dintr-o imagine digitală are trei componente: roşu, verde şi
albastru;
Pentru o imagine de intensitate, relaţia este:
• spaţiul YCbCr este format din luminanţă (Y) şi două componente ale
y = xγ (1.3)
crominanţei (CbCr). Importanţa acestui spaţiu constă în faptul că sistemul
Valoarea x este valoarea iniţială a intensităţii şi y este valoarea intensităţii aşa vizual uman percepe un stimul color în termeni de luminanţă şi
cum apare ea pe monitor. crominanţă mai mult decât ca valori de roşu, verde şi albastru.
Această neliniaritate trebuie corectată. Dacă valoarea lui gama este • Legătura între spaţiul YCrCb şi RGB este dată de ecuaţiile:
cunoscută, corecţia constă în aplicarea inversei ecuaţiei (1.3). Implementaţi în
Y = 0, 299 R + 0,587G + 0,114 B
Matlab o funcţie care să corecteze o imagine cu sintaxa: B=corgama(A,gama)
Cb = 0,564( B − Y ) + 128 (1.4)
unde A este imaginea necorectată şi B este imaginea corectată. Cr = 0,713( R − Y ) + 128
Laborator Introductiv 11 PRELUCRAREA IMAGINILOR ŞI RECUNOAŞTEREA FORMELOR 12

Rulaţi următorul exemplu în Matlab: 4. Aproximarea cu o paletă de culori: culorile din imaginea iniţială vor fi

clear all; aproximate cu cele din paleta dată.

% Se citeşte un fişier format tif care conţine În continuare sunt exemplificate ultimele 3 metode de conversie: cuantizare

% o imagine RGB 'truecolor'


uniformă cu pasul T = 0,3, cuantizare neuniformă cu 64 de culori, aproximarea cu
două palete de 64 de culori (hsv şi jet).
A=imread('flowers.tif');
[A1,M1]=rgb2ind(A,0.3,'nodither');
figure(1), imshow(A);
[A2,M2]=rgb2ind(A,64,'nodither');
size(A)
[A3,M3]=rgb2ind(A,hsv(64),'nodither');
% A este un vector tridimensional de dimensiuni
[A4,M4]=rgb2ind(A,jet(64),'nodither');
% 279x275x3 şi conţine trei matrice
figure(2), imshow(A1,M1), colorbar('vert');
% corespunzătoare fiecărei culori primare.
figure(3), imshow(A2,M2), colorbar('vert');
Imaginile color RGB ocupă de trei ori mai multă memorie decât aceeaşi
figure(4), imshow(A3,M3), colorbar('vert');
imagine alb-negru. Există posibilitatea reprezentării cu un număr redus de culori a
imaginii (16, 128 sau 256 de culori) dacă se converteşte imaginea RGB la o imagine figure(5), imshow(A4,M4), colorbar('vert');

indexată.

Imaginile indexate se formează pe baza unei matrice de dimensiuni egale cu Evaluaţi diferenţa între imaginea originală şi imaginile obţinute. Repetaţi
ale imaginii. În această matrice, pentru fiecare pixel va exista un index către paleta conversiile cu opţiunea 'dither' în loc de 'nodither'.
de culori. Dacă imaginea RGB iniţială avea un număr N de culori, paleta de culori
Prezentaţi în referat imaginea originală şi imaginile A1, A2, A3, A4 cu
va fi un tabel cu N linii şi 3 coloane. Culoarea pixelului care are indexul X va fi
ambele opţiuni pentru dither.
obţinută din tripletul RGB de la linia X a paletei de culori.

Conversia de la imaginile RGB la imagini indexate se poate face cu funcţia


RGB2IND în patru moduri: Pentru a observa corespondenţa între indexul pixelului şi culoarea din paleta
de culori se va selecta un fragment de 11x11 pixeli din imaginea A2 (liniile 70:80 şi
1. Conversie directă: paleta de culori va avea lungimea egală cu numărul
coloanele 40:50 din matricea A2):
pixelilor din imagine, deoarece fiecărui pixel îi este asociată o culoare.
B=A2([70:80],[40:50])
2. Cuantizare uniformă: se variază uniform intensitatea fiecărei componente
figure(1),imshow(B,M2);
de culoare RGB cu pasul T. Paleta de culori va avea maxim ( ⎢⎣1 T ⎥⎦ + 1)
3

r=impixel
culori.

3. Cuantizare cu varianţă minimă: paleta de culori va avea maxim N culori.


Laborator Introductiv 13 PRELUCRAREA IMAGINILOR ŞI RECUNOAŞTEREA FORMELOR 14

Funcţia IMPIXEL citeşte culoarea pixelului selectat cu mouse-ul astfel: şi în următoarele figuri afişăm imaginile cu paletele de culori inversate:

- Butonul stâng - introduce date figure(3),imshow(img1,map2),title('Imaginea 1 cu map2')

- Butonul drept sau Enter - încheie introducerea datelor figure(4),imshow(img2,map1),title('Imaginea 2 cu map1')

Fiecare pixel are asociat un număr în matricea B reprezentând indexul culorii


punctului. Observaţii:

Completaţi tabelul: - Pe calculatoarele care au setată placa video la 256 de culori nu se pot

Prima linie Index Culoarea din matricea M2 vizualiza corect cele 2 imagini (img1 şi img2) simultan deoarece placa
video poate afişa o singură paletă de 256 de culori odată.
a matricei B pixeli R G B
- Pentru a putea face prelucrări similare asupra celor două imagini acestea
B(1,1)
trebuie convertite în imagini de intensitate.
B(1,2)

B(1,3)
Teme:
B(1,4)
- pentru imaginea img1 să se realizeze imaginea oglindită faţă de
B(1,5)
orizontală imgoriz şi pe verticală imgvert;

- pentru imaginea img1 să se obţină imaginea complementară imgneg


Se pot verifica datele citind valorile din matricea M2 în funcţie de indexul (suprapunerea lor să fie o imagine albă). Realizaţi aceeaşi operaţie pentru
pixelului din imaginea B: canalul de roşu (suprapunerea dintre imagini să fie o imagine roşie) şi
M2(B(1,1),:) % pentru primul punct etc... salvaţi cu numele imgred;

- implementaţi o funcţie de rotaţie a unei imagini cu 45 grade;

Informaţia privind culoarea este esenţială în reproducerea corectă a imaginii. - convertiţi imaginile img1 şi img2 la imagini de intensitate cu 256 nivele
De exemplu încărcăm două imagini cu aceleaşi dimensiuni dar alte palete de culori: de gri. Realizaţi suprapunerea lor (mixarea) în imaginea imgmix. Se

clear all; putea realiza acest lucru cu imaginile indexate? În ce condiţii?

[img1,map1]=imread('rose.tif');

[img2,map2]=imread('hands.tif'); Prezentaţi în referat imaginile imgoriz, imgvert, imgneg, imgred, imgmix


figure(1),imshow(img1,map1),title('Imaginea 1 cu map1') precum şi instrucţiunile folosite.

figure(2),imshow(img2,map2),title('Imaginea 2 cu map2')
Laborator Introductiv 15 PRELUCRAREA IMAGINILOR ŞI RECUNOAŞTEREA FORMELOR 16

Aplicaţia 1: Diferenţa a două imagini Fie X (i, j ) o imagine monocromă cu dimensiuni 256x256 pixeli. Histograma

Găsiţi diferenţa dintre imaginile: tree1.tif şi tree2.tif imaginii este reprezentată mai jos:

Salvaţi imaginea diferenţă cu numele diff. p

Aplicaţia 2: Pseudoculori
x
Matlab-ul are definite mai multe palete de culori, care aplicate unei imagini
monocrome (de exemplu o imagine de pe satelit sau o tomografie) să o coloreze Ce puteţi spune despre imaginea X (i, j ) . Estimaţi o funcţie care să
pentru o mai bună identificare a detaliilor.
îmbunătăţească contrastul imaginii prin modificarea scalei de gri.
Încărcaţi imaginea monocromă reflect.tif.

Tastaţi help graph3d şi alegeţi una din paletele de culori existente.


Fie X (i, j ) o imagine digitală obţinută din valorile matricei:
Reprezentaţi imaginea reflect cu noua paletă de culori, ex:
⎡ 255 0 255 0 255 "⎤
imshow(x,hot); ⎢ 0 255 0 255 0 ⎥
⎢ ⎥
Salvaţi varianta care vă place cel mai mult cu numele reflmap.tif. ⎢ 255 0 255 0 255 ⎥
⎢ ⎥
Prezentaţi în referat imaginile diff, reflect şi reflmap. ⎢ 0 255 0 255 0 ⎥
⎢⎣ # %⎥⎦

Imaginea este afişată pe un monitor cu γ = 2.0 , luminanţă maximă I 0


(pentru valoarea 255) şi luminanţă minimă 0 (pentru valoarea 0). Imaginea este
vizualizată la o distanţă suficient de mare pentru a fi percepută o singură nuanţă de

PROBLEME: gri, uniformă.

Fie X (i, j ) o imagine digitală monocromă (cu valori între 0 şi 255) asupra a) Determinaţi luminanţa percepută. Justificaţi răspunsul;

căreia se aplică corecţia de gama cu γ = 2.2 . Monitorul pe care se afişează b) Fie Y (i, j ) = y0 o a doua imagine afişată pe monitor. Determinaţi
imaginea are γ = 1.8 . constanta y0 care va produce acelaşi nivel al luminanţei percepută ca şi în

a) Scrieţi expresia pentru imaginea Y (i, j ) obţinută prin corecţia de gama; cazul imaginii X (i, j ) ;

b) Cum va arăta imaginea X (i, j ) afişată pe monitorul cu un gama incorect. c) Considerăm o a treia imagine Z (i, j ) = 127 . Această imagine apare mai
luminoasă sau mai întunecată decât X (i, j ) . Justificaţi răspunsul.
Laborator Introductiv 17

Rezolvare:

I0
a) Luminanţa medie este .
2

Medierea sistemului vizual uman este liniară în energie şi deoarece 1


2
I0
pixeli sunt “aprinşi” luminanţa medie este ;
2

b) Luminanţa este:
2
⎛ y ⎞ I
I = I0 ⎜ 0 ⎟ = 0
⎝ 255 ⎠ 2

1
Rezultă y0 = 255 .
2

255
c) Deoarece 127 < , Z (i, j ) este mai întunecată decât Y (i, j ) rezultă că
2
este mai întunecată şi decât X (i, j ) .

Vous aimerez peut-être aussi