文章目录
使用傅里叶变换消除噪点
代码是基于jupyter notebook
图片链接
import numpy as np
import matplotlib.pyplot as plt
from scipy import fftpack
%matplotlib inline
# 这个一个具有很多噪点的图片
img = plt.imread('data/moolanding.png')
# 展示图片
plt.imshow(img)
# 调用傅里叶变换消除噪点,时域(原图片)---> 频域(数据波动情况)——>将波动比较大的数据过滤掉,噪声过滤
img_fft = fftpack.fft2(img)# 将图片状态从时域,转化为频域
# 将波动情况较大的数据过滤掉
# 解释下np.where(condition, x, y) 满足condition的返回x,不满足,返回y
# 将大于800的数据都赋值为0,800需要自己寻找,找到一个能让图片最清晰显示的数值便可
img_filter = np.where(np.abs(img_fft)>8e2,0,img_fft)
# 傅里叶变换后的数据是实数,含有实部和虚部,需要去掉虚部
img_result = np.real(moon_filter)
# 创建画布
plt.figure(figsize=(12,9))
# 显示过滤后的图片
plt.imshow(img_result,cmap='gray')
使用matplotlib.pyplot绘制圆
import matp