Fourier-transformering
Det gør det muligt for os at transformere et billede fra rumdomænet (hvor pixelværdier er repræsenteret direkte) til frekvensdomænet (hvor vi analyserer mønstre og strukturer baseret på deres frekvens). Dette er nyttigt til opgaver som billedfiltrering, kantdetektion og støjreduktion.
Først skal vi konvertere billedet til gråtoner:
For at beregne 2D Fourier-transformen:
Her konverterer fft2()
billedet fra rumdomænet til frekvensdomænet, og fftshift()
flytter lavfrekvente komponenter til midten.
For at visualisere magnitudspektret:
Da Fourier-transformen giver komplekse tal som output, anvendes absolutte værdier (np.abs()
) for at opnå en meningsfuld visualisering.
Funktionen np.log
forbedrer synligheden, da de rå størrelsesværdier varierer betydeligt i skala.
Swipe to start coding
Du har fået et image
:
- Konverter billedet til gråtoner og gem det i variablen
gray_image
; - Anvend Fourier-transform på
gray_image
og gem resultatet i variablendft
; - Foretag nul-frekvensskift til centrum og gem resultatet i variablen
dft_shift
; - Beregn et magnitudespektrum og gem det i variablen
magnitude_spectrum
.
Løsning
Tak for dine kommentarer!