Fouriertransform
Fouriertransformen (FT) är ett grundläggande matematiskt verktyg som används inom bildbehandling för att analysera frekvenskomponenterna i en bild.
Den möjliggör omvandling av en bild från rumsdomänen (där pixelvärden representeras direkt) till frekvensdomänen (där mönster och strukturer analyseras 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:
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
Vi använde COLOR_BGR2GRAY
eftersom bilder huvudsakligen läses in i BGR-format, vilket är omvänt mot RGB.
För att beräkna 2D-Fouriertransformen:
dft = np.fft.fft2(image)
dft_shift = np.fft.fftshift(dft)
Här omvandlar fft2()
bilden från rumsdomänen till frekvensdomänen, och fftshift()
flyttar lågfrekventa komponenter till mitten.
För att visualisera magnitudspektrumet:
magnitude_spectrum = 20 * np.log(np.abs(dft_shift))
Eftersom Fouriertransformen ger komplexa tal tar vi absolutvärdena (np.abs()
) för en meningsfull visualisering.
Funktionen np.log
förbättrar synligheten, eftersom råa magnitudvärden 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!
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Awesome!
Completion rate improved to 3.45
Fouriertransform
Svep för att visa menyn
Fouriertransformen (FT) är ett grundläggande matematiskt verktyg som används inom bildbehandling för att analysera frekvenskomponenterna i en bild.
Den möjliggör omvandling av en bild från rumsdomänen (där pixelvärden representeras direkt) till frekvensdomänen (där mönster och strukturer analyseras 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:
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
Vi använde COLOR_BGR2GRAY
eftersom bilder huvudsakligen läses in i BGR-format, vilket är omvänt mot RGB.
För att beräkna 2D-Fouriertransformen:
dft = np.fft.fft2(image)
dft_shift = np.fft.fftshift(dft)
Här omvandlar fft2()
bilden från rumsdomänen till frekvensdomänen, och fftshift()
flyttar lågfrekventa komponenter till mitten.
För att visualisera magnitudspektrumet:
magnitude_spectrum = 20 * np.log(np.abs(dft_shift))
Eftersom Fouriertransformen ger komplexa tal tar vi absolutvärdena (np.abs()
) för en meningsfull visualisering.
Funktionen np.log
förbättrar synligheten, eftersom råa magnitudvärden 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!
single