Upload
andra-da
View
4
Download
0
Embed Size (px)
DESCRIPTION
ooo
Citation preview
Sisteme de vedere artificial Lucrarea de laborator nr. 8
1
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:
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.
===IUji
ji
m
ii RRRR
1
,
Sisteme de vedere artificial Lucrarea de laborator nr. 8
2
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:
Compactitatea mrimea scalar dat de raportul
unde P este perimetrul iar A este aria regiunii.
Pentru cerc, compactitatea este
Pentru elipsa, .
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
{ }{ }
[ ]{ }),(),(),(),(Card2),(),(),(Card
:),(...,),,(),,(
4118
114
1100
kkkkkkkk
kkkkkk
nn
jiVjiVjiCji
jiVjiCjiPjijijiC
++=
=
AP2=
4=
abba )(2 22 +=
Sisteme de vedere artificial Lucrarea de laborator nr. 8
3
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
4
% 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');
Sisteme de vedere artificial Lucrarea de laborator nr. 8
5
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
Sisteme de vedere artificial Lucrarea de laborator nr. 8
6
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.
Untitled