图像处理中的傅里叶变换和频率域滤波

写在前面的话

作者是一名在读的硕士研究僧,方向是机器视觉。由于视觉是一门相对复杂的学科,作者在课堂上学到的东西只是非常浅显的内容,我们老师说是,领我们进了个门。现在打算利用图书馆和网络上的资源进行自学。由于是刚开始写自己的博客,并且所具备的专业知识非常的有限,难免有出错之处,如果有朋友发现一些毛病,希望能够指正。哈哈,话不多说,进入正题。
作者使用的是冈萨雷斯的《数字图像处理(Matlab版)》,打算先用matlab先跟着书上的内容把代码先练一练。以后,再重新学习深入一些的知识。这里不会将书中的全部内容都列一遍,我会选择性的把重要的部分代实现。

频率域

在介绍频率域图像处理之前,先提几个问题。
1.什么是频率域?
2.为什么要在频率域中进行图像处理?

频率域的概念
频率域是指从函数的频率角度出发分析函数,和频率域相对的是时间域。简单说就是如果从时间域分析信号时,时间是横坐标,振幅是纵坐标。而在频率域分析的时候则是频率是横坐标,振幅是纵坐标。
举个例子,我们认为音乐是一个随着时间变化的震动。但是如果站在频域的角度上来讲,音乐是一个随着频率变化的震动,这样我们站在时间域的角度去观察你会发现音乐是静止的。同理,如果我们站在时间域的角度观察频率域的世界,就会发现世界是静止的,也是永恒的。这是因为在频率域是没有时间的概念的,那么也就没有了随着时间变化着的世界了。
另外,我们需要借助傅立叶变换,才能够在得到函数在频率域中的信息。

为什么要在频率域中进行图像处理?
1). 可以利用频率成分和图像外表之间的对应关系。一些在空间域表述困难的增强任务,在频率域中变得非常普通;
2). 滤波在频率域更为直观,它可以解释空间域滤波的某些性质;
3).可以在频率域指定滤波器,做反变换,然后在空间域使用结果滤波器作为空间域滤波器的指导

傅里叶变换

谈到频率域,就不得不说傅里叶变换了。傅里叶是18世纪法国的一位伟大的数学家。他最大的贡献在于指出任何周期函数都可以表示为不同频率的正弦和或者余弦和的形式,每个正弦或者余弦乘以不同的系数(也就是被大家所熟知的傅里叶级数)。无论函数有多复杂,只要它是周期性的,并且满足一定的数学条件,就一定可以用这样的正弦和或者余弦和的形式来表示。甚至在有些情况下,非周期函数也可以用正弦和或者余弦和的形式来表示。用傅里叶级数或变换表示的函数特征可以完全通过傅里叶反变换来重建,而不会丢失任何信息。而正是所谓的“傅里叶变换”使得我们可以工作于频率域。

一维连续函数的fourier变换

这里写图片描述
其中,f(x)表示原函数,F(u)表示变换之后的函数。u为频率域变量。这里写图片描述

一维连续函数的fourier反变换
这里写图片描述
这里写图片描述

。。。公式编辑有点小麻烦,暂时先用截图吧。请允许我小小的偷懒。。。

注意前面讲过任何周期函数都可以被写成若干个正弦波(余弦波)的叠加。为了便于理解,在网上找了几张图片。
这里写图片描述
第一幅图是一个郁闷的余弦波cos(x)
第二幅图是2个卖萌的余弦波的叠加cos(x)+a.cos(3x)
第三幅图是4个“可爱”的余弦波的叠加
第四幅图是10个“难受”的余弦波的叠加
随着余弦波数量逐渐的增长,最终叠加成一个标准的矩形,大家从中体会到了什么?

这里写图片描述
这里写图片描述
f为原图像, 傅里叶变换函数。傅里叶变换将函数的时域(红色)与频域(蓝色)相关联。频谱中的不同成分。频率在频域中以峰值形式表示。
//这里原图是一幅动态图,想看效果的朋友,请自行google傅立叶变换,weki上有动态图。

二维离散傅立叶变换

图像尺寸为M*N的函数f(x,y)DFT为

这里写图片描述
其中,u=0,1,2,…,M-1;v=0,1,2,…,N-1
给出F(u,v)由反DFT反变换可得到f(x,y)

这里写图片描述

傅立叶变换的基本概念:

1.频谱

这里写图片描述
2.相位角

这里写图片描述

傅立叶变换的性质:

  1. 共轭对称性

    如果f(x,y)是实函数,则它的傅里叶变换具有 共轭对称性

这里写图片描述
2 . 周期性

这里写图片描述

复习:当两个复数实部相等,虚部互为相反数时,这两个复数叫做互为共轭复数.

周期性和共轭对称性
对于一维变换F(u),周期性是指F(u)的周期长度为M,对称性是指频谱关于原点对称

这里写图片描述
通过将原点的变换值移动到频率矩形的中心位置,可简化频谱的
视觉分析。这可以通过在计算一维傅立叶变换之前将f(x)乘以 (-1)^x 来完成。

周期性和共轭对称性举例
这里写图片描述
通过将原点的变换值移动到频率矩形的中心位置,可简化频谱的视觉分析。这可以通过在计算二维傅立叶变换之前将f(x,y)乘以这里写图片描述![这里写图片描述来完成。
3. 平均值

由二维傅里叶变换的定义

这里写图片描述
所以在原点的傅立叶变换等于图像f(x,y)的平均灰度级
4. 卷积定理

空间域和频率域的基础都是卷积定理

大小为M×N的两个函数f(x,y)和h(x,y)的离散卷积

这里写图片描述
卷积定理

这里写图片描述
说明 第一个表达式表明:
两个空间函数的卷积可以通过计算两个傅立叶变换函数的乘积的逆变换得到。
相反,两个空间函数卷积的傅立叶变换恰好等于两个函数的傅立叶变换的乘积

频率域滤波

低通滤波器:使低频通过而使高频衰减的滤波器
1.被低通滤波的图像比原始图像少尖锐的细节部分而突出平滑过渡部分
2.对比空间域滤波的平滑处理,如均值滤波器

高通滤波器:使高频通过而使低频衰减的滤波器
1.被高通滤波的图像比原始图像少灰度级的平滑过渡而突出边缘等细节部分
2.对比空间域的梯度算子、拉普拉斯算子

低通滤波器

这里写图片描述
原图像的频谱
这里写图片描述
低通滤波器示意图
这里写图片描述
滤波效果
这里写图片描述

说明:这里的低通滤波,意思就是把频率低的波留下,把频率高的波过滤掉。示意图是经过居中处理的频谱,就是从频谱的中心到四周频率由低到高。示意图表示的是,留下中间低频的,过滤点中心周围高频的部分。我们知道,低频对应的图像中变化不明显的部分,于是,图像就变的非常模糊。这在图像处理中也叫平滑滤波。再介绍一个概念:图像的锐化。就是与平滑化相对,即下面高通滤波器所达到的效果。很明显,图像边缘增强了。

高通滤波

原图
这里写图片描述
原图的频谱
这里写图片描述
高通滤波器示意图
这里写图片描述
效果图
这里写图片描述

本博客转自http://blog.csdn.net/forrest02/article/details/55510711

  • 6
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在Python进行频率域滤波,一般会涉及傅里叶变换和逆傅里叶变换。以下是一个基本的频率域滤波的步骤: 1. 导入所需的库: ```python import numpy as np import cv2 from matplotlib import pyplot as plt ``` 2. 读取图像并进行灰度化处理: ```python image = cv2.imread('image.jpg', 0) ``` 3. 对图像进行二维傅里叶变换: ```python f = np.fft.fft2(image) ``` 4. 将零频率成分移到频谱心: ```python fshift = np.fft.fftshift(f) ``` 5. 构建滤波器,例如一个理想高通滤波器: ```python rows, cols = image.shape crow, ccol = rows // 2, cols // 2 # 创建一个掩膜,心为0,其他地方为1 mask = np.ones((rows, cols), np.uint8) mask[crow-30:crow+30, ccol-30:ccol+30] = 0 ``` 这里的示例是一个理想高通滤波器,即将心一定范围内的频率成分置零,保留高频部分。 6. 将滤波器应用于频域图像: ```python fshift_filtered = fshift * mask ``` 7. 将滤波后的频域图像转回原始图像域: ```python f_ishift = np.fft.ifftshift(fshift_filtered) image_filtered = np.fft.ifft2(f_ishift) image_filtered = np.abs(image_filtered) ``` 8. 显示原始图像滤波后的图像: ```python plt.subplot(121), plt.imshow(image, cmap='gray') plt.title('Original Image') plt.xticks([]), plt.yticks([]) plt.subplot(122), plt.imshow(image_filtered, cmap='gray') plt.title('Filtered Image') plt.xticks([]), plt.yticks([]) plt.show() ``` 这样就完成了频率域滤波的过程。可以根据具体需求和滤波器设计来调整滤波器的形状和范围,以达到不同的滤波效果。 希望这个示例对你有帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值