import numpy as np
from PIL import Image
from numpy.fft import fft, ifft
def filter_img(src_img):
#打开图像文件并获取数据
img = Image.open(src_img)
#读取图片到一个数组
src_array = np.frombuffer(img.tobytes(), dtype=np.uint8)
#傅里叶变换并滤出低频信号
#时域 --> 频域
result = fft(src_array)
#滤波
result = np.where(np.absolute(result)<9e4,0,result)
#傅里叶反变换,保留实部
#频域 --> 时域
result = ifft(result)
#取出实部
result = np.uint8(np.real(result))
#转化为图片
im = Image.frombytes(img.mode,img.size,result)
#输出展示
im.show()
filter_img('TIM图片20180613143307.jpg')