Dlaczego filtry Gaussa są używane jako filtry dolnoprzepustowe w przetwarzaniu obrazu?

30

W przetwarzaniu sygnału 1d stosuje się wiele rodzajów filtrów dolnoprzepustowych. Jednak filtry Gaussa prawie nigdy nie są używane.

Dlaczego są tak popularne w aplikacjach do przetwarzania obrazów? Czy filtry te są wynikiem optymalizacji dowolnego kryterium, czy są jedynie rozwiązaniem ad hoc, ponieważ „przepustowość” obrazu zwykle nie jest dobrze zdefiniowana.

nimrodm
źródło

Odpowiedzi:

28

Aplikacje do przetwarzania obrazu różnią się od aplikacji do przetwarzania dźwięku, ponieważ wiele z nich jest dostrojonych dla oka. Maski Gaussa niemal idealnie symulują rozmycie optyczne (patrz także funkcje rozproszenia punktów ). W każdej aplikacji do przetwarzania obrazu zorientowanej na produkcję artystyczną domyślnie stosowane są rozmycia filtry Gaussa.

Inną ważną właściwością ilościową filtrów Gaussa jest to, że wszędzie są one nieujemne . Jest to ważne, ponieważ większość sygnałów 1D różni się o około 0 ( ) i może mieć wartości dodatnie lub ujemne. Obrazy różnią się tym, że wszystkie wartości obrazu są nieujemne ( x R + ). Splot z jądrem Gaussa (filtrem) gwarantuje wynik nieujemny, więc taka funkcja mapuje wartości nieujemne na inne wartości nieujemne ( f : R +R + ). Wynik jest zatem zawsze kolejnym ważnym obrazem.xRxR+f:R+R+

Ogólnie odrzucenie częstotliwości w przetwarzaniu obrazu nie jest tak istotne jak w przypadku sygnałów 1D. Na przykład w schematach modulacji filtry muszą być bardzo precyzyjne, aby odrzucać inne kanały transmitowane na różnych częstotliwościach nośnych i tak dalej. Nie mogę myśleć o niczym innym, jak o ograniczeniu problemów z przetwarzaniem obrazu.

Phonon
źródło
21

Filtry gaussowskie są używane w przetwarzaniu obrazu, ponieważ mają właściwość, że ich obsługa w dziedzinie czasu jest równa ich obsłudze w dziedzinie częstotliwości. Wynika to z faktu, że Gaussian jest własną transformacją Fouriera.

Jakie są tego konsekwencje? Cóż, jeśli obsługa filtra jest taka sama w obu domenach, oznacza to, że stosunek obu podpór wynosi 1. Jak się okazuje, oznacza to, że filtry Gaussa mają „iloczyn minimalnej przepustowości czasowej”.

Co możesz powiedzieć? Cóż, w przetwarzaniu obrazu jednym bardzo ważnym zadaniem jest usunięcie białego szumu, przy jednoczesnym zachowaniu wyraźnych krawędzi. Może to być sprzeczne zadanie - biały szum występuje na wszystkich częstotliwościach jednakowo, podczas gdy krawędzie występują w zakresie wysokich częstotliwości. (Nagłe zmiany sygnałów przestrzennych). W tradycyjnym usuwaniu szumów przez filtrowanie sygnał jest filtrowany dolnoprzepustowo, co oznacza, że ​​elementy wysokiej częstotliwości w twoim sygnale są całkowicie usuwane.

Ale jeśli obrazy mają krawędzie jako komponenty wysokiej częstotliwości, tradycyjne LPF również je usuną, a wizualnie przejawia się to, gdy krawędzie stają się bardziej „rozmazane”.

Jak zatem usunąć szum, ale także zachować krawędzie o wysokiej częstotliwości? Wprowadź jądro Gaussa. Ponieważ transformata Fouriera Gaussa jest również gaussowskim, filtr Gaussa nie ma ostrego odcięcia przy pewnej częstotliwości pasma przepustowego, powyżej której wszystkie wyższe częstotliwości są usuwane. Zamiast tego ma pełen wdzięku i naturalny ogon, który staje się coraz niższy wraz ze wzrostem częstotliwości. Oznacza to, że będzie działał jak filtr dolnoprzepustowy, ale także pozwoli na komponenty o wyższej częstotliwości proporcjonalne do tego, jak szybko rozkłada się jego ogon. (Z drugiej strony, LPF będzie miał produkt o wyższej przepustowości czasowej, ponieważ jego obsługa w domenie F nie jest tak duża, jak w przypadku Gaussa).

To pozwala następnie osiągnąć to, co najlepsze z obu światów - usuwanie szumów oraz zachowanie krawędzi.

Spacey
źródło
2
Nie jestem pewien, czy można bezpośrednio porównać te dwie podpory, ponieważ jedna jest mierzona w czasie / długości, a druga w Hz / radianach. Ich morfologia jest identyczna, ale uniwersalna właściwość skalowania nadal obowiązuje.
Phonon
Dzięki za przypomnienie mi o minimalnej przepustowości czasowej. Jednak, jak wspomniał Phonon, zmniejszenie obsługi domeny przestrzennej (~ czasu) koniecznie zwiększa przepustowość. Nie ma mowy o tłumieniu szumów i zachowaniu krawędzi za pomocą prostego filtra Gaussa. Dlatego Perona i Malik opracowali filtrowanie anizotropowe.
nimrodm
@Phonon Jak widziałem, obsługa jest po prostu liczbą niezerowych wpisów opisujących funkcję w którejkolwiek domenie - uważam, że są takie same. (Stąd stosunek 1). Biorąc to pod uwagę, iloczyn czasu i szerokości pasma jest mierzony jako iloczyn wariancji funkcji w czasie i częstotliwości. Jak różni się znormalizowany od autorów, widziałem, że jest on równy 1/2 lub 1/4.
Spacey
1
@nimrodm „zmniejszenie obsługi domeny przestrzennej (~ czasu) koniecznie zwiększa przepustowość.”, Tak, to trend wynikający z odwrotnej relacji czas-częstotliwość. (Stąd pochodzi niepewność czasowo-częstotliwościowa). Jednak funkcja Gaussa należy do klasy, która całkowicie minimalizuje ten produkt. Biorąc pod uwagę odwrotną zależność między czasem i częstotliwością, nie ma na to sposobu, chyba że ma ona równe wsparcie w obu domenach.
Spacey
@nimrodm W dyfuzji anizotropowej jądra, które widziałem, są nadal gaussowskie, aczkolwiek z matematycznymi kowariancjami zależnymi od gradientu obrazu. (Jest to również metoda nieliniowa, wygładzanie gaussowskie VS, które jest liniowe). Ale gaussian pozostaje używany ze względu na swoje właściwości.
Spacey
11

Masz już dobre odpowiedzi, ale dodam jeszcze jedną użyteczną właściwość filtrów Gaussa 2D, polegającą na tym, że można je rozdzielić , tzn. Filtr 2D można rozłożyć na dwa filtry 1D. Może to być ważnym czynnikiem wpływającym na wydajność w przypadku większych rozmiarów jądra, ponieważ separowalny filtr MxN może być zaimplementowany z M+Nwielokrotnym dodawaniem, podczas gdy nierozdzielalny filtr MxN wymaga M*Nwielokrotnego dodawania.

Paul R.
źródło
2
To dobry argument. Filtr Gaussa 2D jest zarówno promieniowo symetryczny, jak i wciąż separowalny, dzięki czemu złożoność implementacji jest znacznie zmniejszona.
nimrodm
1
Jako odniesienie, The Scientist and Engineer's Guide to DSP zawiera doskonały opis tej właściwości w rozdziale 24 .
Caleb Reister
6

Podręcznik imagemagick doskonale wyjaśnia, dlaczego filtrowanie za pomocą funkcji sinc prowadzi do efektów „dzwonienia”, podczas gdy gaussianie tego nie robią. ( http://www.imagemagick.org/Usage/fourier/#blurring i http://www.imagemagick.org/Usage/fourier/#circle_spectrum ). Kiedy masz krawędzie (nieciągłości) na swoim obrazie (co robi większość obrazów), to całkowite odcięcie wszystkich wysokich częstotliwości pozostawia ci zmarszczki w dziedzinie przestrzeni. Dzwonienie pojawia się również, gdy filtrujesz fale prostokątne z funkcją sinusoidalną w jednym wymiarze.

Wędrująca logika
źródło
2

Odpowiedzi były już piękne, ale dodam ziarno soli, a raczej inną perspektywę:

Filtrowanie na najbardziej abstrakcyjnym poziomie można uznać za zastosowanie pewnej wcześniejszej wiedzy do niektórych surowych danych. Oznacza to, że zastosowanie pewnego algorytmu filtrującego ma na celu zastosowanie go przed znalezieniem optymalnego stosunku sygnału do szumu, na przykład.

W przypadku obrazu klasycznym uprzednim jest płynność wartości (np. Intensywność) w stosunku do pozycji (można to postrzegać jako funkcję rozpraszania punktów wspomnianą przez @Phonon). Często jest modelowany jako gaussowski, ponieważ jest to kształt, który można uzyskać, mieszając różne obiekty o znanym promieniu gładkości (nazywa się to centralnym twierdzeniem granicznym ). Jest to szczególnie przydatne, gdy chcesz utworzyć pochodne obrazu: zamiast różnicowania surowego sygnału (który mógłby wytwarzać zaszumiony sygnał wyjściowy), powinieneś to zrobić na wygładzonym obrazie. Jest to równoważne z zastosowaniem operatora falkowego, takiego jak filtry Gabor .

meduz
źródło