You are on page 1of 17

UNIVERZITET U TUZLI – MAŠINSKI FAKULTET

Kontrola lančanika
Seminarski rad

Predmet: Mašinska vizija


Ime i prezime studenata:
Osman Omerović (III-18/13)
Azem Hotić (III-347/12)
Odsjek: Mehatronika

Tuzla, august 2018.

1
Sadržaj
1.Uvod ................................................................................................................................... 4

2. Lančani prenosnici ............................................................................................................. 5

3. Opis programa ................................................................................................................... 9

3.1. Prikaz rezultata ............................................................................................................. 13

4. ZAKLJUČAK.................................................................................................................. 15

LITERATURA .................................................................................................................... 16

PRILOG ............................................................................................................................... 17

2
Popis slika

Slika 1. Raspored i položaj lančanih prijenosa .................................................................... 5


Slika 2. Lančani prijenos na dva gonjena vratila ................................................................. 6
Slika 3. Vibriranje i prigušenje vibracija ............................................................................. 6
Slika 4. Prikaz rezultata 1 .................................................................................................. 13
Slika 5. Prikaz rezultata 2 .................................................................................................. 14
Slika 6. Prikaz rezultata 3 .................................................................................................. 14

3
1. Uvod
Zadatak rada je da pomoću matlaba izvršimo odgovarajuća mjerenja lančanika te
da ustanovimo ispravnost lančanika. Mjerenja koja će se vršiti su broj zuba lančanika te
unutrašnji i vanjski prečnik, odnosno prečnik lančanika i prečnik vratila. Broj zubi
lančanika će nam koristiti kao mjera ispravnosti istog. Drugim riječima korisnik će unositi
broj zubi koji bi ispravan lančanik trebao da ima, program zatim mjeri broj zubi te donosi
zaključak o ispravnosti tj. da li je lančanik defektan ili ispravan.
Neki uvjeti koji su potrebni da bi algoritam radio jest da je pozadina svjetlija od
lančanika, da lančanik ima što homogeniju boju, idealno da je jednobojan, te da je
perspektiva slike u odnosu na lančanik okomita.
Danas se u industriji koriste moderni sistemi koji su bazirani na viziji, gdje input u
algoritam bi predstavljala kamera, odnosno slike koji bi davala algoritmu svakih nekoliko
trenutaka. Treba napomenuti da svaki algoritam nije neograničeno fleksibilan i da određeni
uslovi moraju biti ispunjeni za njegovo funkcioniranje, naravno što više vremena je
utrošeno u isti to će on postati sve više fleksibilniji.

4
2. Lančani prenosnici
Pljosnatim i klinastim remenjem prenosi se snaga i gibanje pomoću veze
silom(trenje). Kod lančanog prijenosa, slično prijenosu sa zupčastim remenom, prenos se
vrši pomoću veze oblikom. Lančani prijenos upotreblajva se tamo gdje je remenski
prijenost nemoguč zbog loših prostornih i prijenosnih oblika ili razmaka osi. Lančani
prijenosi s manjih obuhvatnim uglom i manjim razmakom osi mogu prenositi znatno veće
sile nego remenski prijenosi. Općenito im nije potrebno nikakvo prednaprezanje, te prema
tome manje opterećuju vratila. Lančani prijeso ne rade međutim elastično, nužno je bolje
održavanje, moraju se podmazivati, a često ih treba zaštiti protiv utjecaja prašine. Lanci i
lančanici su znatno skuplji od remena i remenice. Dobri su u gradnjih transportnih uređaja,
u industriji motornih vozila i poljoprivrednih strojeva.

Slika 1. Raspored i položaj lančanih prijenosa

Na Slici 1. Prikazani su razni načini oblikovanja lančanih prijenosa. Vučni ogranak


treba da bude po mogućnosti na gornjoj strani. Kosi položaj prijenosnika je povoljan, dok
je okomiti položaj nepovoljan zbog loših zahvata na donjoj lančanici. Zbog toga su kod
vertikalnih prijenosa potrebni zatezni lančanici. Zatezne lančanike treba ugraditi i onda ako
jedan lanac pokreće više lančanika (Slika 2.). Okomiti položaj vratila treba u načelu
izbjegavati, jer lančane spojnice taru po čeonoj strani lančanika i tako se brzo troše

5
Slika 2. Lančani prijenos na dva gonjena vratila

Budući da se i lanci plastično deformiraju, treba predvidjeti mogućnosti naknadnog


zatezanja, npr zatezne lančanike ili zatezna vratila. Kod granica dopuštenog provjesa
uzima se oko 2% razmaka vratila.
Lanci izloženi vibracijama, naročito u pogonu s udarima, te u pogonu s klipnim
strojevima, što izaziva nemiran rad. Zbog toga su potrebbni prigušivači titranja(Slika 3.)

Slika 3. Vibriranje i prigušenje vibracija

Vrste lanaca i spojnica (spajanje krajeva lanaca):

1. Lanci s čeličnim svornjacima (DIN 654), rađeni od temper-lijeva, s korakom od 32


do 150 mm, za vlačne sile od 1 500 do 12 000 N. Upotrebljavaju se kod
poljoprivrednih strojeva i transportnih uređaja;
2. Rastavljivi zglobni lanci (DIN 686) rađeni od temper-lijeva, s korakom od 22 do
148 mm, za vlačne sile od 300 do 3 200 N. Ovi lanci se upotrebljavaju isto kod
poljoprivrednih strojeva i transportnih uređaja;

6
3. Gallov lanac (DIN 8150 i 8151). Spojnice (lamele) su okretljivo smještene na
svornjacima. Uska površina nalijeganja spojnice na svornjak omogućuje brzine
samo do 0,5 m/s. Izrađuje se i sa više spojnica za dizala i dizalice;
4. Valjkasti lanci (DIN 8187) kod kojih su unutarnje spojnice naprešane na tuljke,
okretljivo uložene na svornjake. Svornjaci su uprešani u vanjske spojnice, a krajevi
raskovani. Time se dobiva zglob tuljak/svornjak (zglobni tuljak). Takvi zglobni
tuljci imaju na sebi još kaljene valjke. Lanci s valjcima pogodni su gotovo za sve
vrste pogona, pa se zato najviže i upotrebljavaju. Neosjetljivi su prema vanjskim
utjecajima. Jednoredni valjkasti lanci nazivaju se simpleks, dvoredni dupleks, a
troredni tripleks. Mogu se spajati tako da tvore četveroredne, petoredne i višeredne
valjkaste lance. U DIN 8181 standardizirani su valjkasti lanci s dugim člancima za
velike razmake osi, a u DIN 8188, dati su valjkasti lanci u inčima (američka
izvedba);
5. Lanci s tuljkom (DIN 73232) su u stvari valjkasti lanci, ali bez vanjskih valjaka.
Zbog toga su lakši od lanaca s valjcima i manje podložni utjecaju centrifugalne sile,
tako da mogu raditi s većom brzinom. Pretežno se upotrebljavaju za motorna
vozila. Zbog održavanja i trošenja u prihvatljivim granicama, potrebna im je točna i
brižljiva obrada lančanika. Osjetljiviji su prema vanjskim utjecajima (prašina i
nečistoća) od valjkastih lanaca. U novijim konstrukcijama se ne upotrebljavaju, već
se zamjenjuju valjkastim lancima;
6. Rotary-lanci (DIN 8182) imaju zakrivljene spojnice, pa se mogu upotrebljavati s
proizvoljnim brojem članaka. Zbog zakrivljenosti spojnica ovi su lanci veoma
elastični, tako da mogu primati bolje udarna opterećenja;
7. Zupčasti lanci (DIN 8190) sa spojnicama u obliku dva trokutasta zuba. Vanjski
nosivi bokovi zubi zatvaraju međusobno kut od 60º. Zbog povećanja otpornosti na
trošenje, u spojnicama se nalaze kaljeni zglobni tuljci. Da ne bi došlo do bočnog
pomicanja zupčastih lanaca, ugrađuju se dodatno vodeće, nenazubljene spojnice
(jedna srednja ili dvije vanjske), koje zahvataju u prstenaste utore lančanika.
Zupčasti lanci pogodni su za vrlo velike brzine i rade gotovo bešumno (upravljački
lanac kod motora s unutarnjim izgaranjem). Skuplji su od svih dosad opisanih
lanaca. Za najveće zahtjeve u pogledu otpornosti na trošenje, izrađuju se zupčasti
lanci s valjnim zglobovima (bez kliznog gibanja u zglobu!). U uljnoj kupki moguće
su brzine lanaca do 30 m/s.
8. Specijalni lanci (lanci s tuljkom prema DIN 8164) namijenjeni su naročito grubim
vanjskim pogonima. Transportni lanci s tuljkom prema DIN 8165, 8166, 8184 i
8185 upotrebljavaju se za transportne trake, transportne trase, kružna dizala, dizala
s upornicom, pokretne stube i slično. Nadalje, postoje višestruki lanci s tuljcima
prema DIN 8171 za transportne uređaje, lanci za člankaste konvejere DIN 8175,
lanci za lančaste trase DIN 8176 i lanci za stružne konvejere DIN 8177.
9. Pogonski lanci, osim onih od temper-lijeva, izrađuju se od čelika za cementiranje ili
čelika za poboljšanje. Trošenje u zglobovima lanca prouzročuje trajnu deformaciju,
koja se stalno povećava, a smije da iznosi do 3%.

7
Lančanici. Valjkaste lance i lance s tuljkom može se prikazati kao svornjake
nanizane na uže, koji postepeno ulaze u uzubine lančanika. Uzubine moraju biti tako
oblikovane da pri dizanju pruženog lanca mogu svornjaci nesmetano izlaziti iz uzubina. Da
bi se izjednačile tolerancije i trenje deformacije lanca, potrebno je veliko zaobljenje
korijena zuba i velik bočni kut, koji ipak ne smije biti prevelik, da se svornjaci lanca ne bi
penjali na bok zuba. Oblik zuba je prema DIN 8196. [
Podmazivanje. Veću trajnost pogonskih lanaca pri većoj brzini, može se postići
dobrom zaštitom od prašine i brižljivim podmazivanjem. U tom slučaju može se računati s
većim učešćem tekućeg trenja umjesto mješovitog. Povoljna pogonska temperatura lanca
je 70 ºC, a za uljnu kupku ili optočno ulje 60 ºC. Ako se te temperature prekorače, mora se
predvidjeti hlađenje ili upotreba maziva otpornog na zagrijavanje (motorno ulje s
dodatkom grafita ili molibdendisulfida). Ulja za podmazivanje moraju na pogonskoj
temperaturi pri podmazivanju u uljnoj kupci ili pri optočnom tlačnom podmazivanju imati
viskoznost 20 do 50 cSt, pri podmazivanju kapanjem 40 do 80 cSt, te pri ručnom
podmazivanju 80 do 120 cSt (u ovom slučaju može se podmazivati i teškim uljima ili
tekućom mašću). Izvanredan utjecaj na podmazivanje ima stanje maziva. Zanemarivanje
dobne izmjene ulja ili zaboravljanje na potrebu naknadnog podmazivanja, može dovesti do
onečišćenja maziva ili čak do suhog trenja, a time do većeg trošenja zglobova lanca. Pri
podmazivanju kapanjem ulja na unutarnju stranu traka lanca dolazi oko 4 do 14 kapi na
minutu. Pri tome treba paziti da ulje može prodrijeti do zglobova, a da ne ulazi na krivom
mjestu, odakle otječe bez koristi. Pri podmazivanju u uljnoj kupci donja traka uranja se u
ulje do polovine širine spojnice. Dobri rezultati dobivaju se ako se ugradi kolut za prskanje
ulja, koji stvara uljnu maglu. Uljne čestice talože se na lanac i na okapnice, odakle
sakupljeno ulje ponovo kaplje na lanac. Pri tome može donja traka lanca još dodatno
uranjati u uljnu kupku. Pri optočnom tlačnom podmazivanju ubrizgava se ulje na unutarnju
stranu povratne trake.

8
3. Opis programa
Prije nego što krenemo sa opisom algoritma za kontrolu lančanika treba prvo da
posmatramo problem kroz prizmu industrijske primjene i uslovima u kojem bi se mogao da
ovaj program izvede. Industrijski uslovi su poznati po tome da su bučni i prašnjavi.
Međutim ukoliko se izabere dobra lokacija kamere i sočivo se redovno održava,
prašnjavost se može eliminisati kao smetnja, pored toga , primjenom odgovarajućeg filtera,
eliminacijom buke u programu još više smanjujemo efekat prašnjavog sočiva.
Program bi se mogao koristiti u nekom industrijskom postrojenju za proizvodnju
lančanika. Nakon završene obrade lančanici se trakastim transporterom prevoze do
međuspremišta. Prilikom transporta, kamera koja je postavljena na najboljem mogućem
mjestu i pod najboljom orjentacijom fotografira lančanik, te se ta slika dalje procesuira i
izvodi zaključak o ispravnosti dijela. Te se on otklanja sa trake ukoliko je defektan ili
nastavlja svoj put ukoliko nije.
Za poboljšanje kvalitete slike korišten je samo filter za otklanjanje buke sa slike, iz
razloga što slika mora biti što bolje fotografirana zbog prirode samog problema. Parametri
koji se mjere su: broj zuba, spoljašnji prečnik lančanika te prečnik vratila. Uslov
ispravnosti je broj zuba. Da bi algoritam funkcionirao potrebno je da pozadina bude
svjetlija od samog lančanika te da lančanik ima jasne granice odnodno tamnije granice od
pozadine, poželjno je da bude jednobojan.
Koraci u algoritmu:
1. Čišćenje predmemorije kao i radne površine.
2. Učitavanje slike
3. Pretvaramo RGB sliku u sivu sliku
4. Čistimo sliko od buke
5. Pretvaramo sivu sliku u crno bijelu sliku
6. Pravimo inverznu crno bijelu sliku
7. Plotujemo „dva kruga“ od kojih je jedan vanjski prečnik lančanika a drugi je
ofsetovan za odgovarajući broj piksela prema unutra
8. „Siječemo“dio imeđu ta dva kruga
Ovi koraci predstavljaju jezgro programa, program je detaljnije obrazložen u nastavku.

Prije pokretanja programa vrlo je bitno da se predmemorija Matlaba očisti iz


razloga što nam zauzima radnu memoriju a prvenstveno u slučaju istih oznaka iz nekog
prethodno rađenog programa, program može da računa neke stvari onako kako nije
zamišljeno

close all
clear

Nakon čišćenja predmemorije vršimo formiranje jedinog ulaza u program a to je


broj zubi koji treba da ima ispravan zubčanik.

prompt='Koliko zuba bi trebao da ima ispravan lancanik';


x=input(prompt)

Zatim vršimo učitavanje željene slike, te sliku prikazujemo u orginalnom obliku

lancanik=imread('C:\Users\Osman\Desktop\bmx_chainring.jpg');
subplot(3,3,1), imshow(lancanik), title('Originalna slika')

9
Sliku dalje pretvaramo u sivu sliku te je prikazujemo

lancanik=rgb2gray(lancanik);
subplot(3,3,2), imshow(lancanik), title('Siva slika')

Dalje uklanjamo buku sa slike(potencijalna prašina)

lancanik1=medfilt2(lancanik);
subplot(3,3,3), imshow(lancanik1), title('Uklojnena buka sa slike')

Vršimo pretvaranje sive slike koja je očišćena od buke u crno bijelu sliku. Prvo
računamo prag sive slike pomoću funkcije „graytresh“ kojeg koristimo kako bi sliku
binarizirali na što je bolji mogući način, tj. da binarna slika bude što bolje segmentirana sa
što jasnijim granicama.

level=graythresh(lancanik);
lancanikcb=im2bw(lancanik,level);
subplot(3,3,4), imshow(lancanikcb), title('Crno bijela slika')

Pošto je u našem slučaju pozadina svjetlija od predmeta odnosno lančanika.


Pozadina će u tom slučaju biti bijela a lančanik crn. Matlab prepoznaje bijelu boju na
binarnoj slici kao 1 a crnu kao 0, drugim riječima crna boja predstavlja prazninu. Pošto je
kod nas lančanik trenutno crne boj odnosno šupljina u slici a mi moramo dalje obavljati
operacije nad lančanikom napravit ćemo iverznu sliku od postojeće tako da zapravo
lančanik bude bijele boje pomoću funkcije imcomplement

J=imcomplement(lancanikcb);
subplot(3,3,5), imshow(J), title('Inverzna crno bijela slika')

Pošto naša slika ima rupa na neželjenim mjestima pomoću funkcije „imfill“ ćemo
ih popuniti. Ta funkcija prepoznaje klastere 0 te ih mijenja sa 1.

lancanikcb2=imfill(J,'holes');
subplot(3,3,6), imshow(lancanikcb2), title('Popunjene rupe')

Nakon što smo obradili sliku na željeni format pristupamo rješavanju problema.
Prvo trebamo da saznamo karakteristike elementa, to ćemo odraditi pomoću funkcije
„regionprops“ koja ima sljedeće izlaze:

Area: 52888
Centroid: [152.2857 151.7073]
BoundingBox: [17.5000 16.5000 269 271]
SubarrayIdx: {[1x271 double] [1x269 double]}
MajorAxisLength: 261.5073
MinorAxisLength: 258.2434
Eccentricity: 0.1575
Orientation: 79.6135
ConvexHull: [72x2 double]
ConvexImage: [271x269 logical]
ConvexArea: 57353
Image: [271x269 logical]
FilledImage: [271x269 logical]
FilledArea: 52888
10
EulerNumber: 1
Extrema: [8x2 double]
EquivDiameter: 259.4978
Solidity: 0.9221
Extent: 0.7255
PixelIdxList: [52888x1 double]
PixelList: [52888x2 double]
Perimeter: 1.1873e+03
PerimeterOld: 1.2540e+03

Odabrali smo da želimo da imamo pristup svim ovim parametrima, međutim nas
trenutno zanima samo svojstvo ConvexHull koji predstavlja zapravo ljušturu objektra.
Kada plotamo to svojstvo na sliku, najbolje ga opisuje „guma oko objekta“. U našem
slučaju to svojstvo će najpribližnije opisati vanjski prečnik lančanika. „Izvlačimo“
koordinate te ih plotujemo na slici, boja linije: žuta, debljina: 2.

rp=regionprops(double(lancanikcb2),'all')
xy=rp.ConvexHull;
line(xy(:,1),xy(:,2),'Color','Yellow','Linewidth',2);

Pretvaramo poligon u masku pomoću funkcije poly2mask, gdje su vanjske ivice


zapravo dimenzije same slike

[r,c]=size(lancanikcb2);
mask=poly2mask(xy(:,1),xy(:,2),r,c);

Formiramo kvadrat od 10x10 jedinica odnosno piksela za čije vrijednosti ćemo


umanjiti(erodirati) trenutnu masku

ones(10);
maskeroded=imerode(mask,ones(10));

Zatim tražimo karakteristike ove umanjene maske da bi plotali prečnik koji


predstavlja donju granicu odsječka. Na kraju to plotamo na sliku kako bi jasno vidjeli
granice, boja linije: crvena, širina: 2

rp=regionprops(double(maskeroded),'all');
xy=rp.ConvexHull;
line(xy(:,1),xy(:,2),'Color','red','linewidth',2);

Da bismo prikazali samo zube na slici, sliku odsiječemo za vrijednost unutarnje


maske tj. umanjene maske. Fukcija bwlabel ima svojstvo da broji objekte, drugim riječima
neprekidne klastere jedinica. Funkcija je uređena na način da daje dva izlaza, nas zanima
drugi izlaz kojeg smo imenovali sa num, koji predstavlja broj regija na slici u našem
slučaju broj zubi.

zubi(maskeroded)=0;
subplot(3,3,8),imshow(zubi),title('Prikaz zubi');
[l,num]=bwlabel(zubi);

11
Da bismo izmjerili prečnik vratila prvo je potrebno da prikaćemoo rupe koje smo
već ranije popunili, zatim uz pretostavku da je rupa koja predstavlja unutrasnji prečnik
manja od 1000 piksela, popunjajemo ostale, manje rupe, koje su manje od 1000 piksela.

rupe=lancanikcb2 & ~J;


rupe2=bwareaopen(rupe, 1000);
subplot(3,3,7), imshow(rupe2), title('Prikaz precnika vratila');

Zatim prikazujemo rezultate odnosno: broj zubi, spoljašnji prečnik kao i prečnik
vratila. Prečnike dobivamo pomoću funkcije regionprops, koristimo jedan od njezinih
izlaza a to je „EquivDiameter“, zbog preciznijih rezultata, za prečnik lančanika korištena je
slika maske. Rezultati prečnika su prikazani u pikselima, međutim ako bi se znala tačna
razdaljina kamere od predmeta, odgovarajućim preobrazbama moglo bi se pretvoriti u
milimetre odnosno centimeter ili metre.

disp('Broj zubi je')


num
disp('Spoljasnji precnik')
d1=regionprops(mask, 'EquivDiameter')
disp('Precnik vratila je:')
d2=regionprops(rupe2, 'EquivDiameter')

Da bi program znao da li je lančanik ispravan, koristimo input te broj zuba koji smo
dobili kao izlaz iz programa

if x==num
disp('Lancanik nema defekata')
else
disp('Lancanik je defektan')
end

12
3.1. Prikaz rezultata

Slika 4. Prikaz rezultata 1

Koliko zuba bi trebao da ima ispravan lancanik 39

x=
39
Broj zubi je
num =
39
Spoljasnji precnik

d1 =
EquivDiameter: 270.2297
Precnik vratila je:

d2 =
EquivDiameter: 37.1681
Lancanik nema defekata

13
Mjerenje vanjskog lančanika gdje su ostali smatrani kao smetnja:

Slika 5. Prikaz rezultata 2

Slika 6. Prikaz rezultata 3

14
4. ZAKLJUČAK
Prilikom izrade programa nije vođeno računa o fleksibilnosti algoritma. Ukolko bi
željeli da program bude koristam moralo bi se poraditi više na tome. Ograničenje da
pozadina bude svjetlija od lančanika bi mogli eliminisati pomoću „if“ petlje gdje bi jedan
dio programa bio zadužen za detekciju pozadine i lančanika te bi dalje mjerili jačinu
svjetlosti unutar odgovarajućih polja od interesa. Ukoliko je lančanik svjetliji samo bi se
izostavio dio gdje računamo inverznu binarnu sliku. Međutim lančanici dolaze u različitim
oblicima i konstrukcijskim izvedbama, vrlo bi teško bilo napraviti univerzalni program za
kontrolu svih vrsta lančanika.

15
LITERATURA

1. Haque Nawaz, Himat Ali, “Gear Measurement Using Image Processing in


MATLAB”, ‘International Journal of Innovative Technology and Exploring
Engineering (IJITEE)’, 2014, Volume-3,
2. Cheng Pengfei and Feng Changyong Henan, “Characteristic Value Extraction of
Gear Defect Based on Image Processing”, ‘Journal of Multimedia’, 2013, Volume-
8,
3. Zhang Jing, “The Research on the Application to Digital Image Technology in
Hypoid Gear Contact Zone Detection”, ‘Journal of Computers’, 2011, Volume-. 6,

16
PRILOG
Tekst programa:
close all
clear
prompt='Koliko zuba bi trebao da ima ispravan lancanik';
x=input(prompt)
lancanik=imread('C:\Users\Osman\Desktop\slika3.jpg');
subplot(3,3,1), imshow(lancanik), title('Originalna slika')
lancanik=rgb2gray(lancanik);
subplot(3,3,2), imshow(lancanik), title('Siva slika')
lancanik1=medfilt2(lancanik);
subplot(3,3,3), imshow(lancanik1), title('Uklojnena buka sa slike')
level=graythresh(lancanik);
lancanikcb=im2bw(lancanik,level);
subplot(3,3,4), imshow(lancanikcb), title('Crno bijela slika')
J=imcomplement(lancanikcb);
subplot(3,3,5), imshow(J), title('Inverzna crno bijela slika')
lancanikcb2=imfill(J,'holes');
subplot(3,3,6), imshow(lancanikcb2), title('Popunjene rupe')
rp=regionprops(double(lancanikcb2),'all');
xy=rp.ConvexHull;
line(xy(:,1),xy(:,2),'Color','Yellow','Linewidth',2);
[r,c]=size(lancanikcb2);
mask=poly2mask(xy(:,1),xy(:,2),r,c);
ones(10);
maskeroded=imerode(mask,ones(10));
rp=regionprops(double(maskeroded),'all');
xy=rp.ConvexHull;
line(xy(:,1),xy(:,2),'Color','red','linewidth',2);
rupe=lancanikcb2 & ~J;
rupe2=bwareaopen(rupe, 1000);
subplot(3,3,7), imshow(rupe2), title('Prikaz precnika vratila');
zubi=lancanikcb2;
zubi(maskeroded)=0;
subplot(3,3,8),imshow(zubi),title('Prikaz zubi');
[l,num]=bwlabel(zubi);
disp('Broj zubi je')
num
disp('Spoljasnji precnik')
d1=regionprops(mask, 'EquivDiameter')
disp('Precnik vratila je:')
d2=regionprops(rupe2, 'EquivDiameter')
if x==num
disp('Lancanik nema defekata')
else
disp('Lancanik je defektan')
end

17

You might also like