一,使用傅里叶变换处理模糊图片
傅里叶变换是将表示值的值转换为表示变化的值(大概应该是吧)
原图
观察图片发现白色像素块较多。可利用傅里叶变换转换后将变化较大的值置为0
导入使用模块
import numpy as np
import matplotlib.pyplot as plt
from scipy.fftpack import fft2,ifft2
使用plt读取图片
moon = plt.imread(’./img/moonlanding.png’)
查看图片
plt.imshow(moon,cmap=‘gray’)
查看图片数据
moon
进行傅里叶变换
moon_fft2 = fft2(moon)
moon_fft2
找出变换较大的值将其置为0
cond = np.abs(moon_fft2) > 1e3
moon_fft2[cond] = 0
反傅里叶变换。重新变回表示值的值
moon_ifft2 = ifft2(moon_fft2)
moon_ifft2
因为是经过傅里叶变化后复数。取实数部分作为结果值
moon_clear = np.real(moon_ifft2)
moon_clear
展示图片
plt.figure(figsize=(12,8))
plt.imshow(moon_clear,cmap=‘gray’)
保存
plt.imsave(’./img/moon_fft2.pn