HÅLLOKALISERING - Örebro universitet
HÅLLOKALISERING - Örebro universitet
HÅLLOKALISERING - Örebro universitet
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