Estou trabalhando em um aplicativo de processamento de imagem que usa uma transformação fourier discreta para implementar a desfocagem / nitidez. O aplicativo está mais ou menos funcionando, mas algo sobre a mecânica ainda é confuso para mim.
Em particular, é como o processo de centralizar as frequências zero está sendo realizado.
O exemplo que eu vi processa previamente a imagem de entrada (de intensidades em escala de cinza) multiplicando-a por uma matriz de tamanho igual à imagem de entrada, cujos valores são , onde x é a linha, y é a coluna, então um padrão alternando 1 e - 1
De acordo com as notas, isto é equivalente a trocar os quadrantes de matriz lançando entre os e y eixo.
Entendo por que isso é feito e gostaria de enfatizar que entendo que meu código / material de Fourier estão funcionando, só não entendo por que multiplicar a matriz de entrada por 1 / -1 acaba centralizando o componente de frequência zero em torno de 0.
obrigado
. Sua transformação de Fourier se parece com:
), que resulta em um único ponto bem no centro da transformada de Fourier:
. (Lembre-se de que ainda não fizemos nossa rotação, o centro da transformação de Fourier são as altas e as baixas frequências ainda estão nos cantos.) Mas esse é o "núcleo de rotação!" A participação nesse kernel de rotação move tudo para baixo e para a direita (mas as coisas que caem do canto inferior direito giram para o canto superior esquerdo).
, enquanto convolving a transformada de Fourier imagem com o kernel de rotação (no domínio da freqüência) dá-lhe:
.
, que tem uma transformada de Fourier: