Strona główna Przetwarzanie Sygnałów FFT obrazu 2D

🌀 FFT obrazu 2D

Zobacz obraz, jego dwuwymiarowe widmo amplitudowe Fouriera i wynik filtracji w dziedzinie częstotliwości. Rzeczywista FFT radix-2 działa najpierw na wierszach, potem na kolumnach; dolnoprzepustowa rozmywa, górnoprzepustowa zachowuje krawędzie, a filtr zaporowy usuwa okresowe prążki.

Przetwarzanie Sygnałów3DZaawansowany60 FPS
image-fft ↗ Otwórz osobno
Interfejs samej symulacji jest w języku angielskim.

O tej symulacji

Ta symulacja uruchamia w przeglądarce prawdziwą radix-2 FFT Cooleya-Tukeya — najpierw wzdłuż każdego wiersza, potem każdej kolumny — zamieniając mały obraz testowy w jego dwuwymiarowe widmo częstotliwości. Dominująca częstotliwość i energia zachowana po filtrowaniu są obliczane na żywo z tego widma, a maskowanie części widma przed odwrotną transformatą demonstruje twierdzenie o splocie: mnożenie w dziedzinie częstotliwości jest równoważne splotowi w dziedzinie przestrzennej.

🔬 Co pokazuje

Trzy powiązane widoki: przestrzenny wzorzec testowy, jego widmo częstotliwości w skali logarytmicznej po fftshift (dzięki czemu składowa zerowa DC znajduje się w centrum) oraz rekonstrukcja po tym, jak wybrana przez ciebie maska filtra wyzerowała część widma i została odwrotnie przekształcona z powrotem w obraz.

🎮 Jak korzystać

Wybierz wzorzec źródłowy (paski, koło, szachownica, glif „F” lub losowy szum) oraz filtr częstotliwości — Dolnoprzepustowy zachowuje tylko centrum i rozmywa, Górnoprzepustowy usuwa centrum i pozostawia krawędzie, Pasmowoprzepustowy zachowuje pierścień, a Notch usuwa dominujący pik, by usunąć okresowe paski. Promień filtra i Szerokość pasma kontrolują rozmiar maski, Pokaż fazę przełącza na widmo fazy, a Rozmiar obrazu przełącza między 64×64 a wolniejszą, ale ostrzejszą transformatą 128×128.

💡 Czy wiesz, że...

Bezpośrednia dwuwymiarowa dyskretna transformata Fouriera kosztuje O(N⁴) operacji dla obrazu N×N, ale podzielenie jej na N jednowymiarowych FFT wzdłuż wierszy, a następnie kolumn — dokładnie to, co robi ta symulacja — redukuje to do O(N² log N), dokładnie ten sam trik, który sprawia, że kompresja w stylu JPEG i rekonstrukcja MRI są wystarczająco szybkie do codziennego użytku.

Najczęściej zadawane pytania

Dlaczego widmo jest wyśrodkowane zamiast mieć jasny punkt w rogu?

Surowe wyjście FFT umieszcza składową zerową (DC) pod indeksem [0,0], a zawartość częstotliwości zawija się wokół krawędzi tablicy. Symulacja stosuje fftshift przed rysowaniem, zamieniając ćwiartki miejscami, tak by składowa DC znalazła się na środku, a częstotliwość rosła na zewnątrz we wszystkich kierunkach, zgodnie z konwencjonalnym sposobem wyświetlania widm.

Jaka jest różnica między filtrowaniem Dolnoprzepustowym, Górnoprzepustowym i Notch?

Dolnoprzepustowy zachowuje częstotliwości w wybranym promieniu od centrum i zeruje resztę, rozmywając obraz przez odrzucenie drobnych szczegółów. Górnoprzepustowy robi odwrotnie, zachowując tylko zewnętrzny pierścień wysokich częstotliwości i podkreślając krawędzie. Notch zamiast tego usuwa cienki pierścień wokół pojedynczego najsilniejszego piku częstotliwości obrazu, idealny do usuwania powtarzających się wzorów pasków bez rozmywania niczego innego.

Dlaczego Energia zachowana spada, gdy zmniejszam promień filtra?

Energia zachowana to ułamek całkowitej sumy kwadratów wartości widma, który pozostaje wewnątrz maski filtra. Mały promień filtra Dolnoprzepustowego zachowuje tylko składową DC i kilka niskich częstotliwości, odrzucając większość energii widma — dokładnie dlatego agresywne filtrowanie dolnoprzepustowe daje tak mocno rozmytą rekonstrukcję.

Co właściwie pokazuje widmo fazy?

Przełączenie Pokaż fazę zastępuje wartość bezwzględną każdego piksela kątem jego zespolonego współczynnika FFT, przemapowanym na poziomy szarości. Faza koduje, gdzie w obrazie znajduje się wzorzec danej częstotliwości, a nie jak silna jest ta częstotliwość — zamiana samej fazy między dwoma obrazami wystarczy, by wynik strukturalnie przypominał obraz-dawcę fazy, a nie obraz-dawcę wartości bezwzględnej.

Dlaczego wzorzec pasków daje widmo z zaledwie kilkoma jasnymi punktami?

Czysty sinusoidalny wzorzec pasków jest z definicji zbudowany z pojedynczej częstotliwości przestrzennej, więc jego FFT jest niemal całkowicie zerowe, poza symetryczną parą jasnych pików przy plus i minus tej częstotliwości oraz składową DC w centrum. Naturalne obrazy dają znacznie bardziej rozproszone widma, ponieważ jednocześnie mieszają wiele częstotliwości i orientacji.

Najczęściej zadawane pytania

Co przedstawia centrum obrazu 2D FFT?

Centrum (po standardowym przesunięciu FFT) reprezentuje składową zerową (DC) — średnią jasność całego obrazu. Jasne obszary blisko centrum odpowiadają wolno zmieniającej się (niskoczęstotliwościowej) zawartości, takiej jak gładkie tła, podczas gdy jasne obszary na krawędziach odpowiadają szybkim zmianom, takim jak drobne tekstury i ostre krawędzie.

Dlaczego FFT naturalnego obrazu zwykle pokazuje jasny wzór krzyża?

Wiele fotografii zawiera silne poziome i pionowe krawędzie (framugi drzwi, horyzonty, linie tekstu), które generują składowe o wysokiej energii wzdłuż poziomej i pionowej osi częstotliwości. Dodatkowo FFT traktuje obraz jako okresowy kafelek, a nieciągłości na krawędziach obrazu tworzą sztuczne składowe wysokiej częstotliwości wzdłuż osi.

Jak przeprowadza się filtrowanie w dziedzinie częstotliwości?

Pomnóż FFT obrazu przez maskę filtra (jedynki w paśmie przepustowym, zera w paśmie zaporowym lub płynne przejście), a następnie zastosuj odwrotną FFT, by wrócić do dziedziny przestrzennej. Jest to obliczeniowo równoważne splotowi w dziedzinie przestrzennej, ale znacznie szybsze dla dużych jąder dzięki twierdzeniu o splocie.

Jaka jest różnica między wartością bezwzględną a fazą FFT?

Widmo wartości bezwzględnej mówi, które częstotliwości przestrzenne są obecne i z jaką siłą. Widmo fazy koduje, gdzie te składowe częstotliwości znajdują się w obrazie. Zamiana wartości bezwzględnej jednego obrazu z drugim przy zachowaniu fazy daje obraz, który wygląda jak obraz, którego faza została użyta, co pokazuje, że faza niesie większość informacji strukturalnej.

Jak kompresja JPEG wykorzystuje analizę częstotliwości?

JPEG dzieli obraz na bloki 8×8 pikseli i stosuje do każdego dyskretną transformatę kosinusową (krewną FFT). Powstałe współczynniki są kwantyzowane — grubiej dla współczynników wysokiej częstotliwości, na które ludzkie oko jest mniej wrażliwe — i kodowane entropijnie. Dekompresja odwraca ten proces, odzyskując przybliżenie oryginalnego obrazu.

Podobne symulacje