Transformada de Fourier
Permite transformar uma imagem do domínio espacial (onde os valores dos pixels são representados diretamente) para o domínio da frequência (onde padrões e estruturas são analisados com base em sua frequência). Isso é útil para tarefas como filtragem de imagem, detecção de bordas e redução de ruído.
Primeiro, é necessário converter a imagem para tons de cinza:
Para calcular a transformada de Fourier 2D:
Aqui, fft2()
converte a imagem do domínio espacial para o domínio da frequência, e fftshift()
move os componentes de baixa frequência para o centro.
Para visualizar o espectro de magnitude:
Como a transformada de Fourier gera números complexos, utilizamos os valores absolutos (np.abs()
) para uma visualização significativa.
A função np.log
melhora a visibilidade, pois os valores de magnitude bruta variam bastante em escala.
Swipe to start coding
Você recebe uma image
:
- Converter a imagem para tons de cinza e armazenar na variável
gray_image
; - Aplicar a transformada de Fourier na
gray_image
e armazenar na variáveldft
; - Realizar o deslocamento da frequência zero para o centro e armazenar o resultado na variável
dft_shift
; - Calcular o espectro de magnitude e armazenar na variável
magnitude_spectrum
.
Solução
Obrigado pelo seu feedback!