10.02.2015 Views

Ćwiczenie_3. Filtracja obrazów w programie MATLAB.

Ćwiczenie_3. Filtracja obrazów w programie MATLAB.

Ćwiczenie_3. Filtracja obrazów w programie MATLAB.

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

IV ROK GIK. PRZEDMIOT: CYFROWE PRZETWARZANIE OBRAZU ‐ ĆWICZENIA wersja 130325<br />

• Cel tematu<br />

Ćwiczenie_<strong>3.</strong> <strong>Filtracja</strong> obrazów w <strong>programie</strong> <strong>MATLAB</strong>.<br />

Celem ćwiczenia jest zapoznanie się studentów z zagadnieniem filtracji obrazów cyfrowych oraz<br />

wykonanie przykładowych operacji dostępnych w <strong>programie</strong> <strong>MATLAB</strong>.<br />

• Dane do ćwiczeń<br />

Na ćwiczeniach korzystamy z danych (plik: apollo.tif) zlokalizowanych na dysku „I” w katalogu:<br />

\nborowiec\CPO\T3\<br />

lub na stronie: http://twiki.fotogrametria.agh.edu.pl/bin/view/Dydaktyka/CPOMaterSt<br />

• <strong>Filtracja</strong> obrazu<br />

<strong>Filtracja</strong> jest operacją matematyczną na pikselach obrazu źródłowego w wyniku której uzyskiwany jest<br />

nowy, przekształcony obraz. Filtrację określa się jako przekształcenie kontekstowe, gdyż dla wyznaczenia<br />

nowej wartości piksela obrazu docelowego potrzebna jest informacja z wielu pikseli obrazu źródłowego.<br />

Inaczej mówiąc filtracja to usuwanie szumu z obrazu, czyli wykonanie korekcji określonych wad obrazu,<br />

poprawa jego jakości, wzmocnienie pewnych elementów zgodnych z posiadanym wzorcem.<br />

<strong>Filtracja</strong> przestrzenna<br />

<strong>MATLAB</strong> oferuje wiele funkcji realizujących filtrację. Najpopularniejszymi są dwie funkcje. Pierwsza z nich<br />

zapewnia filtrację liniową. Jej uproszczone wywołanie ma postać:<br />

G = imfilter(A, w), gdzie<br />

A – obraz wejściowy,<br />

w – zadana przez nas macierz filtru,<br />

G – obraz wynikowy.<br />

Macierz filtru możemy ustawić ręcznie, albo skorzystać z drugiej funkcji, która udostępnia zestaw<br />

standardowych filtrów liniowych i ma ogólną postać:<br />

w = fspecial('type', parametry opcjonalne).<br />

Parametrów opcjonalnych używa się głównie do określenia rozmiarów filtru, a jeżeli je pominiemy to<br />

zostaną przyjęte wartości domyślne i są one różne dla różnych typów.<br />

Pierwszy parametr, 'type' definiuje rodzaj wybranego filtru i może przyjąć następującą postać:<br />

• 'average' ‐ filtr uśredniający o domyślnym rozmiarze 3 x 3,<br />

• 'disk' ‐ kołowy filtr uśredniający wewnątrz macierzy kwadratowej o domyślnym promieniu 5,<br />

• 'gaussian' ‐ uśredniający filtr gausowski o domyślnym rozmiarze 3 x 3 i odchyleniu standardowym 0.5,<br />

• 'laplacian' ‐ filtr Laplace'a,<br />

• 'log' ‐ połączony filtr Laplace'a i Gaussa,<br />

• 'prewitt' – filtr Prewitta do wykrywania krawędzi o domyślnym rozmiarze 3 x 3; standardowo filtr<br />

wykrywa krawędzie pionowe. W celu wykrycia poziomych należy otrzymaną macierz transponować,<br />

• 'sobel' ‐ analogiczny filtr Sobela do wykrywania krawędzi,<br />

• 'unsharp' ‐ filtr podkreślający krawędzie obiektów.<br />

Z filtrów nieliniowych najczęściej używany jest medianowy, wywoływane przez następującą funkcję:<br />

M = medfilt2(A, [m n]), gdzie<br />

A – obraz wejściowy,<br />

[m,n] – rozmiar filtru.<br />

CPO ‐ ćw.<strong>3.</strong> <strong>Filtracja</strong> obrazów w <strong>programie</strong> <strong>MATLAB</strong> ‐ Natalia Borowiec, Jakub Kolecki


IV ROK GIK. PRZEDMIOT: CYFROWE PRZETWARZANIE OBRAZU ‐ ĆWICZENIA wersja 130325<br />

Filtr medianowy jest to filtr stosowany do usuwania zakłóceń z obrazu w postaci szumów. Działanie filtra<br />

jest szczególnie przydatne w przypadku zakłóceń typu "pieprz i sól". Filtry medianowe przetwarzają dany<br />

punkt obrazu jako medianę z wartości punktów go otaczających. Mediana to w uproszczeniu wartość<br />

średnia w uporządkowanym rosnąco ciągu wartości pikseli całego rozważanego otoczenia przetwarzającego<br />

piksela.<br />

Filtry morfologiczne<br />

Termin morfologia oznacza m. in. badanie „struktury i kształtu”. W przetwarzaniu obrazów morfologię<br />

matematyczną wykorzystuje się do analizy cech geometrycznych wyróżnionych obiektów obrazu. Metody<br />

morfologii matematycznej pozwalają rozpoznawać budowę obiektów, a także przetwarzać ich kształt<br />

poprzez analizę badanego obrazu za pomocą specjalnych obiektów tzw. elementów strukturalnych.<br />

Najpopularniejszymi z tej grupy filtrami jest erozja i dylatacja. W <strong>MATLAB</strong>’ie funkcje te definiuje się w<br />

następujący sposób:<br />

e = imerode(A, se)<br />

d = imdilate(A, se), gdzie<br />

A – obraz wejściowy,<br />

se –element strukturalny.<br />

Złożenie obu funkcji tworzy (zależnie od kolejności złożenia) operacie otwarcia i zamknięcia:<br />

e = imopen(A, se)<br />

d = imclose(A, se).<br />

Inną częściej stosowaną funkcją morfologiczną stosowaną na obrazach binarnych jest:<br />

M = bwmorph(BW,’operacja’),<br />

BW – binarny obraz wejściowy.<br />

Operacje to m. In.:<br />

‘dilate’, ‘erode’, ‘thin’ – ścienianie, ‘fill’ – wypełnianie. Inne opcje należy sprawdzić w helpie.<br />

Zadanie:<br />

1. Wczytać oraz wyświetlić obraz apollo.tif – nazwać obraz jako I (przetwarzany obraz ma mieć ciagle<br />

taka samą nazwę).<br />

2. Usunąć szumy – zastosować filtr medianowy, z filtrem [7,7]. Wyświetlić obraz, a rysunek nazwać<br />

Filtr Medianowy ‐ imshow(I); title('Filtr Medianowy ');<br />

<strong>3.</strong> Na wynikowym obrazie I zastosować filtr Gausa. Filtr nazwać F_gauss. Wyświetlić i opisać obraz Filtr<br />

medianowy + Gauss.<br />

4. Na wynikowym obrazie I zastosować filtr Wiener’a, oczko [9,9]. Funkcja I = wiener2(I,[9 9]). Obraz<br />

wyświetlić i opisać Filtr medianowy + Gauss + Wiener.<br />

5. Na wynikowym obrazie I zastosować filtr podkreślający krawędzie obiektów, ustawić parametr 0,2.<br />

Filtr nazwać F_unsharp. Wynikowy obraz wyświetlić i nazwać Filtr medianowy + Gaussa + Wiener +<br />

Unsharp.<br />

6. Na wynikowym obrazie I zastosować filtr Laplace'a. Filtr nazwać F_Laplace, a wyświetlony obraz<br />

nazwać Filtr medianowy + Gaussa + Wiener + Unsharp + Laplace.<br />

7. Powstały obraz w wyniku zastosowania kolejnych filtrów zamienić na czarno‐biały i nazwać go BW.<br />

8. Na obrazie binarnym zastosować dylatację 5x. Obraz wyświetlić.<br />

9. Na obrazie wynikowym zastosować ścienianie. Obraz wyświetlić.<br />

10. Nałożenie krawędzi na obraz<br />

CPO ‐ ćw.<strong>3.</strong> <strong>Filtracja</strong> obrazów w <strong>programie</strong> <strong>MATLAB</strong> ‐ Natalia Borowiec, Jakub Kolecki

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

Saved successfully!

Ooh no, something went wrong!