Fouriertransformatie
Hiermee kunnen we een afbeelding transformeren van het ruimtelijk domein (waar pixelwaarden direct worden weergegeven) naar het frequentiedomein (waar we patronen en structuren analyseren op basis van hun frequentie). Dit is nuttig voor taken zoals beeldfiltering, randdetectie en ruisonderdrukking.
Eerst moeten we de afbeelding omzetten naar grijswaarden:
Om de 2D Fourier-transformatie te berekenen:
Hier zet fft2()
de afbeelding om van het ruimtelijk domein naar het frequentiedomein, en verplaatst fftshift()
de laagfrequente componenten naar het midden.
Om het amplitudespectrum te visualiseren:
Aangezien de Fourier-transformatie complexe getallen oplevert, nemen we de absolute waarden (np.abs()
) voor een zinvolle visualisatie.
De functie np.log
verbetert de zichtbaarheid, omdat de ruwe magnitudewaarden sterk in schaal variëren.
Swipe to start coding
Je krijgt een image
:
- Zet de afbeelding om naar grijswaarden en sla deze op in de variabele
gray_image
; - Pas de Fourier-transformatie toe op
gray_image
en sla het resultaat op in de variabeledft
; - Voer een zero-frequentieverschuiving uit naar het midden en sla het resultaat op in de variabele
dft_shift
; - Bereken een magnitude spectrum en sla deze op in de variabele
magnitude_spectrum
.
Oplossing
Bedankt voor je feedback!