写在前面的话

作者是一名在读的硕士研究僧,方向是机器视觉。由于视觉是一门相对复杂的学科,作者在课堂上学到的东西只是非常浅显的内容,我们老师说是,领我们进了个门。现在打算利用图书馆和网络上的资源进行自学。由于是刚开始写自己的博客,并且所具备的专业知识非常的有限,难免有出错之处,如果有朋友发现一些毛病,希望能够指正。哈哈,话不多说,进入正题。 
作者使用的是冈萨雷斯的《数字图像处理(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.对比空间域的梯度算子、拉普拉斯算子

低通滤波器

 
原图像的频谱 
 
低通滤波器示意图 
 
滤波效果 

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

高通滤波

原图 
 
原图的频谱 
 
高通滤波器示意图 
 
效果图 

图像处理中的傅里叶变换和频率域滤波概念相关推荐

  1. 数字图像处理学习笔记5:频率域滤波1(傅里叶频谱图,低通滤波-平滑,高通滤波-锐化)

    文章目录 前言 一.傅里叶变换:傅里叶频谱图 二.低通滤波 1.理想低通滤波 2.布特沃斯低通滤波 3.高斯低通滤波 4.小结 三.高通滤波 1.理想高通滤波 2.布特沃斯高通滤波 3.高斯高通滤波 ...

  2. 图像 快速傅里叶变换 及 频率域滤波 java 实现

    首先感谢中山大学12级软件学院计算机应用方向和我同班的乔勃大God,以及软件学院副院长.数图seisei朝老师的帮助!马屁还是要拍的o(* ̄▽ ̄*)ブ //---------------------- ...

  3. OpenCV —— 频率域滤波(傅里叶变换,低通和高通滤波,带通和带阻滤波,同态滤波)

    频率域滤波 基本概念 傅里叶变换 二维离散的傅里叶变换 快速傅里叶变换 傅里叶幅度谱与相位谱 谱残差显著性检测 卷积与傅里叶变换的 频率域滤波 低通滤波和高通滤波 带通和带阻滤波 同态滤波 基本概念 ...

  4. OpenCV实现频率域滤波——以高斯低通滤波去噪为例

    最近由于作业原因,试着用OpenCV实现频率域滤波,但是OpenCV中并没有像MATLAB中fftshift这样的中心化操作,所以我写了一个频率域滤波的函数,以后用频率域滤波的时候在主函数中调用即可. ...

  5. 数字图像处理——第四章 频率域滤波

    数字图像处理--第4章 频率域滤波 文章目录 数字图像处理--第4章 频率域滤波 频率域 1.傅里叶级数原理 1.1.一维傅里叶变换 1.2.二维傅里叶变换 2.python×傅里叶级数 2.1.傅里 ...

  6. 数字图像处理-频率域滤波原理

    from:https://blog.csdn.net/forrest02/article/details/55510711?locationNum=15&fps=1 写在前面的话 作者是一名在 ...

  7. 【OpenCV 例程200篇】86. 频率域滤波应用:指纹图像处理

    [OpenCV 例程200篇]86. 频率域滤波应用:指纹图像处理 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 4 ...

  8. MATLAB中实现图像的空间域滤波和频率域滤波

    1. 空间域滤波 空间域滤波是指在图像空间中借助模板对图像领域进行操作,处理图像每一个像素值.主要分为线性滤波和非线性滤波两类,根据功能可分为平滑滤波器和锐化滤波器.平滑可通过低通来实现,平滑的目的有 ...

  9. 传统基本图像处理方法:图像增强(灰度变换、直方图增强、空间域滤波、频率域滤波)、图像分割、图像配准等

    图像处理设计主要有以下几种处理:图像增强(灰度变换.直方图增强.空间域滤波.频率域滤波).图像分割.图像配准等等. 图像增强: 图像增强作为基本的图像处理技术,目的在于通过对图像进行加工使其比原始图像 ...

最新文章

  1. 我先了解一下博客园创建随笔/文章/日记的过程与三者的区别(隐私等级,是否审核等)...
  2. Activiti最全入门教程
  3. Ubuntu 16.04 下安装Firefox的Flash插件
  4. 前端 CSS Framework --- NEC (网易)
  5. 关于完善Github repo里文档的规范做法
  6. python网页开发好用吗_推荐用于Web开发的最好 Python 框架
  7. 核心控制芯片选型建议书(中低端)
  8. Java中gatSum方法是什么_Oracle中的SUM用法讲解
  9. MTK 驱动 -----(6) eMMC 原理 1 :Flash Memory 简介
  10. Unable to resolve dependency for ':app@debug/compileClasspath'
  11. Kettle下载安装使用
  12. 中兴 ZXV10 B860AV2.1-A 中国移动盒子 开adb和wifi(海南盒子);适用于大部分(除两款外)不打开adb 进行安装软件或抓取日志
  13. Premiere Pro Guru: 3D Titling for Video Editors Premiere Pro 大师教程之 3D字幕条制作教程 Lynda课程中文字幕
  14. 东大计算机硕士奖学金,计算机科学与技术学院2018级硕士研究生学业奖学金评定情况.PDF...
  15. Windows操作系统安全加固基线检测脚本
  16. 快牛策略——嵌入式计算机
  17. oracle中before,oracle触发器before和after数据区别
  18. 杰奇cms linux安装教程,杰奇2.4官方原版安装教程,附环境配置
  19. 如何使用TeamViewer在局域网内远程连接另一台电脑
  20. (转)dl,dt,dd标签的解析

热门文章

  1. postgresql的特点_PG:PostgreSQL的一些简单操作
  2. python发送json数据_在Websockets上发送JSON
  3. 红宝石服务器文件,使用红宝石MAMP作为本地服务器访问SQL语句
  4. Notepad++远程连接Linux系统
  5. mysql 存储过程游标删除_mysql数据库存储过程游标循环,提前退出
  6. 连接编码器_编码器与PLC的接线
  7. python一维列表的定义_数据结构-Python 列表(List)
  8. mysql innodb page_MySQL:Innodb page clean 线程 (一) 基础
  9. 旋转矩阵求旋转角度_(加餐)欧拉角及矩阵旋转
  10. FPGA车牌数字识别系统设计verilog实现(带上板录制视频)