You are on page 1of 8

UNIVERZITET U TUZLI

MAINSKI FAKULET
MEHATRONIKA

MAINSKA VIZIJA
Sortiranje dijelova pravouganog oblika prema veliini, bilo koje orjentacije

Student: Profesor:
Ajdin Ahmetovi III-357/12 Dr.sc.Almir Osmanovi
Tuzla, Oktobar, 2017 god
Sadraj:
1. Uvod 3
2. Analiza i rjeenje 4
3. Zakljuak 7

2
1. Uvod

Tokom kursa Mainske vizije imali smo priliku da nauimo kako da radimo u softwareskom
paketu MATLAB. Po zavretku kursa svaki student je dobio zadatak da napie program u
Matlabu koji bi trebao da analizira uitane slike na kojim treba da se izvre potrebne operacije
kako bi dobili eljeni rezultat. Tema ovog rada je: "Sortiranje dijelova pravouganog oblika prema
veliini, bilo koje orjentacije".

U daljnjem tekstu izvjetaja e biti opisan postupak rjeavanja problematike kao i sam matlab
kod.

3
2. Analiza i rjeenje

Za rjeavanje problema prvo je potrebno odrediti postupak/logiku rjeavanja problema. Ovaj


sluaj se moe rijeiti na vie naina, ali smo mi ipak odluili se na nama najefikasniji nain.

Postupak rjeavanja problema:


Nakon to je slika uitana u program potrebno je istu pretvoriti u pogodniji oblik za
analizu tako da smo sliku pretvorili prvo u crno bijelu sa naredbom "im2bw" a nakon toga smo
je pretvorili u obrnutu crno bijelu sliku sa naredbom "imcomplement". Sada je slika pretvorena
u pogodan oblik za obradu. Sljedei korak je da dobijemo matrinu vrijednost slike odnosno
vrijednost jaine piksela slike prikazanih u matrinom obliku sa naredbom "bwlabel". Sada
pomou petlje izdvajamo sve objekte na slici zasebno kako bi ih mogli analizirati pojedinano.
- U sljedeem koraku se kreira petlja koja za svaki pojedinano izdvojeni objekat rauna
povrina i obim ali se takoer svi izdvojeni objekti opcrtavaju pravougaonikom ije su nam
stranice (irine i visine) poznate. Poto su nam stranice opcrtanih pravougaonika poznate,
potrebno je sada da izraunamo povrinu i obim datih opcrtanih pravougaonika. Sve se rauna
u istoj petlji.
- Nakon to se izvre navedene operacije mi bi trebali da imamo vrijednosti povrina i obima
svih izdvojenih objekata na slici ali i opcrtanih pravougaonika oko objekata. Klju rjeavanja
problema se nalazi u tome da vrijednost povrine objekta i opcrtanog pravougaonika moraju
biti jednake kako bi se dokazalo da je objekat pravougaonog oblika u suprotnom objekat ima
nezahtjevanu geometriju. Kada se uslov zadovolji brojanik doda +1 vrijednost na broj
pravougaonih objekata u slici.
Za kraj nam program prikae kao rezultat povrine svih izdvojenih pravougaonika na
slici.
- Programski kod za matlab:
clc
orginal=imread('slika.png');% Ucitavanje slike
CB=im2bw(orginal);% pretvaranje u crnobijelu
komp=imcomplement(CB);% pretvaranje u obrnutu crnobijelu
[L,n]=bwlabel(komp,4);% matricna vrijednost slike
for i=1:n
grain = false(size(komp));%
grain(L==i) = true;%
end;% u petlji prikaza i izdvoji objekte na slici
osobine=regionprops(komp,'ALL');% segmentacija
brojpravougaonika=0;% 0 namjestena za broj prepoznatih pravougao
prepoznatiObjekti=0;% Koliko objekata je prepoznato i koji im je
redni broj
for i=1:n % petlja za svaki objekt
povrsina=osobine(i).Area;% racuna povrsine svih izdvojenih
objekata
box=osobine(i).BoundingBox;% svaki objekt opcrta
pravougaonikom cije su stranice poznate

4
obim=osobine(i).Perimeter;% racuna obime svih izdvojenih
objekata
sirina=box(3);% izdvaja sve sirine koje je bounding box
opcrto
visina=box(4);% izdvaja sve visine koje je bounding box
opcrto
obim2=2*(sirina+visina);% racuna obim datih pravougaonika
koji su oko objekata
povrsina2=sirina*visina;% racuna povrinu datih
pravougaonika koji su oko objekata
razpov=abs(povrsina-povrsina2);% racunanje razlika stvarne
povrsine i opcrtane povrsine
razobim=abs(obim-obim2);% racunanje razlika stvarnog obima i
opcrtanog obima
if razpov<10 %Ako je razlika izmedju stvarne povrsine i
opcrtane povrsine manja od 10 znaci da je pravougaoni elemnt
%disp('pravougaonik')
brojpravougaonika=brojpravougaonika+1;% da prikazemo
koliko ih ima
prepoznatiObjekti(brojpravougaonika)=i;% Numerisanje
prepoznatih objekata
fprintf('Povrsina objekta %d iznosi %5.2f',i,povrsina);%
disp(' ');
end
end
grain = false(size(komp));%
for i=1:size(prepoznatiObjekti,2)
i
grain(L==prepoznatiObjekti(i)) = true;% Prikazivanje samo
prepoznatih objekata
%imshow(grain);
end;% u petlji prikaza i izdvoji objekte na slici
figure();
imshow(grain);

5
Slika 1. Uitana slika

Slika 2. Rezultat - izdvojeni pravougaoni objekti

Slika 3. Rezultat - Matlab prikaz rezultata

6
3. Zakljuak

Po zavretku kursa Maine vizije stekao sam znanje koje e biti ponajvie potrebno za rad u
preduzeima masovne proizvodnje kod kojih je potrebno vriti stalnu vizuelnu kontrolu
proizoda (npr: kontrola voa, povra, vode i sl.) Matlab nam daje mogunost za brzim
kreiranjem koda kada je u pitanju masinska vizija to nam daje mogunost za brzom
automatizacijom vizuelne kontrole bez potrebe za ljudskim radom kao kontrolorom.

7
Koritena literatura:
1. MV vjebe i predavanja u digitalnoj formi
2. MATLAB For Dummies, John Paul Mueller and Jim Sizemore

You might also like