Äwiczenie_3. Filtracja obrazów w programie MATLAB.
Äwiczenie_3. Filtracja obrazów w programie MATLAB.
Äwiczenie_3. Filtracja obrazów w programie MATLAB.
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