数据学习之 傅里叶变换图片消噪

# 傅里叶变换理论解说# http://blog.jobbole.com/70549/

导入包

import numpy as np

import pandas as pd

from pandas import Series,DataFrame
import matplotlib.pyplot as plt

%matplotlib inline

from scipy.fftpack import fft2,ifft2

from PIL import Image


scipy.fftpack模块用来计算快速傅里叶变换
速度比传统傅里叶变换更快,是对之前算法的改进

图片是二维数据,注意使用fftpack的二维转变方法

# 傅里叶变换的函数
# fft2 把数据从时域--频域空间

# ifft2  把数据从频域--时域空间

第一步# 把图片转换成数据
data = plt.imread('moonlanding.png')

data.shape

第二步# 把数据从时域转换到频域

fft_data = fft2(data)

第三步# 滤波操作
# 假设波的临界值为10000
flag = 7e2
# 高振幅的波过滤掉,就应该满足 波的绝对值>condition
condition = np.abs(fft_data) > flag

fft_data[condition] = 0

第四步# 把频域转换成时域

ifft_data = ifft2(fft_data)

第五步读取图片

plt.imshow(np.real(ifft_data),cmap='gray')

 
  


你可能感兴趣的:(数据学习)