A ideia é criar uma bola no centro de uma imagem e considerá-la que está no domínio da frequência. Após isso, a Transformada Inversa de Fourier foi calculada para voltar ao domínio espacial e a imagem resultante pode ser vista no final deste post.
# -*- coding: utf-8 -*- """ @author: Rafael Zottesso """ import numpy as np import cv2 # Cria uma imagem de 300 linhas com 300 colunas dentro de cada linha t = 300 img = np.zeros((t,t,1), np.uint8) # Posição do centro da imagem x = y = int(t/2) # Tamanho do raio do círculo raio = 30 # Cria um array de índices com base no tamanho da imagem I,J=np.meshgrid(np.arange(img.shape[0]),np.arange(img.shape[1])) # Calcula a distância dos pontos com o centro (euclidiana) dist=np.sqrt((I-x)**2+(J-y)**2) # Coloca a intensidade 255 nos pontos onde a distância é menor que o raio img[np.where(dist<raio)]=255 # Faz a transformada inversa de Fourier na imagem com o círculo no centro img_fourier = np.fft.fftshift(img) # Mostra a imagem original e a resultante # Parâmetros: nome da janela, matriz cv2.imshow('Resultado',img) cv2.imwrite('./Imagens/bola.png', img) cv2.imshow('Fourier',img_fourier) cv2.imwrite('./Imagens/bola_Fourier.png', img_fourier) # Funções mostrar as janelas com as imagens cv2.waitKey(0) cv2.destroyAllWindows()
Imagens Resultantes
# Imagem gerada com círculo no centro, no domínio da frequência
# Imagem após a Transformada Inversa de Fourier