Filtracja 2D 1 Filtracja w domenie częstotliwości 2 Filtracja
Transkrypt
Filtracja 2D 1 Filtracja w domenie częstotliwości 2 Filtracja
Teoria Sygnałów IIr Geofizyka 2016/2017 copyright: M. Dwornik [email protected] Filtracja 2D Filtracja dwuwymiarowa w większości przypadków opiera się na tych samych zasadach, co filtracja jednowymiarowa. Przykładami sygnałów dwuwymiarowych w geofizyce są tomogramy, sekcje sejsmiczne, mapy rozkładów wartości parametrów (np. gęstości, podatności magnetycznej, oporności, etc.). Większość przedstawionych poniżej poleceń wymaga zainstalowania biblioteki Image Processing Toolbox w pakiecie MatLAB. 1 Filtracja w domenie częstotliwości Dla sygnałów dwuwymiarowych filtracja w domenie częstotliwości polega, podobnie jak w przypadku sygnałów 1D, na wymnożeniu widma obrazu przez maskę filtra. Do obliczenia prostej i odwrotnej szybkiej transformaty Fouriera używamy w tym wypadku poleceń: fft2 i ifft2. W wyniku działania polecenia fftshift punkt zerowej częstotliwości (fx,fy) znajduje się w środku obrazu. Przykładowe maski filtrów dolnoprzepustowych (D0 - częstość odcięcia, D(u,v) - odległość od środka obrazu) przedstawiono na równ.1-3: ( H(u, v) = 1 D(u, v) ¬ D0 0 D(u, v) > D0 (1) H(u, v) = 1 1 + (D(u, v)/D0 )2n (2) H(u, v) = exp 2 −D2 (u, v) 2 · D02 (3) Filtracja liniowa w domenie przestrzeni Filtracja liniowa w domenie przestrzeni polega na splocie maski filtru wraz obrazem. Zasady tworzenia masek oraz filtracji są identyczne jak w przypadku sygnałów jednowymiarowych (suma elementów maski dolnoprzepustowej musi być równa 1.0, górnoprzepustowej 0.0). Przykładowe maski przedstawiono poniżej (od lewej: uśredniająca, Prewitta pozioma, Sobela pionowa, laplasjan wyostrzający): 0.1 0.1 0.1 0.1 0.2 0.1 0.1 0.1 0.1 1 1 1 0 0 0 −1 −1 −1 −1 0 1 −2 0 2 −1 0 1 −1 −1 −1 −1 9 −1 −1 −1 −1 Operację filtracji dwuwymiarowej dokonujemy z wykorzystaniem polecenia: imfilter (obraz, maska, opcje). Do tworzenia masek można wykorzystać polecenie fspecial(). W przypadku filtracji górnoprzepustowej przydatne jest polecenie edge(), wewnątrz którego zaimplementowano różne rodzaje filtracji służących wykrywaniu krawędzi. Dodatkowo polecenie to umożliwia automatyczną binaryzację i wycienianie krawędzi. 3 Filtracja nieliniowa w domenie przestrzeni Pakiet MatLAB udostępnia rozmaite filtracje nieliniowe w ramach biblioteki Image Processing Toolbox. Do najważniejszych zaliczyć można: • medfilt2(obraz, [rozmiar]); - filtracja medianowa 1 Teoria Sygnałów IIr Geofizyka 2016/2017 copyright: M. Dwornik [email protected] • wiener2(obraz, [rozmiar]); - filtracja adaptacyjna Wienera • entropyfilt(obraz, [rozmiar]); - zwraca wartość entropii E w blokach o zadanym rozmiarze (domyślnie 9x9 pikseli), obliczoną wg wzoru: E=− N X log p(n) · p(n) (4) n=0 N - ilość poziomów intensywności p(n) - prawdopodobieństwo wystąpienia piksela o intensywności n • stdfilt(obraz, [rozmiar]) - dla każdego piksela zwraca wartość odchylenia standardowego z otoczenia. • rangefilt(obraz, [rozmiar]) - zwraca różnicę pomiędzy maksimum i minimum w otoczeniu danego piksela 4 Przydatne polecenia MatLAB dla obrazów Do najistotniejszych komend dostępnych dla sygnałów 2D zaliczyć należy: 1. Operacje I/O • • • • imread(plik), imwrite(zmienna, plik) - odczyt / zapis do pliku imshow(obraz) - wyświetlenie obrazu imagesc(obraz, [min max]) - wyświetlenie obrazu z zadanego zakresu imhist(obraz,ile) - wyświetlenie histogramu obrazu 2. Konwersje typów • • • • rgb2gray() - konwersja obrazu kolorowego na monochromatyczny double(a)/255 - konwersja uint8 na double uint8(255*a) - konwersja double na uint8 rgb2hsv, rgb2ycbcr() - konwersja z RGB na inne przestrzenie barwne 3. Kalibracje i normalizacje • imadjust() - normalizacja obrazu • histeq() - wyrównanie histogramu • imrotate() - rotacja obrazu 4. Inne • • • • • 5 imnoise() - dodawanie szumu do obrazu bwdist() - mapa odległości od najbliższego punktu (dla obrazów logicznych) bwlabel() - segmentacja połączona z etykietowaniem imfill(obraz, ’holes’) - wypełnienie dziur na obrazie logicznym radon(), iradon() - prosta i odwrotna transformata Radona. Zadania 1. Wczytaj obraz cameraman.tif. Dokonaj jego konwersji do double, a następnie dokonaj filtracji dolnoprzepustowej w domenie częstotliwości. 2. Wczytaj obraz pout.tif. Porównaj działanie wyrównania histogramu z normalizacją. 2 Teoria Sygnałów IIr Geofizyka 2016/2017 copyright: M. Dwornik [email protected] 3. Wczytaj obraz cameraman.tif. Dodaj do niego szum (imnoise), a następnie korzystając z dostępnych metod spróbuj odszumić obraz. 4. Wczytaj obraz coins.png. Policz sumaryczną długość obwodów monet. 5. Wczytaj obraz cameraman.tif. Dokonaj detekcji krawędzi korzystając z masek Sobela i Prewitta. Wynik porównaj z działaniem funkcji edge. 3