background image

AKADEMIA GÓRNICZO – HUTNICZA 

im. Stanisława Staszica w Krakowie 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
 
 
 
 
 
 

 
 

Systemy Wizyjne 

 

Sprawozdanie z laboratorium nr 2 MatLab 

 

 

 

 

 

 

 

 

 

 

Michał Grudziński  

Maciej Bajor 

Mechatronika (IMiR)  

grupa 26, rok III 

background image

Zadanie 1 
 

1.  Wczytanie obrazu do przestrzeni roboczej MatLaba oraz wyświetlenie go.  

Polecenie: 

 

img = imread(

'photo1.jpg'

); 

figure(1), imshow(img); 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

2.  Konwersja obrazu do skali szarości.  

Polecenie: 

 

gray = rgb2gray(img); 

 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 

background image

3.  Wykonanie histogramu dla obrazu w skali szarości.  

Polecenie: 

 

imhist

(gray); 

 
 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

4.  W związku z brakiem możliwości jednoczesnego wyodrębnienia wszystkich  

obiektów, zastosowano różne progi binaryzacji. Następnie uzyskane obrazy 
poddano filtracji. 
Poniżej proces binaryzacji podkładki (zaznaczona na czerwono), pozostałe 
obiekty były wyodrębnione analogicznie. 
Polecenie: 
  

bw = (gray>=0 & gray<=90); 
imshow(bw); 

 

 

 
 
 
 
 
 
 
 
 
 
 

background image

5.  Przeprowadzenie filtracji z zastosowaniem filtrów erozji i dylatacji 

morfologicznej z elementem strukturalnym w kształcie dysku. 
Polecenie: 

 

se = strel(

'disk'

,5);  

bw1 =imdilate(bw,se); 
bw1 =imerode(bw1,se); 
imshow(bw1); 
 
 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

6.  Przeprowadzenie segmentacji i nadanie etykiet obiektom. Czarne tło ma wartość 

zero a kolejne obiekty przyjmują naturalne wartości. 
Polecenie: 

 

[L1, num1] = bwlabel(bw1,8); 

 
 
 
 
 
 
 
 
 
 
 

background image

7.  Znajomość przypisanej etykiety pozwala na wyodrębnienie i wyświetlenie 

obiektu. 
Polecenie: 

 

bw1_1 = ismember(L,10); 
imshow(bw1_1); 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

8.  Zsumowanie wyodrębnionych obiektów. 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 

background image

Zadanie 2 

 
 

Instrukcja REGIONPROPS umożliwia wybór i pomiar charakterystyk elementów 
obrazu.  
Składnia funkcji: FEATS = REGIONPROPS(CC,PROPERTIES)   
 
CC- macierz etykiet, lub obraz;  
PROPERTIES- wybrana cecha do pomiaru. 

 

 

Dostępne parametry: 
 

 

All - pomiar wszystkich parametrów 

 

Basic - pomiar parametrów bazowych(Area, Centroid, Bounding Box) 

 

Area - zwrócenie liczby pikseli z których składa się obiekt 

 

BoundingBox  -  przedstawia  najmniejszy  prostokąt  w  jakim 
mieści się dany obiekt  

 

Centroid - środek ciężkości obiektu 

 

MajorAxisLength  –  zwraca  długość  (w  pikselach)  głównej  osi 
elipsy,  która  ma  ten  sam  drugi  moment  centralny  taki  sam  jak 
region 

 

MinorAxisLength – j.w. lecz w odniesieniu do małej osi elipsy 

 

Eccentricity  –  zwraca  wartość  między  0  a  1.  Stosunek 
odległości  między  ogniskiem  elipsy  i  długością  jej  osi 
wielkiej. 

 

Orientation  –  zwraca  kąt  (w  stopniach)  między  osią  x  a 
główną osią elipsy 

 

Image  -  zwraca  obcięty  obraz  obiektu  wielkości  BoundingBox 
danego obiektu  

 

FilledImage  -  zwraca  obraz  jw.  wraz  z  wypełnionymi  lukami 
wewnątrz obiektu  

 

Filled Area - zwraca liczbę pikseli FilledImage 

 

ConvexHull 

– 

zwrot 

współrzędnych 

wierzchołków 

najmniejszego wielokąta wypukłego, zawierającego obiekt.  

 

ConvexImage  –  zwraca  obraz  obiektu  z  wyeliminowanymi 
wklęśnięciami, rozmiarze BoundingBox 

 

ConvexArea - zwraca liczbę pikseli ConvexImage 

 

EulerNumber – równy liczbie obiektów w regionie minus liczba 
dziur w nim 

background image

 

Extrema –zwraca współrzędne punktów charakterystycznych 

 

EquivDiameter – średnica koła o tym samym polu co region 

 

Solidity – Stosunek między Area, a ConvexArea 

 

Extent – Stosunek między Area, a BoundingBox Area 

 

PixelIdxList – indeksy pikseli danego obiektu 

 

PixelList – macierz współrzędnych pikseli danego obiektu 

 

Perimeter  -  zwraca  wartość  skalarną  określającą  długość  krawędzi 
obiektu 

 

Zadanie 3 

 

 

Środki ciężkości: 
Polecenie: 
 

% Wybranie cech obrazu oraz prezentacja położenia, orientacji,

 

% prostokąta opisanego 

 

[L,num] = bwlabel(bw_ost,8);

 

feats = regionprops(L,

'All'

);

 

% Położenie

 

figure(9)

 

hold 

on

 

h1 = imshow(L);

 

r1 = 100;

 

r2 = 300;

 

for

 i=1:size(feats)   

 

h1 =  line(feats(i).Centroid(1),feats(i).Centroid(2),

'Marker'

,

'.'

,

'MarkerEdgeColor'

,

'r'

);

 

end

 

hold 

off

 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 

background image

 

Orientacja 

Polecenie: 

 

% Orientacja

 

figure(10)

 

hold 

on

 

h2 = imshow(L);

 

for

 i=1:size(feats)   

 

h2 = line([feats(i).Centroid(1),feats(i).Centroid(1)+r2*cos(feats(i).Orientation*(pi/180))

 

],[feats(i).Centroid(2),feats(i).Centroid(2)+r2*sin(feats(i).Orientation*(pi/180))]);

 

end

 

hold 

off

 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

background image

 

Prostokąt opisany na obiekcie 
Polecenie: 

 

% Njmniejszy prostokąt

 

figure(11)

 

hold 

on

 

h3 = imshow(L);

 

for

 i=1:size(feats)    

 

h3 = 
rectangle(

'position'

,[feats(i).BoundingBox(1),feats(i).BoundingBox(2),feats(i).BoundingBox

(3),feats(i).BoundingBox(4)],

'EdgeColor'

,

'r'

);

 

end

 

hold 

off

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

background image

Zadanie 4 

 

 

Polecenie: 

 

% Wyliczenie charakterystyk

 

for

 i=1:size(feats)

 

   

 

 

%form_factor

 

   

 

 Char(i,1) = 4*pi*feats(i).Area / feats(i).Perimeter^2;

 

   

 

 

%roundness

 

   

 

 Char(i,2) = 4*feats(i).Area / (pi*feats(i).MajorAxisLength^2);

 

   

 

 

%acpect_ratio

 

  

 

 Char(i,3) = feats(i).MajorAxisLength / feats(i).MinorAxisLength;

 

   

 

 

%solidity

 

    

 

Char(i,4) = feats(i).Solidity;

 

  

 

%compactness

 

   

 

 Char(i,5) = sqrt(4*feats(i).Area/pi) / feats(i).MajorAxisLength;

 

end

 

Char

 

 

 

Opis: 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

background image

 

Wyniki: 
 

Nr obj.\Cecha

 

Form Factor

 

Roundness

 

Aspect Ratio

 

Solidity

 

Compactness

 

1

 

0.7119

 

0.6783

 

1.4027

 

0.9568

 

0.8236

 

 

2

 

 

0.6528

 

 

0.7621

 

 

1.0652

 

 

0.9042

 

 

0.8730

 

 

3

 

 

0.7965

 

 

0.7670

 

 

1.0359

 

 

0.8823

 

 

0.8758

 

4

 

0.2246

 

0.1639

 

4.8430

 

0.7116

 

0.4048

 

5

 

0.6345

 

0.7982

 

1.0108

 

0.8726

 

0.8934

 

 

6

 

 

0.6304

 

 

0.5803

 

 

1.0163

 

 

0.7395

 

 

0.7618

 

 

7

 

 

0.6969

 

 

0.6910

 

 

1.3791

 

 

0.9702

 

 

0.8313

 

8

 

0.6702

 

0.7843

 

1.0332

 

0.9037

 

0.8856

 

9

 

0.2016

 

0.4800

 

1.0424

 

0.5987

 

0.6928

 

 

10

 

 

0.7344

 

 

0.8843

 

 

1.0804

 

 

0.9852

 

 

0.9404

 

 

11

 

 

0.6390

 

 

0.5416

 

 

1.7478

 

 

0.9718

 

 

0.7359

 

 

 

Zawarte  w  tabeli  charakterystyki  pozwalają  na  identyfikację  kształtu  obiektu.  Warto 

zauważyć,  iż  powiększenie  obiektu  nie  ma  na  nie  wpływu,  w  przeciwieństwie  do 

orientacji. 

 

Śruba ma wyraźnie większy współczynnik Aspect Ratio. Podkładkę charakteryzuje dość 

duży  współczynnik  Form  Factor  oraz  Roundness.  Nakrętkę  identyfikuje  niski  poziom 

Roundness  przy  jednoczesnym  wysokim  współczynniku  Compactness.  Obiekt  z 

numerem  9  można  rozpoznać  na  podstawie  niskiej  wartości  Form  Factor  oraz 

Roundness przy Wartości około 1 dla współczynnika Aspect Ratio. 

 

Ogólnie  parametr  Aspect  Ratio  pozwala  na  wykrycie  obiektów  symetrycznych.  Mały 

współczynnik  Compactness  charakteryzuje  obiekty  o  smukłym  kształcie.  Natomiast 

Solidity określa drążenia elementów, im większe drążenie, tym współczynnik przyjmuje 

niższa wartość. Dla obiektów pełnych Solidity wynosi 1.