注意:文章代码基于notebook实现,也可修改后用于pycharm等编译器。
文章目录
前言
本次学习的大致内容:
频域滤波的概念;
傅里叶变换在图像处理中的应用意义;
通过python编程实现对图像的简单傅里叶变换,并显示其频谱图。
代码大多基于skimage实现,所以先在notebook或pycharm中下载安装skimage。
在notebook中执行代码:!pip install scikit-image
即可实现skimage的安装
一、频域滤波与傅里叶变换
著名的法国数学家傅里叶在其著作《热分析理论》中指出:任何周期函数都可以分解为不同频率的正弦或余弦级数的形式,即傅里叶级数。
傅里叶变换从本质上完成了空间信息到频域信息的变换,通过变换将空域信号处理问题转化为频域信号处理。
二、skimage代码实现
1.简单的傅里叶变换:
代码如下:
# 初始化,导入绘图库及工具包
import numpy as np
import matplotlib.pyplot as plt
x=np.arange(0,4*np.pi,0.01)
plt.figure(figsize=(12,16)) # 规定整体图像的大小
plt.subplot(421) # 输出图像分块显示,该图为四行两列中的第一张图像
y=np.sin(x)*3
plt.plot(x,y)
plt.title('A')
plt.subplot(422)
y1=np.sin(3*x)
plt.plot(x,y1)
plt.title('B')
plt.subplot(423)
y2=np.sin(x)*3+np.sin(3*x)
plt.plot(x,y2)
plt.title('A+B')
plt.subplot(424)
y3=np.sin(5*x)*0.8
plt.plot(x,y3)
plt.title('C')
plt.subplot(425)
y3_2=3*np.sin(x)+np.sin(3*x)+np.sin(5*x)*0.8
plt.plot(x,y3_2)
plt.title('A+B+C')
plt.subplot(426)
y4=np.sin(7*x)*0.4
plt.plot(x,y4)
plt.title('D')
plt.subplot(427)
y4_1=3*np.sin(x)+np.sin(3*x)+np.sin(5*x)*0.8+np.sin(