Sunteți pe pagina 1din 6

Sisteme de vedere artificială Lucrarea de laborator nr.

08

LUCRAREA NR. 08

1. Scopul lucrării
În lucrarea prezentă de laborator se tratează descrierea formelor.

2. Breviar teoretic
Etapele de prelucrare a informaţiilor realizate de un Sistem de Vedere Artificială sunt:
• achiziţia şi formarea imaginilor
• preprocesarea imaginilor
• segmentarea imaginilor
• descrierea formelor
• recunoaşterea formelor
• interpretarea

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

UR i = R, Ri I R j = φ
i =1 i≠ j

Dintre aceste regiuni, una va reprezenta fundalul. Algoritmul de etichetare (colorare) are ca
scop atribuirea unui indice fiecărei regiuni şi realizarea unei imagini care să conţină 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.

1
Sisteme de vedere artificială Lucrarea de laborator nr. 08

3.2. Descrierea formelor bazate pe regiuni


Pentru forme simple ale regiunilor, pot fi folosiţi descriptori scalari simpli eurisitici.
Dintre descriptorii simpli scalari, enumerăm:
• Aria regiunii – poate fi calculată după numărul de pixeli din regiune.
• Perimetrul regiunii – funcţie de tipul de vecinătate folosit acesta poate fi
calculat după cum urmează.
Fie C mulţimea ordonată de pixeli ce aparţin frontierei astfel încât oricare doi
pixeli consecutivi sunt vecini. Perimetrul este dat de relaţia:

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 – mărimea scalară dată de raportul

P2
γ= unde P este perimetrul iar A este aria regiunii.
A
Pentru cerc, compactitatea este γ = 4π

2π (a 2 + b 2 )
Pentru elipsa, γ = .
ab

3.3. Funcţii Matlab utile în descriere:


¾ etichetarea regiunilor - bwlabel
¾ descrierea regiunilor imaginii – regionprops
¾ operaţii morfologice – bwmorph
¾ umplerea imaginii – imfill
¾ obţinerea perimetrului într-o imagine binară – bwperim
¾ eroziunea imaginii – imerode
¾ dilatarea imaginii – imdilate
¾ deshiderea imaginii – imopen
¾ închiderea imaginii – imclose
¾ selectare a regiunilor – bwselect

2
Sisteme de vedere artificială Lucrarea de laborator nr. 08

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 numărului 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

3
Sisteme de vedere artificială Lucrarea de laborator nr. 08

% 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 numărului de obiecte din imagine şi etichetarea regiunilor


% Se foloseste bwlabel – vezi help
[labeled,numObjects] = bwlabel(bw,4);
numObjects
pause

% Pas 8: Examinarea matricii etichetate


% Vizualizaţi 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. 08
figure, imshow(pseudo_color);
pause

% Pas 10: Masurarea diferitelor proprietati ale obiectelor din imagine


% Functia regionprops calculează proprietătile 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 conţine 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 alcătuite din 20 de obiecte care arata distribuţia


% ariilor
figure, hist([graindata.Area],20)
pause

5
Sisteme de vedere artificială Lucrarea de laborator nr. 08

5. Exerciţii
1. Realizaţi o captură de imagine ce conţine obiecte similare şi realizaţi un
experiment asemănător celui din exemplu. Realizaţi câte o histogramă pentru
perimetru, arie, compactitate.

2. Realizați analiza altor descriptori folosind regionprops

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