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')