Professional Documents
Culture Documents
LUCRAREA NR. 9
1. Scopul lucrrii
n lucrarea de fa continu tratarea descrierii formelor i propune un studiu de caz:
detectarea unor piese metalice dreptunghiulare situate pe o mas de culoare mai nchis.
3. Studiu de caz
Se achiziioneaz mai multe imagini cu piese identice situate n diferite poziii pe masa de
lucru. Se consider c n imaginea img1.bmp, din directorul de lucru, sunt reprezentate piesele
de referin. Se realizeaz diferite msurtori asupra imaginii model. Se cere determinarea
pieselor de acest tip n alte imagini achiziionate folosind aceeai scen i aceleai
echipamente hardware. Se vor folosi imagini achiziionate n timpul laboratorului sau se vor
folosi imaginile img2.bmp, img3.bmp, img4.bmp, din directorul de lucru, ce reprezint piese
similare situate n diferite poziii. n continuare este prezentat o variant de implementare n
Matlab ce descrie piesa model i caracterizeaz piesele similare folosind anumii descriptori.
Se vor urmri comentariile existente n cod.
trasaturi(k, 1)=bwarea(prop(k).Image);
% end
% coloana 2: perimetrul,
for k = 1:nrObiecte,
bw4 = bwperim(prop(k).Image, 4);
bw8 = bwperim(prop(k).Image, 8);
trasaturi(k, 2)=sqrt(2)*sum(bw8(:)) + (1-sqrt(2))*sum(bw4(:));
end
% coloana 3: compactitatea,
for k = 1:nrObiecte,
trasaturi(k, 3)=trasaturi(k, 2)^2 / trasaturi(k, 1);
end
% coloana 4: lungimea axei mari,
trasaturi(:, 4)=[prop.MajorAxisLength]';
% coloana 5: lungimea axei mici,
trasaturi(:, 5)=[prop.MinorAxisLength]';
% coloana 6: excentricitatea
trasaturi(:, 6)=[prop.Eccentricity]';
% Pas 13: stabilirea modelului, stiind ca toate obiectele din imagine sunt identice
model = mean(trasaturi);
%==========================================
% Pas 14: Aplicarea pasilor 1-12 pentru imaginea 2
[J, MAP] = imread('img2.bmp');
figure, imshow(J), title('imaginea initiala');
I = ind2gray(J, MAP);
figure, imshow(I), title('transformarea formatului imaginii - imaginea grayscale')
figure, imhist(uint8(I*255)), title('histograma imaginii')
prag = graythresh(I);
BW = im2bw(I, prag);
str = sprintf('segmentarea imaginii - imaginea binarizata cu pragul %.1f',
prag*255);
4
for j = 1:size(trasaturi, 2)
err(k,j)=100*err(k,j)/model(j);
end
end
err
4. Exerciii
1. ncrcai n matlab exemplul de mai sus. Explicai folosirea fiecrei etape.
2. Realizai mai multe achiziii de imagine folosind calculatorul Ursula si camera video
din dotarea laboratorului de Sisteme de Vedere Artificial. Se vor folosi piese diferite
n scen. Modificai programul din exemplu astfel nct s observai detectarea
pieselor dorite i ignorarea celor care difer de piesa de referin. Comentai
rezultatele obinute.
3. Realizai un program care s caracterizeze o pies cu mai multe guri. Comentai
descriptorii suplimentari ce apar.
5. Tem
Realizai un referat n care s explicai rezultatele experimentale obinute.