Sunteți pe pagina 1din 6

Sisteme de vedere artificial

Lucrarea de laborator nr. 8

LUCRAREA NR. 8
1. Scopul lucrrii
n lucrarea prezent de laborator se trateaz descrierea formelor.

2. Breviar teoretic
Etapele de prelucrare a informaiilor realizate de un Sistem de Vedere Artificial sunt:

achiziia i formarea imaginilor

preprocesarea imaginilor

segmentarea imaginilor

descrierea formelor

recunoaterea formelor

interpretarea

3. Descrierea formelor
3.1. Etichetarea
Prin metode de segmetare se pot obine imagini binare care s reprezinte obiectele din
imagine. Dac notam cu Ri regiunile obinute dup segmentare, putem afirma c:
m

UR

i =1

= R,

Ri I R j =
i j

Dintre aceste regiuni, una va reprezenta fundalul. Algoritmul de etichetare (colorare) are ca
scop atribuirea unui indice fiecrei regiuni i realizarea unei imagini care s conin valori
ntregi: 0 pentru fundal, 1 pentru prima regiune, 2 pentru R2 .a.m.d. O colorarea diferit a
regiunilor s-a realizat i n referatele 6 i 7, n care s-a aplicat o metod proprie de etichetare a
regiunilor. O metod riguroas de etichetare este prezentat n curs.

Sisteme de vedere artificial

Lucrarea de laborator nr. 8

3.2. Descrierea formelor bazate pe regiuni


Pentru forme simple ale regiunilor, pot fi folosii descriptori scalari simpli eurisitici.
Dintre descriptorii simpli scalari, enumerm:

Aria regiunii poate fi calculat dup numrul de pixeli din regiune.

Perimetrul regiunii funcie de tipul de vecintate folosit acesta poate fi


calculat dup cum urmeaz.
Fie C mulimea ordonat de pixeli ce aparin frontierei astfel nct oricare doi
pixeli consecutivi sunt vecini. Perimetrul este dat de relaia:

C = {(i0 , j0 ), (i1 , j1 ), ..., (in , jn )}:

P = Card{(ik , jk ) C (ik , jk ) V4 (ik 1 , jk 1 )}+

+ 2 Card {(ik , jk ) C (ik , jk ) [V8 (ik 1 , jk 1 ) V4 (ik , jk )]}

Compactitatea mrimea scalar dat de raportul

P2
=
A

unde P este perimetrul iar A este aria regiunii.

= 4

Pentru cerc, compactitatea este


Pentru elipsa, =

2 (a 2 + b 2 )
.
ab

3.3. Funcii Matlab utile n descriere:


etichetarea regiunilor - bwlabel
descrierea regiunilor imaginii regionprops
operaii morfologice bwmorph
umplerea imaginii imfill
obinerea perimetrului ntr-o imagine binar bwperim
eroziunea imaginii imerode
dilatarea imaginii imdilate
deshiderea imaginii imopen
nchiderea imaginii imclose
selectare a regiunilor bwselect

Sisteme de vedere artificial

Lucrarea de laborator nr. 8

4. Exemplu
% Pas 1: Citirea si afisarea imaginii
% Pas 2: Estimarea valorii aproximative a pixelilor din fundal
% Pas 3: Vizualizarea fundalului ca o suprafata
% Pas 4: Crearea unei imagini cu fundal uniform
% Pas 5: Ajustarea contrastului imaginii
% Pas 6: Binarizarea imaginii
% Pas 7: Determinarea numrului de obiecte din imagine
% Pas 8: Examinarea matricii etichetate
% Pas 9: Vizualizarea imaginii etichetate ca o imagine color indexat
% Pas 10: Masurarea diferitelor proprietati ale obiectelor din imagine
% Pas 11: Calucul statistic al obiectelor din imagine
clear, close all;
% Pas 1: Citirea si afisarea imaginii
I = imread('rice.tif');
figure, imshow(I);
pause
% Pas 2: Estimarea valorii aproximative a pixelilor din fundal
% Se foloseste open (deschiderea imaginii) pentru eliminarea obiectelor din
% imagine
se = strel('disk',15);
background = imopen(I,se);
figure, imshow(background);
pause
% Pas 3: Vizualizarea fundalului ca o suprafata
% Se foloseste functia surf - vezi help
figure, surf( double(background(1:8:end,1:8:end)) ) ,zlim([0 255]);
set(gca,'ydir','reverse');
pause

Sisteme de vedere artificial

Lucrarea de laborator nr. 8

% Pas 4: Crearea unei imagini cu fundal uniform


% Se foloseste diferenta imaginilor : functia imsubstract
I2 = imsubtract(I,background);
figure, imshow(I2);
pause
% Pas 5: Ajustarea contrastului imaginii
% Se mareste contrastul folosind imadjust (vezi lucrari de laborator precedente)
I3 = imadjust(I2, stretchlim(I2), []);
%I3 = histeq(I2);
figure, imshow(I3);
pause
% Pas 6: Binarizarea imaginii
level = graythresh(I3);
bw = im2bw(I3,level);
figure, imshow(bw);
pause;
% Pas 7: Determinarea numrului de obiecte din imagine i etichetarea regiunilor
% Se foloseste bwlabel vezi help
[labeled,numObjects] = bwlabel(bw,4);
numObjects
pause
% Pas 8: Examinarea matricii etichetate
% Vizualizai portiuni din imagine folosind imcrop
figure, imshow(labeled);
pause
% Pas 9: Vizualizarea imaginii etichetate ca o imagine color indexat
% Colorarea imaginii folosind o palet de culori (similar colorarii din referatele
% precedente)
pseudo_color = label2rgb(labeled, @spring, 'c', 'shuffle');
4

Sisteme de vedere artificial

Lucrarea de laborator nr. 8

figure, imshow(pseudo_color);
pause
% Pas 10: Masurarea diferitelor proprietati ale obiectelor din imagine
% Functia regionprops calculeaz propriettile enumerate ale regiunilor din
imaginea etichetata vezi help
graindata = regionprops(labeled,'basic')
pause
% Afisarea suprafetei regiunii 51
graindata(51).Area
pause
% Afisarea dreptunghiului de dimensiuni minime ce poate conine regiunea
% Afisarea centrului de masa a regiunii 51
graindata(51).BoundingBox, graindata(51).Centroid
pause
% Pas 11: Calcul statistic al obiectelor din imagine
% Aria maxima a unui obiect din imagine
max([graindata.Area])
pause
% Gasirea indicelui obiectului de arie 404
biggrain = find([graindata.Area]==404)
pause
% Calcularea ariei medii
mean([graindata.Area])
pause
% Calcularea unei histograme alctuite din 20 de obiecte care arata distribuia
% ariilor
figure, hist([graindata.Area],20)
pause
5

Sisteme de vedere artificial

Lucrarea de laborator nr. 8

5. Exerciii
1. Realizai mai multe achiziii de imagine folosind calculatorul Ursula si camera video
din dotarea laboratorului de Sisteme de Vedere Artificial. Se va folosi aceeai pies
n scen. Realizai segmentarea imaginilor obinute folosind metode de prag. Calculai
descriptorii arie, perimetru i compactitate pentru fiecare imagine realizat. Comentai
rezultatele obinute.
2. Realizai o captur de imagine ce conine peste 5 piese similare i realizai un
experiment asemntor celui din exemplu. Realizai cte o histogram pentru
perimetru, arie, compactitate.
3. Realizai o funcie proprie pentru calcul al ariei.
4. Realizai o funcie matlab proprie pentru calculul perimetrului.
5. Realizai o funcie matlab proprie pentru calculul compactitii.
6. Comparai rezultatele funciilor proprii cu valorile obinute folosind regionprops

6. Tem
Realizai un referat n care s explicai rezultatele experimentale obinute.

S-ar putea să vă placă și