基于skimage的数字图像处理——频域滤波(傅里叶变换)

本文介绍了频域滤波的基本概念和傅里叶变换在图像处理中的应用,通过Python的skimage库展示了如何实现简单的傅里叶变换、不同正弦波的频谱图,以及二维傅里叶变换的可分离性和旋转特性。通过实例代码,详细解释了如何进行二维傅里叶变换并分析其性质。
摘要由CSDN通过智能技术生成

注意:文章代码基于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(
  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1123581321345589

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值