30.08.2013 Views

HÅLLOKALISERING - Örebro universitet

HÅLLOKALISERING - Örebro universitet

HÅLLOKALISERING - Örebro universitet

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Atlas Copco Rock Drills AB<br />

ÖREBRO<br />

Dokument - Document<br />

Examensarbete - Hållokalisering<br />

Uppgjord tjst, namn, tfn - Prepered dept, name, telephone Kontr - Chk Rev Dokumentnummer - Document number<br />

UTSBP Bertil Planeskog, 5423 A<br />

BILAGA 1- Findhole.m<br />

%function findhole(n,rotation,dist)<br />

%Examensarbete Bertil Planeskog - Atlas Copco Rock Drills AB<br />

%Elektronikingenjör <strong>Örebro</strong> Universitet HT-01<br />

%Handledare Hans Gustavsson (Atlas Copco), Roger Gustavsson (<strong>Örebro</strong><br />

Universitet)<br />

%<br />

%-----------------------------------------------------------------------<br />

%Hållokalisering<br />

%-----------------------------------------------------------------------<br />

%<br />

%findhole(nr som anger fillnamn 'borrhål(nr).jpg', rotation av bild i grader,<br />

avstånd till hål i cm)<br />

%<br />

%-----------------------------------------------------------------------<br />

%FILTRERING AV BILD<br />

%-----------------------------------------------------------------------<br />

n=19;<br />

rotation=0;<br />

dist=100;<br />

%if nargin =10<br />

filnamn=['borrhål1',n+38,'.jpg'];<br />

end<br />

if n>=20<br />

filnamn=['borrhål2',n+28,'.jpg'];<br />

end<br />

if n>=30<br />

filnamn=['borrhål3',n+18,'.jpg'];<br />

end<br />

if n>=40<br />

filnamn=['borrhål4',n+8,'.jpg'];<br />

end<br />

I = imread(filnamn);<br />

%I=imrotate(I,rotation);<br />

I = imcrop(I,[80 30 239 239]); %skära ut den bild som ska användas<br />

figure,imshow(I);<br />

hold on;<br />

I=rgb2gray(I); %konvertering till gråskala<br />

%figure,imshow(I);<br />

%hold on;<br />

I=histeq(I,128); %Histogram equation<br />

%figure,imshow(I);<br />

%hold on;<br />

I = medfilt2(I, [6 6]); %medianfiltrering<br />

%figure,imshow(I);<br />

%hold on;<br />

BW1=im2bw(I,0.032); %konvertering till svartvit<br />

%figure,imshow(BW1);<br />

%hold on;<br />

BW1=dilate(BW1,ones(9)); %svällning av de ickesvarta områden för att<br />

minska sprickor mm<br />

%figure,imshow(BW1);<br />

%hold on;<br />

%-----------------------------------------------------------------------<br />

%hitta topp<br />

%-----------------------------------------------------------------------<br />

kol=10;<br />

rad=10;<br />

hit=0;<br />

while (hit == 0) %hitta högsta punkt<br />

% plot(kol,rad,'go');<br />

30 (41)<br />

if (BW1(rad,kol)== 0) & (BW1(rad+10,kol) == 0) & (BW1(rad+10,kol-8)<br />

== 0) &(BW1(rad+10,kol+8) == 0)<br />

break;<br />

end<br />

kol=kol+5;<br />

if kol >= 230<br />

kol = 10;<br />

rad=rad+1;<br />

if rad>=230<br />

break;<br />

end<br />

end<br />

end<br />

koord_top = [rad kol]; %koordinat för den högsta punkten<br />

plot(kol,rad,'yo');<br />

%-----------------------------------------------------------------------<br />

%hitta vänstra punkt<br />

%-----------------------------------------------------------------------<br />

kol=10;<br />

rad=10;<br />

hit=0;<br />

while (hit == 0) %hitta vänstra punkt<br />

% plot(kol,rad,'go');<br />

if (BW1(rad,kol)== 0) & (BW1(rad,kol+10) == 0) & (BW1(rad+8,kol+10)<br />

== 0) & (BW1(rad-8,kol+10) == 0)<br />

break;<br />

end<br />

rad=rad+5;<br />

if rad >= 230<br />

rad = 10;<br />

kol=kol+1;<br />

if kol>=230<br />

break;<br />

end<br />

end<br />

end<br />

koord_left = [rad kol]; %koordinat för den vänstra punkten<br />

plot(kol,rad,'yo');<br />

%-----------------------------------------------------------------------<br />

%hitta botten<br />

%-----------------------------------------------------------------------<br />

kol=10;<br />

rad=230;<br />

hit=0;<br />

while hit==0 %hitta nedersta punkt<br />

% plot(kol,rad,'go');<br />

if (BW1(rad,kol)== 0) & (BW1(rad-10,kol) == 0) & (BW1(rad-10,kol-8)<br />

== 0) &(BW1(rad-10,kol+8) == 0)<br />

break;<br />

end<br />

kol=kol+5;<br />

if kol >= 230<br />

kol = 10;<br />

rad=rad-1;<br />

if rad

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!