冈萨雷斯DIP第4章知识点

news2024/11/25 16:22:13

文章目录

    • 4.1 背景
    • 4.3 取样和取样函数的傅里叶变换
    • 4.5 二变量函数的傅里叶变换
    • 4.6 二维 DFT 和 IDFT 的一些性质
      • 4.6.6 二维离散卷积定理
    • 4.7 频率域滤波基础
      • 4.7.3 频率域滤波步骤小结
      • 4.7.4 空间域和频率域滤波之间的对应关系
    • 4.8 使用低通频率域滤波器平滑图像
    • 4.9 使用高通滤波器锐化图像

4.1 背景

DFT方法的计算优势

如3.4节所述,傅里叶变换用大小为 m × n m×n m×n 的核对 M × N M×N M×N 的图像滤波时,运算次数为 M N m n MNmn MNmn (乘法和加法)。若核是可分离的,运算次数减少 M N ( m + n ) MN(m+n) MN(m+n)。在4.11节中,会发现在频率域中执行等效滤波的运算次数仅为 2 M N log ⁡ 2 M N 2MN\log_2MN 2MNlog2MN,系数 2 2 2 表示计算一次正FFT和一次反FFT。

分别考虑大小为 M × M M×M M×M m × m m×m m×m 的方形图像与核。与采用不可分离的核相比,采用 FFT 对图像滤波的计算优势(它是核大小的函数)定义为:

C n ( m ) = M 2 m 2 2 M 2 log ⁡ 2 M 2 = m 2 4 log ⁡ 2 M C_{\mathrm{n}}(m)=\frac{M^{2} m^{2}}{2 M^{2} \log _{2} M^{2}}=\frac{m^{2}}{4 \log _{2} M} Cn(m)=2M2log2M2M2m2=4log2Mm2

如果核是可分离的,那么这一优势变为:

C s ( m ) = 2 M 2 m 2 M 2 log ⁡ 2 M 2 = m 2 log ⁡ 2 M C_{\mathrm{s}}(m)=\frac{2 M^{2} m}{2 M^{2} \log _{2} M^{2}}=\frac{m}{2 \log _{2} M} Cs(m)=2M2log2M22M2m=2log2Mm



4.3 取样和取样函数的傅里叶变换

类似于一维取样,二维取样可用一个取样函数建模(即一个二维冲击串)

s Δ T Δ Z ( t , z ) = ∑ m = − ∞ ∞ ∑ n = − ∞ ∞ δ ( t − m Δ T , z − n Δ Z ) s_{\Delta T \Delta Z}(t, z)=\sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty} \delta(t-m \Delta T, z-n \Delta Z) sΔTΔZ(t,z)=m=n=δ(tmΔT,znΔZ)

二维取样定理称,若取样间隔满足:

1 Δ T > 2 μ max ⁡ 1 Δ Z > 2 ν max ⁡ \begin{array}{l} \frac{1}{\Delta T}>2 \mu_{\max }\\ \\ \frac{1}{\Delta Z}>2 \nu_{\max } \end{array} ΔT1>2μmaxΔZ1>2νmax

则连续带限函数可由一组样本无误地复原。

在区间 [ − μ m a x , μ m a x ] [-μ_{\mathrm{max}},μ_{\mathrm{max}}] [μmax,μmax] [ − v m a x , v m a x ] [-v_{\mathrm{max}},v_{\mathrm{max}}] [vmax,vmax] 建立的频率域矩形之外, f ( t , z ) f(t,z) f(t,z) 的傅里叶变换是零, 则称该函数为 带限函数 。



4.5 二变量函数的傅里叶变换

在这里插入图片描述
F ( μ , ν ) = ∫ − ∞ ∞ ∫ − ∞ ∞ f ( t , z ) e − j 2 π ( μ t + ν z ) d t d z F(\mu, \nu)=\int_{-\infty}^{\infty} \int_{-\infty}^{\infty} f(t, z) e^{-j 2 \pi(\mu t+\nu z)} d t d z F(μ,ν)=f(t,z)ej2π(μt+νz)dtdz



4.6 二维 DFT 和 IDFT 的一些性质

假定对连续函数 f ( t , z ) f(t, z) f(t,z) 取样生成了一幅数字图像 f ( x , y ) f(x, y) f(x,y),它由分别在 t t t z z z 方向,所取的 M × N M×N M×N 个样本组成。令 Δ T ΔT ΔT Δ Z ΔZ ΔZ 表示样本间的间隔(见图4.15),那么,频率域对应的离散变量间的间隔 Δ u Δu Δu Δ v Δv Δv 分别为:
Δ u = 1 M Δ T Δ v = 1 N Δ Z \begin{aligned} \Delta u & =\frac{1}{M \Delta T} \\ \\ \Delta v & =\frac{1}{N \Delta Z} \end{aligned} ΔuΔv=MΔT1=NΔZ1

这里其实很容易理解,因为 1 Δ T \frac{1}{ \Delta T} ΔT1 就是采样率,离散傅里叶变换就是将采样率分为 M M M 份来研究。

如果 f ( x , y ) f(x, y) f(x,y) 旋转 θ 0 θ_0 θ0 角度, F ( u , v ) F(u, v) F(u,v) 也旋转相同的角度。

在一维的DFT中有这个公式:

f ( x ) e j 2 π ( u 0 x / M ) ⟷ F T F ( u − u 0 ) f(x) \mathrm{e}^{\mathrm{j} 2 \pi\left(u_{0} x / M\right)} \stackrel{\mathrm{FT}}{\longleftrightarrow} F\left(u-u_{0}\right) f(x)ej2π(u0x/M)FTF(uu0)

在二维中,我们可以利用下面的公式进行频谱中心化.

f ( x , y ) ( − 1 ) x + y ⟷ F T F ( u − M / 2 , v − N / 2 ) f(x, y)(-1)^{x+y} \stackrel{\mathrm{FT}}{\longleftrightarrow} F(u-M / 2, v-N / 2) f(x,y)(1)x+yFTF(uM/2,vN/2)

利用该式移动数据,使 F ( 0 , 0 ) F(0, 0) F(0,0) 位于由区间 [ 0 , M – 1 ] [0, M–1] [0,M–1] [ 0 , N – 1 ] [0, N–1] [0,N–1] 在频率域中定义的矩形的中心处。图4.22(b)显示了该结果。

在这里插入图片描述

4.6.6 二维离散卷积定理

f ( x , y ) ⋆ h ( x , y ) ⟷ F T F ( u , v ) H ( u , v ) f ( x , y ) h ( x , y ) ⟷ F T 1 M N F ( u , v ) ⋆ H ( u , v ) \begin{array}{c} f(x, y) \star h(x, y) \stackrel{\mathrm{FT}}{\longleftrightarrow} F(u, v) H(u, v) \\ \\ f(x, y) h(x, y) \stackrel{\mathrm{FT}}{\longleftrightarrow} \frac{1}{M N} F(u, v) \star H(u, v) \end{array} f(x,y)h(x,y)FTF(u,v)H(u,v)f(x,y)h(x,y)FTMN1F(u,v)H(u,v)

上式是线性滤波的基础,是本章所有滤波技术的基础。

因为比例常数 M N MN MN 通常很大,因此, ∣ F ( 0 , 0 ) ∣ |F(0,0)| F(0,0) 通常是频谱的最大成分。因为原点处的频率分量 u u u v v v 都是0,所以 F ( 0 , 0 ) F(0,0) F(0,0) 有时称为变换的直流(Direct Current, DC)分量。

在确定一幅图像的特性内容时相角所起的支配作用。

交叠错误

右列中各个周期靠得太近,互相干扰。IDFT得到的是线性卷积循环叠后的周期卷积结果。因此必须要先进行零填充。

零填充

交叠错误很容易解决。考虑两个函数 f ( x ) f(x) f(x) h ( x ) h (x) h(x) 它们分别由 A A A 个样本和 B B B 个样本组成 。 可以证明,如果在这两个函数中 填充零 使它们的长度 P P P 相同,按式 (4.97) 可避免交叠问题:

P ≥ A + B − 1 (4.97) P \geq A+B-1\tag{4.97} PA+B1(4.97)

频率泄漏

这类似于用一个 盒式函数 与一个函数相乘 在 频率域 它意味着 原变换与一个 sinc ⁡ \operatorname{sinc} sinc 函数的卷积 见(例 4.1),这将造成一个由 sinc ⁡ \operatorname{sinc} sinc 函数的高频分量产生所谓的 频率泄漏 (frequency leakage) 。频率泄漏会在图像上产生块效应 (blocking artifact) 。

虽然频率泄漏无法完全消除但让取样后的函数 乘以 另一个 两端平滑地过渡到 0 的函数(加窗,教材 P175),可明显降低频率泄漏。



4.7 频率域滤波基础

4.7.3 频率域滤波步骤小结

在这里插入图片描述
在这里插入图片描述

4.7.4 空间域和频率域滤波之间的对应关系

空间域滤波和频率域滤波间的纽带是卷积定理。

频率域中的滤波概念更加直观,且频率域中的滤波器设计也更容易。 取两个域中特性的优点的一种方法是:在频率域规定一个滤波器核, 计算其IDFT, 然后利用生成的全尺寸空间核的性质, 指导构建较小的核。



4.8 使用低通频率域滤波器平滑图像

ILPF的模糊和振铃性质可用卷积定理来解释。 图4.42(a)显示了半径为15、 大小为 1000 × 1000 1000× 1000 1000×1000 像素的一个频率域 ILPF 传递函数的图像。 图4.42(b)是 ILPF 的空间表示 h ( x , y ) h(x,y) h(x,y), 它是取图4.42(a)的IDFT得到的(注意振铃效应)。 图4.42(c)显示了过图4.42(b)的中心的一个灰度剖面, 其形状类似于 s i n c sinc sinc 函数。

在这里插入图片描述
s i n c sinc sinc 函数的中心波瓣是引起模糊的主因, 而外侧较小的波瓣是造成振铃效应的主因。因为空间函数的“分布”与 H ( u , v ) H(u,v) H(u,v) 的半径成反比, D 0 D_0 D0 越大, 空间函数就越趋近于一个与图像卷积时根本不会导致模糊的冲激。

如表4.4所示, 频率域高斯函数的傅里叶反变换也是高斯的。 这意味着计算式(4.115)或式(4.116)的IDFT得到的空间高斯滤波器核将没有振铃效应。

空间域一阶巴特沃斯滤波器没有振铃效应。 在2阶和3阶滤波器中, 振铃效应通常难以察觉, 但更高阶滤波器中的振铃效应很明显。

在这里插入图片描述
在这里插入图片描述



4.9 使用高通滤波器锐化图像

在这里插入图片描述
h H P ( x , y ) = J − 1 [ H H P ( u , v ) ] = J − 1 [ 1 − H L P ( u , v ) ] = δ ( x , y ) − h L P ( x , y ) \begin{aligned} h_{\mathrm{HP}}(x, y) & =\mathfrak{J}^{-1}\left[H_{\mathrm{HP}}(u, v)\right] \\ & =\mathfrak{J}^{-1}\left[1-H_{\mathrm{LP}}(u, v)\right] \\ & =\delta(x, y)-h_{\mathrm{LP}}(x, y) \end{aligned} hHP(x,y)=J1[HHP(u,v)]=J1[1HLP(u,v)]=δ(x,y)hLP(x,y)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/608663.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Nacos作为服务注册中心简单示例

一、服务注册与发现场景 主要包含两个服务: zhshl-order服务: 作为服务消费者zhsl-stock服务: 作为服务提供者 当我们启用服务发现的时候,需要进行的操作主要有三步 0、前置条件,需要先搭建好一个nacas服务,可以是一个集群或者是单个nacos服务。可以…

MySQL 数据定义语言 DDL

文章目录 数据定义语言 DDL表的设计范式第一范式(1NF)第二范式(2NF)第三范式(3NF) 创建表修改表删除表截断表 数据定义语言 DDL 前面我们学习的 DML 语言,主要实现对数据的增、删、改等基本操作…

零基础入门网络安全必看的5本书籍(附书单pdf)

作为一个Java转行网络安全的过来人,我深知自学时的种种不易,同时也经常有粉丝朋友问我:刚入门应该怎么学、有哪些书籍推荐等问题,今天我就把我自己的学习书单分享给大家,希望对大家有帮助! 一、5本必读书籍…

JVM垃圾回收——对象进入老年代

目录 1、什么是大对象以及大对象对垃圾回收的影响 2、什么情况下对象会进入老年代 2.1 当创建对象的大小超过-XX:PretenureSizeThreshold的设定值 2.2 长期存活的对象将进入老年代 2.3 动态年龄判定 2.4 空间担保分配 什么是空间分配担保? 为什么要…

uploads靶场通关(1-11关)

Pass-01(JS校验) 看题目我们准备好我们的php脚本文件,命名为1.php 上传该php文件,发现上传失败 方法一:将浏览器的JavaScript禁用 然后就能上传了 方法二: 查看源码,发现只能上传以下形式的文…

【Docker】LXC所实现的隔离性、Linux Namespace等讲解

前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 📕作者简介:热…

域名解析异常有哪些办法?如何实现动态域名解析?

什么是域名解析? 域名解析就是把域名解析成一个ip地址,我们大多数人都喜欢记忆域名,但是机器只认识IP地址,只要这个IP地址对应相关域名,这就叫域名解析。 工作中常会遇到域名解析故障,比如访问站点对应的…

FPGA问答系列--Vivado Schematic中的实线和虚线有什么区别?

FPGA问答系列–Vivado Schematic中的实线和虚线有什么区别? 前言:本文章为FPGA问答系列,我们会定期整理FPGA交流群(包括其他FPGA博主的群)里面有价值的问题,并汇总成文章,如果问题多的话就每周…

ChatPPT一键制作PPT,效果拉满!

💧 C h a t P P T 一键制作 P P T ,效果拉满! \color{#FF1493}{ChatPPT一键制作PPT,效果拉满!} ChatPPT一键制作PPT,效果拉满!💧 🌷 仰望天空,妳我…

阿里云nginx配置https踩坑(配置完后访问显示无法访问此网站)

本人小前端一枚,最近在玩服务器部署自己的东西时踩了个坑!!! server {listen 443 ssl;server_name localhost;ssl_certificate 证书.com.pem;ssl_certificate_key 证书.com.key;#后台管理静态资源存放location / { #文件目…

2023-06-04 Unity ScriptableObject2——ScriptableObject 的应用

文章目录 一、配置数据二、复用数据三、多态特性的利用四、单例模式获取数据 一、配置数据 ​ ScriptableObject 数据文件非常适合用来做配置文件: 配置文件的数据在游戏发布之前定规则配置文件的数据在游戏运行时只会读出来使用,不会改变内容在 Unity…

MPS|如何学习电路设计?帮你快速上手

​电路设计是电子工程中的重要领域之一,涉及到电子元件的选择、电路的设计和分析、电路板的制作等多个方面。对于初学者来说,学习电路设计需要掌握一定的基础知识和技能,同时需要有耐心和实践经验。本文将从七个方面总结如何学习电路设计&…

Vue (9)

Vue (9) 文章目录 1. 消息订阅与发布1.1 总结1.2 修改 TodoList 案例 2. 为 TodoList 添加编辑功能3. $nextTick4. 过度与动画4.1 动画效果4.2 过度效果4.3 集成第三方动画4.4 总结4.5 修改 TodoList 案例 1. 消息订阅与发布 上文我们已经将全局事件总线学完了知道了全局事件总…

day6 -- 数据的分组和描述性统计

学习内容 描述性统计函数,包括平均值,最大/小值,行数,总和使用 GROUP BY子句和HAVING子句 对数据进行分组操作 描述性统计数函数 除了上面提到的聚合函数外,MySQL还提供了以下其他一些常用的聚合函数: – …

Python学习40:维吉尼亚密码——解密

凯撒密码的加密强度是很低的,只需简单地统计字频就可以破译。人们在单一凯撒密码的基础上扩展出多表密码,称为“维吉尼亚”密码。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪…

【环境搭建】一些奇奇怪怪的环境问题

【设备信息】我的设备是4070ti,支持cuda12.0,但是目前用的还是11.7 1)fatal error: cusparse.h: No such file or directory 因为cuda版本和改名的原因,这个在cuda版本中比较有效的解决办法是: sudo apt search libcusparse得到…

基于SpringBoot+Vue的自习室预订系统设计与实现

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架下…

C/C++开发,opencv读写图像函数详解

目录 一、cv::imread函数读取图像 1.1 imread函数 1.2 imread函数的参数解析 1.3 imread函数实践案例 1.4 编译及测试 二、cv::imwrite函数存储图像 2.1 cv::imwrite函数 2.2 imwrite函数参数解析 2.3 imwrite函数实践案例 2.4 编译及测试 一、cv::imread函数读取图像 1.1 im…

Lecture 5 Part of Speech Tagging

目录 POS application: Information Extraction 词性应用:信息提取 POS Open Class 开放类词性Problem of word classes: Ambiguity 词类问题:模糊性Tagsets 标记集Penn Treebank Tags:Derived Tags: 衍生标签Tagged Text Example 标记文本示例Reasons f…

Java 字符串基本操作

一、Java 字符串比较 1、equals用法 String类覆盖了Object类的equals()方法,并提供了自己的实现,它根据它们的内容比较两个字符串的相等性。 equals() 方法用于将字符串与指定的对象比较。 语法 public boolean equals(Object anObject)参数 anObje…