Fouriertransform
Det möjliggör att vi kan transformera en bild från rumsdomänen (där pixelvärden representeras direkt) till frekvensdomänen (där vi analyserar mönster och strukturer baserat på deras frekvens). Detta är användbart för uppgifter som bildfiltrering, kantdetektion och brusreducering.
Först behöver vi konvertera bilden till gråskala:
För att beräkna 2D-Fouriertransformen:
Här konverterar fft2()
bilden från rumsdomänen till frekvensdomänen, och fftshift()
flyttar lågfrekventa komponenter till mitten.
För att visualisera magnitudspektrumet:
Eftersom Fouriertransformen ger komplexa tal tar vi absolutvärdena (np.abs()
) för en meningsfull visualisering.
Funktionen np.log
förbättrar synligheten, eftersom de ursprungliga magnitudvärdena varierar kraftigt i skala.
Swipe to start coding
Du har fått en image
:
- Konvertera bilden till gråskala och spara i variabeln
gray_image
; - Applicera Fouriertransform på
gray_image
och spara i variabelndft
; - Utför en nollfrekvensskiftning till mitten och spara resultatet i variabeln
dft_shift
; - Beräkna ett magnitudspektrum och spara i variabeln
magnitude_spectrum
.
Lösning
Tack för dina kommentarer!