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
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
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);
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);
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ę.
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
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);
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);
Obraz I (filtr medianowy):
Obiekt najjaśniejszy:
Obiekt o średnim poziomie jasności:
Obiekt najciemniejszy:
Obraz II ( kombinacja filtrów imclose / imerode / imerode / imdilate / imdilate):
Obiekt najjaśniejszy:
Obiekt o średnim poziomie jasności:
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.
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):
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
0
-1
0
2
Obiekt 2
302
-0.313
0.077
-0.130
-1
0
2
0
Obiekt 3
143
-0.628
0.154
-0.147
0
-1
1
2
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.