冈萨雷斯《数字图像处理》学习笔记(3)--频率域滤波(含傅里叶变换推导)

2023-11-16

频率域滤波所有的滤波都是通过傅里叶变换在频率域实现的,所以我们先重点提出傅里叶变换。

一、傅里叶变换基础

一维傅里叶变换数学推导

首先,我们知道傅里叶级数,形如:

f(x)=a0+n=1[ancos(nωx)+bnsin(nωx)](1) f ( x ) = a 0 + ∑ n = 1 ∞ [ a n c o s ( n ω x ) + b n s i n ( n ω x ) ] … ( 1 )
是由 三角函数系
1cosxsinxcos2xsin2xcosnxsinnx(2) 1 , c o s x , s i n x , c o s 2 x , s i n 2 x , … , c o s n x , s i n n x , … ( 2 )

经过组合所产生的三角级数。 a0anbn a 0 , a n , b n 称为傅里叶系数。为了求傅里叶系数,我们先引出下面的预备知识。

三角函数系(2)中任何两个不相同的函数的乘积在 [T2T2] [ − T 2 , T 2 ] 上的积分等于0。即:

T2T2cosnxdx=T2T2sinnxdx=0T2T2cosnxsinmxdx=0T2T2cosnxcosmxdx=T2T2sinnxsinmxdx=0 (mn)(1) (1) { ∫ − T 2 T 2 c o s n x d x = ∫ − T 2 T 2 s i n n x d x = 0 ∫ − T 2 T 2 c o s n x s i n m x d x = 0 ∫ − T 2 T 2 c o s n x c o s m x d x = ∫ − T 2 T 2 s i n n x s i n m x d x = 0   ( m ≠ n )

而三角函数系(2)中任何两个相同函数的乘积在 [T2T2] [ − T 2 , T 2 ] 上的积分都不等于0。
T2T2cos2nxdx=T2T2sin2nxdx=T2T2T212dx=T (2) (2) { ∫ − T 2 T 2 c o s 2 n x d x = ∫ − T 2 T 2 s i n 2 n x d x = T 2 ∫ − T 2 T 2 1 2 d x = T  

对(1)式在 [T2T2] [ − T 2 , T 2 ] 逐项积分,
T2T2f(x)dx=a0T2T2dx+1[anT2T2cos(nωx)dx+bnT2T2sin(nωx)dx] ∫ − T 2 T 2 f ( x ) d x = a 0 ∫ − T 2 T 2 d x + ∑ 1 ∞ [ a n ∫ − T 2 T 2 c o s ( n ω x ) d x + b n ∫ − T 2 T 2 s i n ( n ω x ) d x ]

由上面的预备知识,我们知道上式右边括号内的积分等于0,所以
T2T2f(x)dx=a0T ∫ − T 2 T 2 f ( x ) d x = a 0 T

a0=1TT2T2f(x)dx a 0 = 1 T ∫ − T 2 T 2 f ( x ) d x
.

现以 cos(nωx) c o s ( n ω x ) 乘(1)式两端,再同上逐项积分,我们得到:

T2T2f(x)cos(nωx)dx=a0T2T2cos(nωx)dx+n=1[anT2T2cos(nωx)cos(nωx)dx+bnT2T2sin(nωx)cos(nωx)dx] ∫ − T 2 T 2 f ( x ) c o s ( n ω x ) d x = a 0 ∫ − T 2 T 2 c o s ( n ω x ) d x + ∑ n = 1 ∞ [ a n ∫ − T 2 T 2 c o s ( n ω x ) c o s ( n ω x ) d x + b n ∫ − T 2 T 2 s i n ( n ω x ) c o s ( n ω x ) d x ]

等式右边除了
T2T2cos2nωxdx=T2 ∫ − T 2 T 2 c o s 2 n ω x d x = T 2

外,其他积分项都等于0,即
T2T2f(x)cos(nωx)dx=anT2 ∫ − T 2 T 2 f ( x ) c o s ( n ω x ) d x = a n T 2


an=2TT2T2f(x)cos(nωx)dx a n = 2 T ∫ − T 2 T 2 f ( x ) c o s ( n ω x ) d x

同理,用 sin(nωx) s i n ( n ω x ) 乘以(1) 两端并在 [T2T2] [ − T 2 , T 2 ] 逐项积分,可得
bn=2TT2T2f(x)sin(nωx)dx b n = 2 T ∫ − T 2 T 2 f ( x ) s i n ( n ω x ) d x

三个系数求完后,我们尝试把它化为指数形式。这时我们需要用到 欧拉公式

{ejnωx=cos(nωx)+jsin(nωx)ejnωx=cos(nωx)jsin(nωx) (3) (3) { e j n ω x = c o s ( n ω x ) + j s i n ( n ω x ) e − j n ω x = c o s ( n ω x ) − j s i n ( n ω x )  

联立两式得到
cos(nωx)=ejnωx+ejnωx2sin(nωx)=ejnωxejnωx2j (4) (4) { c o s ( n ω x ) = e j n ω x + e − j n ω x 2 s i n ( n ω x ) = e j n ω x − e − j n ω x 2 j  

将上式代入(1)中,替换 cos(nωx) c o s ( n ω x ) sin(nωx) s i n ( n ω x ) ,得到

f(x)=a0+n=1[ancos(nωx)+bnsin(nωx)]=a0+n=1[anejnωx+ejnωx2+bnejnωxejnωx2j]=a0+n=1[ejnωxanjbn2+ejnωxan+jbn2](3)(5)(6)(7) (5) f ( x ) = a 0 + ∑ n = 1 ∞ [ a n c o s ( n ω x ) + b n s i n ( n ω x ) ] (6) = a 0 + ∑ n = 1 ∞ [ a n e j n ω x + e − j n ω x 2 + b n e j n ω x − e − j n ω x 2 j ] (7) = a 0 + ∑ n = 1 ∞ [ e j n ω x a n − j b n 2 + e − j n ω x a n + j b n 2 ] … ( 3 )

我们令 c0=a0=1TT2T2f(x)dx c 0 = a 0 = 1 T ∫ − T 2 T 2 f ( x ) d x
cn=anjbn2=1TT2T2f(x)cos(nωx)dxj1TT2T2f(x)sin(nωx)dx=1TT2T2f(x)[cos(nωx)jsin(nωx)]dx=1TT2T2f(x)ejnωxdx (8)(9)(10)(11) (8) c n = a n − j b n 2 (9) = 1 T ∫ − T 2 T 2 f ( x ) c o s ( n ω x ) d x − j 1 T ∫ − T 2 T 2 f ( x ) s i n ( n ω x ) d x (10) = 1 T ∫ − T 2 T 2 f ( x ) [ c o s ( n ω x ) − j s i n ( n ω x ) ] d x (11) = 1 T ∫ − T 2 T 2 f ( x ) e − j n ω x d x  

cn=an+jbn2=1TT2T2f(x)ejnωxdx c − n = a n + j b n 2 = 1 T ∫ − T 2 T 2 f ( x ) e j n ω x d x

整理一下得到

c0=a0=1TT2T2f(x)dxcn=1TT2T2f(x)ejnωxdxn=12cn=1TT2T2f(x)ejnωxdxn=12(12) (12) { c 0 = a 0 = 1 T ∫ − T 2 T 2 f ( x ) d x c n = 1 T ∫ − T 2 T 2 f ( x ) e − j n ω x d x n = 1 , 2 , … c − n = 1 T ∫ − T 2 T 2 f ( x ) e j n ω x d x n = 1 , 2 , …

结合上面三个式子,我们可以写成如下:
cn=1TT2T2f(x)ejnωxdxn=0±1±2 c n = 1 T ∫ − T 2 T 2 f ( x ) e − j n ω x d x n = 0 , ± 1 , ± 2 , …

故,将上式代入(3)式,我们得到傅里叶变换的指数公式:
f(x)=n=cnejnωx f ( x ) = ∑ n = − ∞ ∞ c n e − j n ω x

傅里叶变换的理解

不了解傅里叶变换的可以先看这个链接
如何直观形象、生动有趣地给文科学生介绍傅里叶变换?

傅立叶变换将原来难以处理的时域信号转换成了易于分析的频域信号(信号的频谱),可以利用一些工具对这些频域信号进行处理、加工(例如去噪)。最后还可以利用傅立叶反变换将这些频域信号转换成时域信号(得到去噪后的图片)。

这里写图片描述

在处理图像时,图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度。如:大面积的沙漠在图像中是一片灰度变化缓慢的区域(图像比较柔和),对应的频率值很低;而对于地表属性变换剧烈的边缘区域在图像中是一片灰度变化剧烈的区域,对应的频率值较高(有可能是噪声)。傅立叶变换在实际中有非常明显的物理意义,设 f 是一个能量有限的模拟信号,则其傅立叶变换就表示 f 的谱。从纯粹的数学意义上看,傅立叶变换是将一个函数转换为一系列周期函数来处理的。从物理效果看,傅立叶变换是将图像从空间域转换到频率域。其逆变换是将图像从频率域转换到空间域。换句话说,傅立叶变换的物理意义是将图像的灰度分布函数变换为图像的频率分布函数,傅立叶逆变换是将图像的频率分布函数变换为灰度分布函数。(这段摘自他人)

这里写图片描述

二、频率域滤波

空间域和频率域中的线性滤波的基础都是卷积定理,具体的可以见我上一个博客冈萨雷斯《数字图像处理》学习笔记(2)–灰度变换与空间滤波

这里写图片描述

很简单,频率域滤波就是通过傅里叶变换后在频率域中进行滤波,再通过傅里叶反变换得到滤波后的图像。

低通滤波器

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

这里写图片描述

其中满足 D(u,v)=D0 D ( u , v ) = D 0 的点的轨迹为一个圆。

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

这里写图片描述

同样,我们可以知道,经过高通滤波后图像中的边缘和其他灰度急剧转变得到了增强,图像失去了大部分原来图像平缓的部分。

三、相关资源

[1] 傅立叶级数和傅立叶变换是什么关系?
[2] 如果看了此文你还不懂傅里叶变换,那就过来掐死我吧
[3] 为什么要进行傅里叶变换,其物理意义是什么?
[4] (精心整理)图像的傅里叶变换

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

冈萨雷斯《数字图像处理》学习笔记(3)--频率域滤波(含傅里叶变换推导) 的相关文章

  • 【数字图像处理】边缘检测

    文章目录 0 前言1 Sobel算子2 Canny算子3 深度学习算法3 1 Holistically Nested Edge Detection xff08 HED xff09 3 2 Richer Convolutional Featu
  • 数字图像处理——车牌识别(matlab)

    本次大报告利用MATLAB函数功能 xff0c 设计和实现了一个车牌识别系统 车牌识别系统的基本原理为 xff1a 将手机拍摄到的包含车辆牌照的图像输入到计算机中进行预处理 xff0c 再对牌照进行搜索 检测 定位 xff0c 并分割出包含
  • Matlab:尝试将 SCRIPT XXX 作为函数执行的解决方案

    Matlab 尝试将 SCRIPT XXX 作为函数执行的解决方案 最近在做图像处理小实验的过程中遇到了无比沙雕的情况 被自己佛了 最近真的智商不在线 或者没在线过 先描述一下问题 在Matlab中调用直方图均衡化函数histeq 但是出现
  • 数字图像处理-python基于opencv代码实现 反转变换、对数变换和幂律(伽马)变换

    本文主要介绍对 数字图像处理 第三章书中示例图片实现 反转变换 对数变换以及伽马变换的代码 若要获取更多数字图像处理 python 深度学习 机器学习 计算机视觉等高清PDF以及 更多有意思的 分享 可搜一搜 微信公共号 分享猿 免费获取资
  • 图像去雾算法学习

    现有的图像采集设备对外界环境的干扰非常敏感 在雾霾环境中 获取的户外图像往往退化严重 主要表现为场景特征信息模糊 对比度低 色彩失真 不利于计算机视觉系统对图像真实特征的提取 从而影响其后续的分析 理解 识别等一系列处理 很大程度上降低了视
  • 在MFC中使用OpenCV2.3.1

    最近要做数字图像处理的项目 大家都说VS MFC OpenCV很好用 于是我就试着弄了下 首先我到OpenCV ChinaOpenCV中文版主页找了一些很不错的教程开始做了 我用的是Visual Studio 2005 OpenCV的版本是
  • 【数字图像处理】四.MFC对话框绘制灰度直方图

    本文主要讲述基于VC 6 0 MFC图像处理的应用知识 主要结合自己大三所学课程 数字图像处理 及课件进行回忆讲解 主要通过MFC单文档视图实现点击弹出对话框绘制BMP图片的灰度直方图 再获取平均灰度 中指灰度和标准差等值 文章比较详细基础
  • 图像融合算法(像素级)

    图像融合技术可以提取自然光图像和红外图像的互补信息 获得对同一场景描述解释更为准确 全面和可靠的图像 像素级融合是常用于灰度图像与可见光图像的融合 基于源图像的彩色化就是源图像和目标图像的融合过程 使其同时兼有源图像的颜色和目标图像的形状
  • 计算二维离散随机变量的联合概率分布

    一 定义 Joint probability distribution 给定至少两个随机变量X Y 它们的联合概率分布 Joint probability distribution 指的是每一个随机变量的值落入特定范围或者离散点集合内的概率
  • [Android] 通过Menu实现图片怀旧、浮雕、模糊、光照和素描效果

    由于随手拍项目想做成类似于美图秀秀那种底部有一排Menu实现不同效果的功能 这里先简单介绍如何通过Menu实现打开相册中的图片 怀旧效果 浮雕效果 光照效果和素描效果 后面可能会讲述如何通过PopupWindow实现自定义的Menu效果 希
  • 卷积处理过程模拟:用Python实现OpenCV函数filter2D等效的卷积功能

    一 引言 在 OpenCV Python 图像平滑处理 卷积函数filter2D详解及均值滤波案例 介绍了filter2D相关的功能及使用 下面老猿用Python numpy矩阵运算以及OpenCV Python的图像基础操作模拟实现一个卷
  • 滤波去噪和小波去噪

    原文 http zhidao baidu com linkurl 7vqgj2oQ4MacZxGLdJXM lTCDdW3TrY6hbeInWeW7NWgcCFjO8qHbbm0U8lONrAanc6BQR7WwJB0GRzgZXZQLK
  • 图像均值、标准差、变异系数的意义

    目录 均值图像如何算 方差图像如何计算 变异系数是什么 极差 最大值 最小值 方差 数列中每个元素与均值之差的平方和 标准差 方差的开平方根 变异系数 正态分布 标准差 平均值 数字图像处理的配套视频教程 1 冈萨雷斯 数字图像处理 开始安
  • Matlab 常用快捷键

    MATLAB Numpy函数对照表 http mathesaurus sourceforge net matlab python xref pdf 常见快捷键 Ctrl R 注释代码 Ctrl T 取消注释代码 Ctrl 或 先将光标移动到
  • 【数字图像处理】三.MFC实现图像灰度、采样和量化功能详解

    本文主要讲述基于VC 6 0 MFC图像处理的应用知识 主要结合自己大三所学课程 数字图像处理 及课件进行讲解 主要通过MFC单文档视图实现显示BMP格式图片 并通过Bitmap进行灰度处理 图片采样和量化功能 个人认为对初学者VC 6 0
  • 【扫盲】机器学习图像处理中的深层/浅层、局部/全局特征

    浅层网络与深层网络浅层网络更注重于细节信息 深层网络更注重于语义信息 浅层网络 一般感受野较小 能够利用更多的细粒度特征信息 而且此时特征图每个像素点对应的感受野重叠区域还很小 这就保证了网络能够捕获更多细节 深层网络 随着下采样或卷积次数
  • 冈萨雷斯《数字图像处理》学习笔记(3)--频率域滤波(含傅里叶变换推导)

    频率域滤波所有的滤波都是通过傅里叶变换在频率域实现的 所以我们先重点提出傅里叶变换 一 傅里叶变换基础 一维傅里叶变换数学推导 首先 我们知道傅里叶级数 形如 f x a0 n 1 ancos n x bnsin n x 1 f x a 0
  • 【数字图像处理】图像形态学算法C语言实现(图像卷积,膨胀,腐蚀,开运算,闭运算,顶帽,黑帽,雕版,锐化)

    文章目录 一 图像卷积 1 图像卷积 2 数字信号处理中的卷积 3 数字图像处理中的卷积 二 图像卷积实现各种形态学运算 腐蚀 膨胀 形态学梯度 开运算 闭运算 顶帽 黑帽 雕版 锐化 li conv c main c 三 效果展示 原图
  • 数字图像处理(入门篇)六 图像数据预处理之坐标变化

    目录 1 平移 2 镜像 3 旋转 4 缩放 图像的坐标变换又称为图像的几何计算 常见的基本变换包括 平移 旋转 镜像和缩放等等 1 平移 1 代码 使用OpenCV仿射变换函数 cv2 warpAffine 实现平移操作 import n
  • 数字图像处理:OpenCV直方图均衡算法研究及模拟实现

    一 引言 在 数字图像处理 直方图均衡 Histogram Equalization 的原理及处理介绍 链接 https blog csdn net LaoYuanPython article details 119857829 中介绍了数

随机推荐

  • 算法和数据结构项目练习5-哈希链表

    Hash Chaining Table 项目介绍 代码实现 项目介绍 本项目实现一个简单的哈希表 txt文件包含一个整数值序列 读取它们并使用链接构造一个哈希表 程序应该依次读取每个整数 并使用mod 100作为哈希函数计算其哈希值 因此
  • CSS笔记(黑马程序员pink老师前端)浮动,清除浮动

    浮动可以改变标签的默认排列方式 浮动元素常与标准流的父元素搭配使用 网页布局第一准则 多个块级元素纵向排列找标准流 多个块级元素横向排列找浮动 float属性用于创建浮动框 将其移动到一边 直到左边缘或右边缘触及包含块或另一个浮动框的边缘
  • win10的pycharm开发工具使用Jupyter的各种报错:环境问题

    一 问题 在win10系统的pycharm开发工具使用Jupyter的各种报错 却一直解决不了 我一度使用过购买云服务器 重装系统等等各种办法 都没能解决 例如 在speech processing ipynb文件中 import libr
  • FreeIPA 统一身份认证实现

    1 FreeIPA概述 1 FreeIPA简介 FreeIPA是一个用于Linux Unix环境开源的身份管理系统 提供集中式帐户管理和身份验证 与Windows Active Directory或LDAP的作用类似 FreeIPA集成了3
  • 局部均值分解(matlab实现有注释)

    局部均值分解 local mean decomposition LMD 方法同经验模态分解方法 EMD 一样 也是一种自适应信号处理方法 LMD通过改变信号分解过程能有效改进EMD方法存在的包络拟合不准确 边界处发散等问题 代码如下 cle
  • Linux高阶—CPU性能压测spec(十)

    目录 一 基本概念 二 工作原理 三 测试套件 整数和浮点 测试套件 四 工作模式 speed 测量 rate 测量 五 测试场景 六 操作案例 一 基本概念 SPEC基准广泛用于评估计算机CPU性能工具 SPEC官网下载SPEC CPU
  • 小心宏定义出错

    当宏参数在宏定义中出现超过一次 这个宏作用在复杂的表达式里就可能出错 导致不可预料的结果 我还记得我有一次为这个问题导致的出错 查了一个星期 最后整整debug了一个工作日才找到这个问题 所以提醒大家一定要小心 比如 define MAX
  • FastCGI模块

    FastCGI模块 FastCGI 摘要 这个模块允许nginx同FastCGI协同工作 并且控制哪些参数将被安全传递 例 location fastcgi pass localhost 9000 fastcgi index index p
  • MMU的作用及工作过程

    MMU的作用及工作过程 MMU Memory Management Unit 是内存管理单元的简称 读者朋友在学习嵌入式的时候应该听说过 CLinux 这是适合没有MMU的微控制器使用的嵌入式Linux操作系统 比如ARM7 由于没有MMU
  • 对大连律师李振鹏《甲骨作文,应判“零分”》的反驳

    大连律师李振鹏 甲骨作文 应判 零分 请看http hi baidu com B4 F3 C1 AC C2 C9 CA A6 C0 EE D5 F1 C5 F4 blog item d94cb8fb8bb7b66d034f56c3 html
  • JDK8新特性之lambda表达式

    Welcome Huihui s Code World 接下来看看由辉辉所写的关于lambda表达式的相关操作吧 目录 Welcome Huihui s Code World 一 是什么 二 为什么要用 三 底层 四 什么时候用 五 怎么用
  • 2018Global Game Jam成都赛区赛后感

    这次是我第二次参加ggj 感觉这次大家的水平都高了很多 影响最深的还是自己的三度上台 以前我都是用的unity5 X系列来打包游戏的 这次由于想用到unity2017新增的Camera插件 于是这次第一次用unity2017 游戏做后打包成
  • 兆易创新携手合肥产投进军12英寸晶圆存储器

    2018年12月29日北京兆易创新科技股份有限公司董事会发布公告 北京兆易创新科技股份有限公司与合肥市产业投资控股 集团 有限公司于2017年10月26日签署了 关于存储器研发项目之合作协议 约定双方合作开展12英寸晶圆存储器研发项目 经沟
  • JVM内存溢出的几种方式与解决方法

    内存溢出 JVM运行时首先需要类加载器 classLoader 加载所需类的字节码文件 加载完毕交由执行引擎执行 在执行过程中需要一段空间来存储数据 类比CPU与主存 这段内存空间的分配和释放过程正是我们需要关心的运行时数据区 内存溢出的情
  • QT单例类管理信号和槽函数

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 创建单例类 二 主界面添加组件 三 组件代码绑定信号和槽 四 效果图 总结 前言 提示 这里可以添加本文要记录的大概内容 在QT当中 遇到主界面和多个组件
  • 华为机试学习——字符串最后一个单词的长度

    问题描述 计算字符串最后一个单词的长度 单词以空格隔开 字符串长度小于5000 注 字符串末尾不以空格为结尾 include
  • QT中各种MessageBox的使用

    MessageBox h ifndef MESSAGEBOX H define MESSAGEBOX H include
  • vue+pg库+openlayer5+geoserver+离线地图瓦片构建gis地图+地图撒点+点击点出现地图弹框(***完整流程***)

    实现效果 ol5的apihttps openlayers org en latest apidoc module ol Feature Feature html getProperties 一 在vue项目中使用gis地图 实现地图的搭建
  • SpringBoot内置Tomcat 配置和切换

    目录 SpringBoot内置Tomcat 配置和切换 基本介绍 内置Tomcat 的配置 application yml配置 对上面代码解释一下方便理解 通过类来配置Tomcat 注销application yml 对tomcat 配置
  • 冈萨雷斯《数字图像处理》学习笔记(3)--频率域滤波(含傅里叶变换推导)

    频率域滤波所有的滤波都是通过傅里叶变换在频率域实现的 所以我们先重点提出傅里叶变换 一 傅里叶变换基础 一维傅里叶变换数学推导 首先 我们知道傅里叶级数 形如 f x a0 n 1 ancos n x bnsin n x 1 f x a 0