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_imageoch 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
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
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_imageoch 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