Fouriertransformatie
De Fourier-transformatie (FT) is een fundamenteel wiskundig hulpmiddel dat wordt gebruikt bij beeldverwerking om de frequentiecomponenten van een afbeelding te analyseren.
Hiermee kunnen we een afbeelding transformeren van het ruimtelijk domein (waar pixelwaarden direct worden weergegeven) naar het frequentiedomein (waar patronen en structuren worden geanalyseerd op basis van hun frequentie). Dit is nuttig voor taken zoals beeldfiltering, randdetectie en ruisonderdrukking.
Eerst moeten we de afbeelding omzetten naar grijswaarden:
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
We gebruiken COLOR_BGR2GRAY
omdat afbeeldingen meestal worden ingelezen in BGR-indeling, wat het omgekeerde is van RGB.
Voor het berekenen van de 2D Fourier-transformatie:
dft = np.fft.fft2(image)
dft_shift = np.fft.fftshift(dft)
Hier zet fft2()
de afbeelding om van het ruimtelijk domein naar het frequentiedomein, en verplaatst fftshift()
de laagfrequente componenten naar het midden.
Voor het visualiseren van het magnitude spectrum:
magnitude_spectrum = 20 * np.log(np.abs(dft_shift))
Aangezien de Fourier-transformatie complexe getallen oplevert, nemen we de absolute waarden (np.abs()
) voor een zinvolle visualisatie.
De functie np.log
vergroot de zichtbaarheid, omdat de ruwe magnitude-waarden 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 deze op in de variabeledft
; - Voer een nul-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!
single
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Awesome!
Completion rate improved to 3.45
Fouriertransformatie
Veeg om het menu te tonen
De Fourier-transformatie (FT) is een fundamenteel wiskundig hulpmiddel dat wordt gebruikt bij beeldverwerking om de frequentiecomponenten van een afbeelding te analyseren.
Hiermee kunnen we een afbeelding transformeren van het ruimtelijk domein (waar pixelwaarden direct worden weergegeven) naar het frequentiedomein (waar patronen en structuren worden geanalyseerd op basis van hun frequentie). Dit is nuttig voor taken zoals beeldfiltering, randdetectie en ruisonderdrukking.
Eerst moeten we de afbeelding omzetten naar grijswaarden:
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
We gebruiken COLOR_BGR2GRAY
omdat afbeeldingen meestal worden ingelezen in BGR-indeling, wat het omgekeerde is van RGB.
Voor het berekenen van de 2D Fourier-transformatie:
dft = np.fft.fft2(image)
dft_shift = np.fft.fftshift(dft)
Hier zet fft2()
de afbeelding om van het ruimtelijk domein naar het frequentiedomein, en verplaatst fftshift()
de laagfrequente componenten naar het midden.
Voor het visualiseren van het magnitude spectrum:
magnitude_spectrum = 20 * np.log(np.abs(dft_shift))
Aangezien de Fourier-transformatie complexe getallen oplevert, nemen we de absolute waarden (np.abs()
) voor een zinvolle visualisatie.
De functie np.log
vergroot de zichtbaarheid, omdat de ruwe magnitude-waarden 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 deze op in de variabeledft
; - Voer een nul-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!
single