Filtracja dolnoprzepustowa obrazu: Definicja, działanie i zastosowanie
- Szczegóły
Przetwarzanie sygnałów towarzyszy każdemu człowiekowi codziennie. Wszystkie bodźce (sygnały) odbierane z otaczającego nas świata, tj. dźwięk, światło, temperatura są przetwarzane w impulsy elektryczne, przesyłane następnie do mózgu. Tam następuje analiza i interpretacja odebranych sygnałów, w wyniku której otrzymujemy informacje płynące z danego rodzaju sygnału (np. rozpoznajemy kształt przedmiotu, odczuwamy ciepło itp.). W podobny sposób działa Cyfrowe Przetwarzanie Sygnałów (CPS).
W tym przypadku sygnał analogowy konwertuje się na sygnał cyfrowy przez przetwornik analogowo-cyfrowy. Następnie przy użyciu komputera przetwarzane są dostarczone sygnały. W systemach CPS wykorzystuje się również komputerowe urządzenia peryferyjne, wyposażone w procesory sygnałowe, dzięki którym możliwe jest przetwarzanie sygnałów w czasie rzeczywistym. Niekiedy potrzebna jest ponowna konwersja sygnału do postaci analogowej (np. do sterowania jakiegoś urządzenia). W tym celu wykorzystuje się przetworniki cyfrowo-analogowe.
Cyfrowe przetwarzanie sygnałów ma bardzo szerokie zastosowanie. Może być wykorzystywane m.in. do przetwarzania dźwięku, rozpoznawania i przetwarzania mowy, czy do przetwarzania obrazów. To ostatnie zagadnienie będzie przedmiotem tego artykułu, a konkretnie omówimy w nim podstawową operację wykonywaną w procesie cyfrowego przetwarzania obrazów, tj. filtrację splotową.
Czym jest przetwarzanie obrazów?
Mówiąc w najprostszy sposób, przetwarzanie obrazów polega na przekształceniu obrazu wejściowego w obraz wyjściowy. Celem tego procesu jest selekcja informacji - wybranie najistotniejszych (np. kształtu) oraz wyeliminowanie zbędnych (np. szumów).
Proces cyfrowego przetwarzania obrazów obejmuje szereg różnorodnych operacji, m.in.:
Przeczytaj także: Definicja i pomiar filtracji kłębuszkowej
- filtrację,
- binaryzację,
- segmentację,
- transformację geometryczną,
- kodowanie,
- kompresję.
Jak już wspominaliśmy, w tym artykule omówimy szerzej operację filtracji obrazów.
Filtracja splotowa
Zarówno w domenie jednowymiarowej, przykładowo dla sygnałów audio, tak również dla dwóch wymiarów istnieją odpowiednie narzędzia służące przeprowadzeniu operacji na sygnałach, w tym przypadku na obrazach. Jednym z takich narzędzi jest filtracja. Polega ona na wykonaniu na pikselach obrazu wejściowego pewnych operacji matematycznych, w wyniku których otrzymywany jest nowy obraz. Najczęściej filtrację wykorzystuje się w celu poprawy jakości obrazu lub wydobycia z niego istotnych cech.
Podstawową operacją w metodzie filtracji jest operacja splotu 2D. Pozwala ona na aplikowanie przekształceń obrazu z użyciem odpowiednio przygotowanych do tego filtrów w postaci macierzy współczynników. Wykorzystanie filtrów polega na obliczeniu nowej wartości punktu na podstawie wartości punktów znajdujących się w jego otoczeniu. Do obliczeń wykorzystuje się tzw. maski, zawierające wagi pikseli z otoczenia danego piksela. Najczęściej spotykane rozmiary masek to 3×3, 5×5 i 7×7. Poniżej przybliżono proces przeprowadzenia konwolucji obrazu oraz filtra.
Przyjmując, że obraz reprezentowany jest przez macierz o wymiarach 5×5, zawierającą wartości kolorów, a filtr reprezentowany macierzą 3×3, przeprowadzono modyfikację obrazu poprzez splecenie jednej z nich z drugą.
Pierwsze, co należy wykonać to zamiana wierszy, a następnie kolumn w macierzy filtra (wiersz/kolumna pierwsza → wiersz/kolumna ostatnia - i na odwrót). Należy również przyjąć, że środek jądra filtracji h(0,0) znajduje się w środku macierzy, tak jak to pokazano na poniższym rysunku. W związku z taką konwencją indeksy (m,n) oznaczające wiersze i kolumny macierzy filtra będą ujemne i dodatnie.
Przeczytaj także: Webber AP8400 - wymiana filtrów
Uznając macierz filtra (kolor niebieski) za odwróconą w pionie i poziomie, możemy przeprowadzić operację filtracji. Dokonujemy tego umieszczając element h(0,0) → h(m,n) macierzy niebieskiej w elemencie s(-2,-2) → s(i,j) macierzy obrazu (kolor żółty). Następnie wymnażamy nachodzące na siebie wartości obu macierzy i sumujemy. W ten sposób otrzymaliśmy wynik splotu dla komórki o(-2,2) obrazu wyjściowego.
Kolejne etapy procesu są analogiczne, przesuwamy środek macierzy niebieskiej do elementu s(-2,-1), wymnażamy nachodzące na siebie wartości, sumujemy, otrzymując wynik wyjściowy. Pola, które wykraczają poza obszar macierzy s(i,j) uznajemy za niezdefiniowane, w związku z tym wartości w tych miejscach nie istnieją, a więc nie dokonujemy mnożenia.
Zastosowanie filtracji splotowej
W zależności od rodzaju filtra wyróżnia się różne zastosowania filtracji splotowej. Filtry dolnoprzepustowe wykorzystywane są do usuwania szumów w obrazach, natomiast filtry górnoprzepustowe stosowane są do wyostrzania lub podkreślenia krawędzi.
W celu zobrazowania działania poszczególnych rodzajów filtrów spróbujmy zastosować praktyczny przypadek konwolucji na rzeczywistym obrazie. Poniższy obraz w formacie „.jpg” został wczytany jako macierz MxNx3 pikseli. Na jego przykładzie pokażemy podstawowe efekty możliwe do uzyskania, dzięki zastosowaniu filtracji splotowej.
Zastosowanie filtrów w przetwarzaniu obrazów oznacza, że do obliczenia nowej wartości punktu brane są pod uwagę wartości punktów z jego otoczenia. Każdy piksel z otoczenia wnosi swój wkład - wagę podczas przeprowadzania obliczeń. Wagi te zapisywane są w postaci maski. Typowe rozmiary masek to 3 x 3, 5 x 5 bądź 7 x 7. Rozmiary masek są z reguły nieparzyste ponieważ piksel na środku reprezentuje piksel dla którego wykonywana jest operacja przekształcania filtrem. Wówczas nową wartość składowej punktu a o współrzędnych (i, j) obliczymy według następującego wzoru. Tak otrzymaną sumę dzielimy przez sumę wszystkich wag maski, jeżeli jest ona różna od 0. Filtrację przeprowadza się osobno dla każdej składowej obrazu.
Przeczytaj także: Optymalne rozcieńczenie bimbru
Jak łatwo zauważyć próba zastosowania filtracji dla punktów położonych na krawędzi obrazu, prowadzi do sytuacji, w której maska "wystaje" poza przetwarzany obraz. Istnieje kilka sposobów obejścia tego problemu. Jednym z nich jest pominięcie procesu filtracji dla takich punktów, innym jest zmniejszenie obrazu po filtracji o punkty, dla których proces ten nie mógł być wykonany.
Filtry dolnoprzepustowe
Filtry dolnoprzepustowe (ang. low-pass) przepuszczają elementy obrazu o małej częstotliwości. Elementy o wysokiej częstotliwości (szumy, drobne szczegóły) są natomiast tłumione bądź wręcz blokowane. Wynikiem działania takich fitrów jest zredukowanie szumów, w szczególności gdy jest on jedno, dwupikslowy ale również wygładzenie i rozmycie obrazu.
Działanie filtra dolnoprzepustowego polega na tłumieniu elementów obrazu charakteryzujących się wysoką częstotliwością i przepuszczaniu tych elementów, których częstotliwość jest mała. W rezultacie następuje redukcja szumów oraz rozmycie obrazu, a otrzymany obraz jest mniej wyraźny niż pierwotny.
Aby dokonać rozmycia obrazu należy zastosować funkcję splotu, jak również odpowiednio przygotowany kernel - filtr. Jednym z najczęściej wykorzystywanych do tego filtrów dolnoprzepustowych jest filtr Gaussowski. Pozwala on na zmniejszenie ostrości obrazu, jak również stosuje się go przy redukcji szumu obecnego w obrazie.
W prezentowanym przypadku wykorzystano macierz o wymiarach 29×29, wygenerowaną na podstawie funkcji Gaussowskiej o odchyleniu standardowym równym 5. Rozkład normalny nadaje wagi otaczającym pikselom w procesie konwolucji.
Przykłady filtrów dolnoprzepustowych:
- piramidalny - jeżeli kolejne komórki tego filtra przedstawionoby za pomocą słupków o wysokości odpowiadającej przypisanej wadze to w efekcie otrzymalibyśmy bryłę podobną do piramidy, stąd jego nazwa.
- stożkowy - jeżeli kolejne komórki tego filtra przedstawionoby za pomocą słupków o wysokości odpowiadającej przypisanej wadze to w efekcie otrzymalibyśmy bryłę podobną do stożka, stąd jego nazwa.
- gauss 1 - jeżeli kolejne komórki tego filtra przedstawionoby za pomocą słupków o wysokości odpowiadającej przypisanej wadze to w efekcie otrzymalibyśmy bryłę podobną do krzywej rozkładu normalnego - krzywej Gaussa.
Filtry górnoprzepustowe
Filtry górnoprzepustowe (ang. high-pass) przepuszczają i wzmacniają elementy obrazu o dużej częstotilości, są to szumy, drobne szczegóły i krawędzie. Tłumieniu natomiast ulegają elementy o niskiej częstotliwości. Wynikiem działania takich fitrów jest wyostrzenie obrazu, a także zwiększenie ilości szumów.
Analogicznie jak przy rozmyciu Gaussowskim można sprawić, że obraz zostanie wyostrzony. W tym celu należy zastosować odpowiedni filtr górnoprzepustowy. Jego działanie polega na przepuszczaniu oraz wzmacnianiu elementów obrazu, które odznaczają się dużą częstotliwością, np. szumów czy krawędzi. Natomiast elementy o małej częstotliwości filtr wytłumia. W wyniku zastosowania filtru następuje wyostrzenie pierwotnego obrazu, co można łatwo zauważyć na przykład w okolicach ramienia.
Detekcja Krawędzi
Kolejnym zabiegiem możliwym do przeprowadzenia przy użyciu filtracji splotowej jest detekcja krawędzi. Do przeprowadzenia operacji wykrywania krawędzi wykorzystuje się filtry przesuwania i odejmowania. Ich działanie polega na przesunięciu obrazu i odjęciu obrazu pierwotnego od jego kopii. W wyniku tej operacji następuje detekcja krawędzi.
Filtry przesuwania i odejmowania, wykonują przesunięcie obrazu a następnie odejmowanie obrazu od swojej kopii. Filtry te służą do wykrywania krawędzi w obrazie. W zależności od kierunku przesuwania obrazu będą to krawędzie pionowe, poziome bądź ukośne. Należy zauważyć, że w wyniku działania tego rodzaju filtrów wynikowa wartość składowej punktu może wyjść ujemna. W takim wypadku należy użyć wartości bezwzględnej albo sprowadzić wartość do 0.
Gradientowe filtry kierunkowe (ang. gradient directional) służą również do wykrywania krawędzi w obrazie. Nazwa kolejnych przedstawionych filtrów określa krawędzie- zgodnie z kierunkiem geograficznym, które będą wykryte na obrazie wynikowym.
Filtry uwypuklające (ang. embossing) wprowadzają złudzenie wypukłości i wklęsłości w miejscach, gdzie w obrazie znajdują się krawędzie - daje to efekt podobny do płaskorzeźby. Nazwa kolejnych przedstawionych filtrów określa krawędzie- zgodnie z kierunkiem geograficznym, które będą uwypuklone w obrazie wynikowym.
Filtry Laplace'a - stosowane są do wykrywania krawędzi. W porównaniu do innych przedstawionych tutaj filtrów cechuje je wielokierunkowość - wykrywają krawędzie we wszystkich kierunkach. Ponadto dają w efekcie ostrzejsze krawędzie.
Filtry konturowe - służą do wykrywania krawędzi. Podstawowymi filtrami konturowymi są filtry Sobel'a o Prewitt'a.
Filtry statystyczne
Filtry statystyczne - wykorzystuje się je podobnie jak przedstawione powyżej filtry liniowe. Wartość wynikowa jednak powstaje nie w wyniku obliczenia sumy ważonej (funkcji splotu) poszczególnych piksli lecz poprzez wybranie wartości odpowiedniego piksla pod maską.
- filtr medianowy - mediana, to wartość środkowa. Wynikiem działania tego filtru jest wybranie piksla o wartości środkowej wszystkich piksli pod maską, czyli dla filtru 3x3 będzie to taka wartość punktu, że pozostałe 4 punkty mają wartość większą a pozostałe 4 wartość mniejszą. Można do tego zadania użyć algorytm Hoare'a.
- filtr minimalny - zwany jest także filtrem kompresujacym albo erozyjnym. Jego działanie polega na wybraniu z pod maski punktu o wartości najmniejszej. Jego działanie powoduje zmniejszenie jasnosci obrazu dajace efekt erozji obiektów.
- filtr maksymalny - zwany jest także filtrem dekompresujacym albo ekspansywnym. Jego działanie polega na wybraniu z pod maski punktu o wartości największej.
- filtr Kuwahara - jest filtrem wygładzającym zachowującym krawędzie. W filtrze tym maska dzielona jest na regiony. Dla każdego regionu obliczana jest wartość średnia oraz wariancja (suma kwadratów odchyleń) względem tej wartości. Najczęsciej w filtrze Kuwahara punkty pod maską dzielone są na 4 regiony. Podział następuje w taki sposób, że krawędzie przylegających do siebie regionów są wspólne. Punkt centralny dla którego obliczany jest wynik występuje w każdym regionie.
tags: #filtracja #dolnoprzepustowa #obrazu #definicja

