Post

Explorando a Transformada Discreta de Fourier 🛠️

A Transformada de Fourier é uma ferramenta matemática poderosa, capaz de decompor um sinal contínuo em uma soma de funções senoidais, cada uma ponderada por um coeficiente específico. Quando lidamos com sinais discretos, como imagens digitais, utilizamos a Transformada Discreta de Fourier (DFT).

Para imagens digitais, a DFT oferece uma representação alternativa no domínio da frequência, destacando degradações não visíveis no domínio espacial. Isso é especialmente útil para identificar interferências periódicas em transmissões analógicas ou padrões repetidos em fotos antigas ou de jornais.

Calculando a Transformada Discreta de Fourier

O cálculo da DFT envolve preparar uma matriz complexa que será processada pela função de cálculo da DFT. Esse processo transforma a imagem do domínio espacial para o domínio da frequência, onde as características da imagem podem ser analisadas sob uma nova perspectiva.

Comparação do Espectro de Magnitude

Ao comparar o espectro de magnitude obtido de uma imagem com o valor teórico da transformada de Fourier de uma senoide, esperamos ver picos nas frequências específicas da senoide. No entanto, devido a fatores como ruído e métodos de representação, o espectro obtido pode diferir do teórico.

Exemplo de precisão: Imagem Senoidal de 256x256 Pixels

Vamos explorar um exemplo com uma imagem senoidal de 256x256 pixels.

Imagem Original

Imagem Original

Imagens Mostradas e Filtradas

Imagem OriginalImagem Filtrada
Imagem OriginalImagem Filtrada

Ângulo e Magnitude

ÂnguloMagnitude
ÂnguloMagnitude

Adaptação para Ler Imagens em Ponto Flutuante

Adaptamos o programa exemplos/dft.cpp para ler imagens em ponto flutuante armazenadas em arquivos YAML, como demonstrado abaixo:

1
2
3
4
5
6
7
8
9
10
11
# sinusoidal-256-8.yml
# %YAML:1.0
# ---
mat: !!opencv-matrix
   rows: 256
   cols: 256
   dt: f
   data: [ 128., 1.40448181e+02, 1.52776474e+02, 1.64866150e+02,
       1.76600800e+02, 1.87867386e+02, 1.98557419e+02, 2.08567947e+02,
       2.17802567e+02, 2.26172333e+02, 2.33596634e+02, 2.40003998e+02,
       # ...

Imagem Senoidal em Ponto Flutuante

Imagem OriginalImagem Filtrada
Imagem OriginalImagem Filtrada
ÂnguloMagnitude
ÂnguloMagnitude

Comparação Após a Adaptação

Com a adaptação para ler a imagem em ponto flutuante, o novo espectro de magnitude está mais próximo do valor teórico da transformada de Fourier da senoide. Isso se deve à representação mais precisa da imagem em ponto flutuante, preservando melhor as características de frequência durante o processamento da transformada.

Além disso, houve uma redução significativa do ruído no espectro de magnitude. Anteriormente, vários “pontos” representavam ruídos do processo de captura e representação. Com a nova escala e representação em ponto flutuante, minimizamos esses ruídos, visualizando apenas os pontos que correspondem ao comportamento esperado do espectro de magnitude para a senoide utilizada.

A Transformada Discreta de Fourier, portanto, não só revela detalhes escondidos no domínio espacial, mas também se beneficia de representações mais precisas para oferecer uma análise mais fiel das frequências presentes nas imagens.

Esta postagem está licenciada sob CC BY 4.0 pelo autor.