background image

AKADEMIA GÓRNICZO – HUTNICZA 

im. Stanisława Staszica w Krakowie 

Wydział Inżynierii Mechanicznej i Robotyki 

 

 
  
 
 
 
 
 
 
 
 
 
 
 

 
 
 

 

Systemy Wizyjne 

Sprawozdanie z laboratorium nr 3 MatLab 

 

 

 
 

 
 
 

Damian Bubak 

grupa 23, rok III, Mechatronika (IMiR) 

Data wykonania ćw: 24.03.14r. 

Godzina 10:30

background image

 

Katedra Robotyki i Mechatroniki  

 

Systemy wizyjne.  

Matlab_Cw_3_4 

Temat: 

Analiza obrazu w programie Matlab  

Cel ćwiczenia : Nabycie umiejętności w implementacji zaawansowanych procedur analizy obrazu.  

Metody wstępnego przetwarzania i analizy obrazów ,  cechy obrazu , współczynniki kształtu

 ,  

funkcje 

Matlab'a

 

Prowadzący: dr inż. Piotr KOHUT 

Grupa: 

 

Imię i nazwisko: 

Data: 

Uwagi: 

 
 
 
 
 
 
 
 
 
 
 
 
 

 

 

 
Zgodnie z wytycznymi przygotowano obraz zawierający 10 figur geometrycznych. Obraz ten 
następnie poddano obróbce mającej na celu pozyskanie oraz porównanie informacji o obiektach 
na nim się znajdujących.  
 

1.

 

Etap wstępnego przetwarzania obrazów  

W celu usunięcia występujących szumów z obrazu zaprojektować dwa typy filtrów. 

a)

 

Filtry: uśredniający / minimalny / maksymalny / medianowy 
 
 
 
 
 
 

background image

Obraz oryginalny: 

 

 
Wprowadzenie szumów do obrazu dzięki czemu będzie można łatwo zaobserwować efekty 
działania różnych filtrów. Wprowadzony szum typu salt & pepper Polecenie Matlaba: 

gray1 = imnoise(gray,

'salt & pepper'

);

 

 

 
Zastosowanie filtra minimalnego. Białe punkty znikneły natomiast czarne powiększyły się. 
Zatem szumy zostały zlikwidowane połowicznie. Polecenia Matlaba: 

gray2 = colfilt(gray1,[3 3],

'sliding'

,@min);

 

 

background image

 

 
Zastosowanie filtra maksymalnego. W efekcie czarne punkty znikneły natomiast białe 
powiekszyły się. Rezultat podobny do poprzedniego filtra. Polecenie Matlaba: 

gray3 = colfilt(gray1,[3 3],

'sliding'

,@max);

 

 
 

 

 
Zastosowanie filtra uśredniającego. Efektem jest zniknięcie części figur z obrazu, pozostała tylko 
ta która była czarna. Ponadto białe punkty nie znikneły po filtracji. Polecenie Matlaba: 

gray4 = colfilt(gray1,[3 3],

'sliding'

,@mean);

 

background image

 

 
Zastosowanie filtra medianowego. Jak widać filtr ten daje najlepsze efekty dla tego rodzaju 
szumów. Białe i czarne punkty znikneły, pozostają jedynie minimalne nierówności na granicach 
obiektów. Polecenie Matlaba: 
 

gray5 = colfilt(gray1,[3 3],

'sliding'

,@median); 

 

 

 

b)

 

Filtry morfologiczne: erozja / dylatacja / otwarcie / zamknięcie morfologiczne. 

Zastosowanie erozji morfologicznej. Białe punkty znikneły, ale czarne powiększyły się. 

background image

Polecenie Matlaba:  
 

gray6 = imerode(gray1,se);

 

 

 

 
Zastosowanie filtra dylatacji morfologicznej. Czarne punkty znikneły ale białe powiększyły się. 
Polecenie Matlaba: 
 

gray7 = imdilate(gray1,se);

 

 

 

 
Zastosowanie filtra otwarcia morfologicznego. Białe punkty znikneły, natomiast czarne 

background image

pozostały lecz zniekształcone. Polecenie Matlaba: 
 

gray8 = imopen(gray1,se);

 

 

 

 
Zastosowanie filtra zamknięcia morfologicznego. Czarne punkty znikneły, natomiast białe 
pozostały lecz zniekształcone. Polecenie Matlaba: 
 

gray9 = imclose(gray1,se);

 

 

 

 
 

background image

Najlepsze rezultaty możemy osiągnąć stosując różne kombinacje wyżej wymienionych filtrów 
morfologicznych. Po przeprowadzeniu kilku prób kombinacja filtrów imclose / imerode / 
imerode / imdilate / imdilate 
dała wystarczająco dobry wynik, tzn. taki który pozwoli na 
przeprowadzenie dalszych operacji i analize obrazu. Jedynym efektem ubocznym są nierówności 
brzegów figur.  
 

 

 
Po przetestowaniu możliwości wszystki filtrów należy zauważyć że to jak dobre rezultaty 
przyniesie zastosowanie jakiegoś filtra zależy od rodzaju szumów. W naszym przypadku były to 
szumy typu salt&pepper. Zdecydowanie najlepiej poradził sobie z tymi szumami filtr 
medianowy. Pokazano również że przy zastosowaniu odpowiedniej kombinacji filtrów 
morfologicznych możliwe jest uzyskanie dobrych rezultatów choć jak widać na zamieszczonych 
screen’ach nie tak dobrych jak filtem medianowym.  
 

2.

 

Etap wstępnego przetwarzania obrazów 

W celu wydobycia z obrazu obiektu o zadanym poziomie jasności (najjaśniejszy / najciemniejszy 
/ średni poziom jasności) na podstawie histogramu, dokonać binaryzacji „przefiltrowanych” 
dwóch obrazów: obrazu I-go filtrem (medianowym) oraz obrazu II-go kombinacją filtrów 
morfologicznych. 
 
Pierwszym  etapen było wyświetlenie histogramu i określenie progów binaryzacji: 
Polecenie Matlaba: 
 

figure (12), imhist(gray5);

 

 
 
 
 
 

background image

 

 

 

Obraz I (filtr medianowy): 
Obiekt najjaśniejszy: 

 

 
 
 
 

background image

Obiekt o średnim poziomie jasności: 

 

 
Obiekt najciemniejszy: 

 

 
 
 
 
 
 

background image

Obraz II ( kombinacja filtrów imclose / imerode / imerode / imdilate / imdilate): 
Obiekt najjaśniejszy: 

 

 
Obiekt o średnim poziomie jasności: 

 

 
 
 
 
 

background image

Obiekt najciemniejszy: 

 

 
Każda figura ma inny kolor, a zatem na histogramie widzimy 10 słupków każdy z nich 
charakteryzuje danych obiekt. Dzięki temu określenie progów binaryzacji jest dość proste. W 
niektórych przypadkach była potrzebna dodatkowa filtracja w celu usunięcia drobnych białych 
punktów. Zastosowanie w tych sytuacjach filtu imopen prawie we wszystkich przypadkach było 
wystarczające. 
 
 
 
 
 
 
 
 

3.

 

Etap analizy obrazów 

Wyznaczyć następujące cechy uzyskanego obiektu: pole powierzchni, środki ciężkości, 
orientację, prostokąt opisany na analizowanym obiekcie
. Współrzędne środków ciężkości oraz 
oś określającą orientację nanieść na obrazy wynikowe. Na podstawie uzyskanych obrazów oraz 
wyznaczonych cech należy odnotować, która z zastosowanych filtracji prowadzi do otrzymania 
lepszych rezultatów. 
 
 
 
 
 
 
 

background image

Obraz I (filtr medianowy): 

 

 
 Obraz II ( kombinacja filtrów imclose / imerode / imerode / imdilate / imdilate): 

 

 
Z porównania dwóch ostatnich obrazów wynika że filtr medianowy daje lepsze rezultaty. 
Obiekty znajdujące się na obrazie po tej filtracji są mniej zdeformowane niż po zastosowaniu 
filtrów morfologicznych. Poniżej przedstawiono w formie tabeli porównanie cech wybranych 
trzech obiektów(Obiekt 1 – pierścień, Obiekt 2 – elipsa, Obiekt 3 – prostokąt): 
 

background image

Obraz 

Obiekt 

Area 

Centroid 

Orientation 

BoundingBox 

Obraz I 

Obiekt 1  17672  471.950  202.740 

-18.595 

385.5 

117.5 

172 

172 

Obiekt 2  22677  204.492  300.016 

-0.011 

82.5 

240.5 

244 

119 

Obiekt 3 

8428  139.496 

78.498 

0.000 

58.5 

51.5 

163 

54 

Obraz II 

Obiekt 1  16781  471.322  202.297 

48.187 

385.5 

118.5 

172 

170 

Obiekt 2  22375  204.805  299.939 

0.119 

83.5 

240.5 

242 

119 

Obiekt 3 

8285  140.124 

78.344 

0.146 

58.5 

52.5 

162 

52 

Różnica 

Obiekt 1 

891 

0.628 

0.443 

-66.783 

-1 

Obiekt 2 

302 

-0.313 

0.077 

-0.130 

-1 

Obiekt 3 

143 

-0.628 

0.154 

-0.147 

-1 

 
Jak widać z porównania obrazów oraz tabeli różnice w otrzymanych wynikach są lecz nie są one 
na tyle duże aby zdyskwalifikować którąś z metod filtracji. Np. różnica w polu dla obiektu 2 
wynosi zaledwie 1,34%  Podkreślić w tym miejscu należy że filtr medianowy w tym przypadku 
przynosi lepsze rezultaty co widać chociażby na obrazie. Krawędzie obiektów lepiej 
odzwierciedlają ich pierwotny kształt. Tak jak wspomniano już wcześniej przydatność 
konkretnego filtru i efekt jaki za jego pomocą osiągniemy zależy między innymi od rodzaju 
szumów na obrazie. W tym przypadku najlepszy okazał się filtr medianowy, a to dlatego że 
właśnie najlepiej nadaje się on do szumów typu salt&pepper które należało usunąć. 
Przeprowadzone analizy pokazują również że pomimo gorszych wyników filtrów 
morfologicznych mogą one być z powodzeniem stosowane do przetwarzania obrazów z takimi 
szumami.