Fourier-Transformation
Die Fourier-Transformation (FT) ist ein grundlegendes mathematisches Werkzeug, das in der Bildverarbeitung verwendet wird, um die Frequenzkomponenten eines Bildes zu analysieren.
Sie ermöglicht es, ein Bild vom räumlichen Bereich (in dem Pixelwerte direkt dargestellt werden) in den Frequenzbereich zu transformieren (wo Muster und Strukturen anhand ihrer Frequenz analysiert werden). Dies ist nützlich für Aufgaben wie Bildfilterung, Kantenerkennung und Rauschunterdrückung.
Zuerst muss das Bild in Graustufen umgewandelt werden:
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
Wir verwenden COLOR_BGR2GRAY
, da Bilder hauptsächlich im BGR-Format eingelesen werden, was die umgekehrte Reihenfolge von RGB ist.
Zur Berechnung der 2D-Fourier-Transformation:
dft = np.fft.fft2(image)
dft_shift = np.fft.fftshift(dft)
Hier wandelt fft2()
das Bild vom Ortsbereich in den Frequenzbereich um, und fftshift()
verschiebt die niederfrequenten Komponenten in die Mitte.
Zur Visualisierung des Betragsspektrums:
magnitude_spectrum = 20 * np.log(np.abs(dft_shift))
Da die Fourier-Transformation komplexe Zahlen liefert, werden für eine sinnvolle Visualisierung die Betragswerte (np.abs()
) verwendet.
Die Funktion np.log
verbessert die Sichtbarkeit, da die Rohwerte des Betrags große Skalenschwankungen aufweisen.
Swipe to start coding
Gegeben ist ein image
:
- Umwandlung des Bildes in Graustufen und Speicherung in der Variable
gray_image
; - Anwendung der Fourier-Transformation auf
gray_image
und Speicherung in der Variabledft
; - Verschiebung der Nullfrequenz in die Mitte und Speicherung des Ergebnisses in der Variable
dft_shift
; - Berechnung des Betragsspektrums und Speicherung in der Variable
magnitude_spectrum
.
Lösung
Danke für Ihr Feedback!
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Can you explain why we use the frequency domain for image processing?
What are some practical applications of the magnitude spectrum?
How do I interpret the magnitude spectrum visually?
Awesome!
Completion rate improved to 3.45
Fourier-Transformation
Swipe um das Menü anzuzeigen
Die Fourier-Transformation (FT) ist ein grundlegendes mathematisches Werkzeug, das in der Bildverarbeitung verwendet wird, um die Frequenzkomponenten eines Bildes zu analysieren.
Sie ermöglicht es, ein Bild vom räumlichen Bereich (in dem Pixelwerte direkt dargestellt werden) in den Frequenzbereich zu transformieren (wo Muster und Strukturen anhand ihrer Frequenz analysiert werden). Dies ist nützlich für Aufgaben wie Bildfilterung, Kantenerkennung und Rauschunterdrückung.
Zuerst muss das Bild in Graustufen umgewandelt werden:
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
Wir verwenden COLOR_BGR2GRAY
, da Bilder hauptsächlich im BGR-Format eingelesen werden, was die umgekehrte Reihenfolge von RGB ist.
Zur Berechnung der 2D-Fourier-Transformation:
dft = np.fft.fft2(image)
dft_shift = np.fft.fftshift(dft)
Hier wandelt fft2()
das Bild vom Ortsbereich in den Frequenzbereich um, und fftshift()
verschiebt die niederfrequenten Komponenten in die Mitte.
Zur Visualisierung des Betragsspektrums:
magnitude_spectrum = 20 * np.log(np.abs(dft_shift))
Da die Fourier-Transformation komplexe Zahlen liefert, werden für eine sinnvolle Visualisierung die Betragswerte (np.abs()
) verwendet.
Die Funktion np.log
verbessert die Sichtbarkeit, da die Rohwerte des Betrags große Skalenschwankungen aufweisen.
Swipe to start coding
Gegeben ist ein image
:
- Umwandlung des Bildes in Graustufen und Speicherung in der Variable
gray_image
; - Anwendung der Fourier-Transformation auf
gray_image
und Speicherung in der Variabledft
; - Verschiebung der Nullfrequenz in die Mitte und Speicherung des Ergebnisses in der Variable
dft_shift
; - Berechnung des Betragsspektrums und Speicherung in der Variable
magnitude_spectrum
.
Lösung
Danke für Ihr Feedback!
single