第4章 Python 数字图像处理(DIP) - 频率域滤波6 - 二维DFT和IDFT的一些性质 - 平移和旋转、周期性、对称性

目录

    • 二维DFT和IDFT的一些性质
      • 空间间隔和频率间隔的关系
      • 平移和旋转
      • 周期性
      • 对称性

二维DFT和IDFT的一些性质

空间间隔和频率间隔的关系

Δu=1MΔT(4.69)\Delta u = \frac{1}{M \Delta T} \tag{4.69}Δu=MΔT1(4.69)
Δv=1NΔZ(4.70)\Delta v = \frac{1}{N \Delta Z} \tag{4.70}Δv=NΔZ1(4.70)

平移和旋转

f(x,y)ej2π(u0x/M+v0y/N)⇔F(u−u0,v−v0)(4.71)f(x, y) e^{j2\pi(u_0 x/M + v_0 y /N)} \Leftrightarrow F(u - u_0, v - v_0) \tag{4.71}f(x,y)ej2π(u0x/M+v0y/N)F(uu0,vv0)(4.71)

f(x−x0,y−y0)⇔F(u,v)e−j2π(u0x/M+v0y/N)(4.72)f(x - x_0, y - y_0) \Leftrightarrow F(u, v) e^{-j2\pi(u_0 x/M + v_0 y /N)} \tag{4.72}f(xx0,yy0)F(u,v)ej2π(u0x/M+v0y/N)(4.72)

也就是说,用所示的指数项乘以f(x,y)f(x, y)f(x,y)将使DFT的原点移到点(u0,v)(u_0, v_)(u0,v)处;反之,用负指数项乘以F(u,v)F(u, v)F(u,v)将使f(x,y)f(x, y)f(x,y)的原点移到点(x0,y0)(x_0, y_0)(x0,y0)处。平移不影响F(u,v)F(u, v)F(u,v)的幅度(谱)

使用极坐标
x=rcosθ,y=rsinθ,u=ωcosφ,v=ωsinφx = r \text{cos}\theta, \quad y = r\text{sin}\theta, \quad u = \omega\text{cos}\varphi, \quad v = \omega\text{sin}\varphix=rcosθ,y=rsinθ,u=ωcosφ,v=ωsinφ
可得下面的变换对:
f(r,θ+θ0)⇔F(ω,φ+θ0)(4.73)f(r, \theta + \theta_0) \Leftrightarrow F(\omega, \varphi + \theta_0) \tag{4.73}f(r,θ+θ0)F(ω,φ+θ0)(4.73)

周期性

二维傅里叶变换及其反变换在uuu方向和vvv方向是无限周期的,即有(k1,k2k_1,k_2k1,k2是整数):
F(u,v)=F(u+k1M,v)=F(u,v+k2N)=F(u+k1M,v+k2N)(4.74)F(u, v) = F(u + k_1M, v) = F(u, v+k_2N) = F(u + k_1M, v + k_2N) \tag{4.74}F(u,v)=F(u+k1M,v)=F(u,v+k2N)=F(u+k1M,v+k2N)(4.74)

f(x,y)=f(x+k1M,y)=f(x,y+k2N)=f(x+k1M,y+k2N)(4.75)f(x, y) = f(x + k_1M, y) = f(x, y + k_2N) = f(x + k_1M, y + k_2N) \tag{4.75}f(x,y)=f(x+k1M,y)=f(x,y+k2N)=f(x+k1M,y+k2N)(4.75)

对称性

任意实函数或复函数w(x,y)w(x, y)w(x,y)均可表示为厅数部和偶数部之和,其中奇数部和偶数部邓可以是实数,也可以是复数:
w(x,y)=we(x,y)+wo(x,y)(4.77)w(x, y) = w_{e}(x, y) + w_{o}(x, y) \tag{4.77}w(x,y)=we(x,y)+wo(x,y)(4.77)

偶数部:
we(x,y)≜w(x,y)+w(−x,−y)2(4.78)w_{e}(x, y) \triangleq \frac{w(x, y) + w(-x, -y)}{2} \tag{4.78}we(x,y)2w(x,y)+w(x,y)(4.78)

奇数部:
wo(x,y)≜w(x,y)−w(−x,−y)2(4.79)w_{o}(x, y) \triangleq \frac{w(x, y) - w(-x, -y)}{2} \tag{4.79}wo(x,y)2w(x,y)w(x,y)(4.79)

根据上述式子,可得到

we(x,y)=we(−x,−y)(4.80)w_{e}(x, y) = w_{e}(-x, -y) \tag{4.80}we(x,y)=we(x,y)(4.80)

wo(x,y)=−wo(−x,−y)(4.81)w_{o}(x, y) = -w_{o}(-x, -y) \tag{4.81}wo(x,y)=wo(x,y)(4.81)

也就是说偶函数是对称的,奇函数是反对称的。

因为DFT和IDFT中所有指数都是非负的整数,所以当我们谈论对称 性(反对称性)时,指的是关于序列中心点的对称性(反对称性),此时介数部和奇数部定义为:

we(x,y)=we(M−x,N−y)(4.82)w_{e}(x, y) = w_{e}(M - x, N - y) \tag{4.82}we(x,y)=we(Mx,Ny)(4.82)

wo(x,y)=−wo(M−x,N−y)(4.83)w_{o}(x, y) = -w_{o}(M - x, N - y) \tag{4.83}wo(x,y)=wo(Mx,Ny)(4.83)

两个偶函数的积或两个奇函数的积是偶函数,而一个偶函数和一个奇函数的积是奇函数。

对于任意两个离散的偶函数wew_{e}we和奇函数wow_{o}wo
∑x=0M−1∑y=0N−1we(x,y)wo(x,y)(4.84)\sum_{x=0}^{M-1} \sum_{y=0}^{N-1} w_{e}(x, y) w_{o}(x, y) \tag{4.84}x=0M1y=0N1we(x,y)wo(x,y)(4.84)

离散函数是奇函数的唯一条件是其所有样本之和为零

我的理解是,如果偶数个离散点的话,我们需要找到对称中心,中心一般是floor(M/2)。如果是偶数个点的话,那需要补多一个数,这样才能有对称的中心。
下面的题,给出的序列是4个数,中心为2。如果是5个数的话,那中心还是2,但左边是2个数,右边也是两个数。

但后面又说这样做不对,不知道是如何理解呢?

# 离散偶数性
f = np.array([2, 1, 1, 1])
M = f.shape[0]
print(f'M = {M}')# f(x) = f(4 - x), f(0) = f(4), f(1) = f(3), f(2) = f(2), f(3) = f(1)
fx = np.zeros([M + 1])
fx[:M] = f
fx[M] = f[0]
print(fx)
M = 4
[2. 1. 1. 1. 2.]

奇序列的性质,即其第一项wo(0,0)w_{o}(0, 0)wo(0,0)永远是0,当M为偶数是,一维奇序列在伴0和M/2处的值总为零

# 离散奇数性
g = np.array([0, -1, 0, 1])
M = g.shape[0]
print(f'M = {M}')# g(x) = -g(4 - x), g(0) = 0, g(1) = -g(3), g(2) = g(2), g(3) = -g(1)
gx = np.zeros([M + 1])
gx[:M] = g
gx[M] = g[0]
print(gx)
M = 4
[ 0. -1.  0.  1.  0.]

序列的偶序列还是奇序列取决于序列的长度。{0, -1, 0, 1}是奇序列,但{0, -1, 0, 1,0}既不是奇序列,也不是偶序列

例如下面一个6×66\times66×6的二维阵列 [ 记住,从(0, 0)开始计数 ] 是奇序列,

KaTeX parse error: Expected group after '\begin{array}' at position 15: \begin{array} _̲ & 0 & 0 & 0 & …

然后,添加一行为和一列0后得到的结果即不是奇阵列又不是偶阵列。

一般来说,将偶数维的二维阵列插入一个较大的零阵列时,只要中心生命,那么得到的阵列也是偶数维的,这个阵列保留了较小阵列的对称性。
奇数维的二维阵列可以插入奇数维的更多大零阵列,而不影响基对称性。

实函数f(x,y)f(x, y)f(x,y)的傅里叶变换是共轭对称的
F∗(u,v)=F(−u,−v)(4.85)F^*(u, v) = F(-u, -v) \tag{4.85}F(u,v)=F(u,v)(4.85)

二维DFT及其反变换的一些对称 性质

空间域 频率域
1)f(x,y)f(x, y)f(x,y)实函数⇔\LeftrightarrowF∗(u,v)=F(−u,−v)F^*(u, v) = F(-u, -v)F(u,v)=F(u,v)
2)f(x,y)f(x, y)f(x,y)虚函数⇔\LeftrightarrowF∗(−u,−v)=−F(u,v)F^*(-u, -v) = -F(u, v)F(u,v)=F(u,v)
3)f(x,y)f(x, y)f(x,y)实函数⇔\LeftrightarrowR(u,v)R(u, v)R(u,v)偶函数;I(u,v)I(u, v)I(u,v)奇函数
4)f(x,y)f(x, y)f(x,y)虚函数⇔\LeftrightarrowR(u,v)R(u, v)R(u,v)奇函数;I(u,v)I(u, v)I(u,v)偶函数
5)f(−x,−y)f(-x, -y)f(x,y)实函数⇔\LeftrightarrowF∗(u,v)F^*(u, v)F(u,v)复函数
6)f(−x,−y)f(-x, -y)f(x,y)复函数⇔\LeftrightarrowF(−u,−v)F(-u, -v)F(u,v)复函数
7)f∗(x,y)f^*(x, y)f(x,y)复函数⇔\LeftrightarrowF∗(−u,−v)F^*(-u, -v)F(u,v)复函数
8)f(x,y)f(x, y)f(x,y)实函数和偶函数⇔\LeftrightarrowF(u,v)F(u, v)F(u,v)实函数和偶函数
9)f(x,y)f(x, y)f(x,y)实函数和奇函数⇔\LeftrightarrowF(u,v)F(u, v)F(u,v)虚函数和偶函数
10)f(x,y)f(x, y)f(x,y)虚函数和偶函数⇔\LeftrightarrowF(u,v)F(u, v)F(u,v)虚函数和偶函数
11)f(x,y)f(x, y)f(x,y)虚函数和奇函数⇔\LeftrightarrowF(u,v)F(u, v)F(u,v)实函数和奇函数
12)f(x,y)f(x, y)f(x,y)复函数和偶函数⇔\LeftrightarrowF(u,v)F(u, v)F(u,v)复函数和偶函数
13)f(x,y)f(x, y)f(x,y)复函数和偶函数⇔\LeftrightarrowF(u,v)F(u, v)F(u,v)复函数和奇函数

R(u,v)R(u, v)R(u,v)I(u,v)I(u, v)I(u,v)分别是F(u,v)F(u, v)F(u,v)的实部和虚部

下面是一维函数性质的一些说明

def print_array(arrs):for arr in arrs:if arr.imag >= 0:print(str(arr.real) + "+" + str(arr.imag) +"j", end=', ')else:print(str(arr.real) + str(arr.imag) +"j", end=', ')
# 性质3 实函数 <=> R偶函数,I奇函数
f = np.array([1, 2, 3, 4])F = np.fft.fft(f)
print_array(F)
10.0+0.0j, -2.0+2.0j, -2.0+0.0j, -2.0-2.0j, 
# 性质4 虚函数 <=> R奇函数,I偶函数
f = np.array([1j, 2j, 3j, 4j]) / 4F = np.fft.fft(f)
print_array(F)
0.0+2.5j, -0.5-0.5j, 0.0-0.5j, 0.5-0.5j, 
# 性质8 实函数和偶函数 <=> 实函数和偶函数
f = np.array([2, 1, 1, 1])F = np.fft.fft(f)
print_array(F)
5.0+0.0j, 1.0+0.0j, 1.0+0.0j, 1.0+0.0j, 
# 性质9 实函数和奇函数 <=> 虚函数和奇函数
f = np.array([0, -1, 0, 1])F = np.fft.fft(f)
print_array(F)
0.0+0.0j, 0.0+2.0j, 0.0+0.0j, 0.0-2.0j, 
# 性质10 虚函数和偶函数 <=> 虚函数和偶函数
f = np.array([2j, 1j, 1j, 1j])F = np.fft.fft(f)
print_array(F)
0.0+5.0j, 0.0+1.0j, 0.0+1.0j, 0.0+1.0j, 
# 性质11 虚函数和奇函数 <=> 实函数和奇函数
f = np.array([0j, -1j, 0j, 1j])F = np.fft.fft(f)
print_array(F)
0.0+0.0j, -2.0+0.0j, 0.0+0.0j, 2.0+0.0j, 
# 性质12 复函数和偶函数 <=> 复函数和偶函数
f = np.array([4+4j, 3+2j, 0+2j, 3+2j])F = np.fft.fft(f)
print_array(F)
10.0+10.0j, 4.0+2.0j, -2.0+2.0j, 4.0+2.0j, 
# 性质13 复函数和奇函数 <=> 复函数和奇函数
f = np.array([0+0j, 1+1j, 0+0j, -1-1j])F = np.fft.fft(f)
print_array(F)
0.0+0.0j, 2.0-2.0j, 0.0+0.0j, -2.0+2.0j, 

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

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

相关文章

类图 示例

神州六号飞船是神州飞船系统的一种&#xff0c;它由轨道舱、返回舱、推进舱和逃逸求生塔等组成&#xff1b;航天员可以在返回舱内驾驶飞船&#xff0c;轨道舱由是航天员工作和休息的场所。在紧急的情况下&#xff0c;可以利用逃逸求生塔逃生。在飞船两侧有多个太阳能电池翼&…

bat 命令返回结果_bat教程[284] unzip解压

古树屋Click to follow us(1)unzip命令的简介C:\Users\86137\Desktop>unzip -hUnZip 6.00 of 20 April 2009, by Info-ZIP. Maintained by C. Spieler. Sendbug reports using http://www.info-zip.org/zip-bug.html; see README for details.Usage: unzip [-Z] [-opts[mo…

K/3 MRP运算数据不准的原因及解决方案

系统MRP计算的结果不正确, 经过分析系统的数据&#xff0c;把MRP计算不正确原因整理如下:1.系统中存在大量的生产任务单没有完全领料&#xff0c;但被结案&#xff0c;造成部份领料单窜单领料&#xff0c;最终引起已分配量不正确2.系统中存在大量的手工录入的生产领料单3.存在部…

解压版本的tomcat服务安装

以下适合各个版本的tomcat&#xff08;注意启动时8080端口要确保未被占用&#xff09; 今天搭一个Tomcat服务器,为了方便决定将解压版&#xff08;非windows的安装方式&#xff09;的tomcat添加为一个windows服务。 环境&#xff1a; JDK 1.5.0_06 Tomcat-5.5.20 Windows2003 瑞…

Framework7:不会Objective-C,也能开发iOS7应用

摘要&#xff1a;Framework7是一款开源的轻量级HTML框架&#xff0c;用来创建混合或有着iOS7原生体验的Web应用。其包含HTML布局、所有基础界面、动画效果、视图以及简单的自定义样式&#xff0c;让你无需修炼Objective-C语言&#xff0c;就可以构建自己的iOS7应用。 Framework…

第4章 Python 数字图像处理(DIP) - 频率域滤波7 - 二维DFT和IDFT的一些性质 - 傅里叶频谱和相角

目录二维DFT和IDFT的一些性质傅里叶频谱和相角二维DFT和IDFT的一些性质 傅里叶频谱和相角 F(u,v)R(u,v)jI(u,v)∣F(u,v)∣ejϕ(u,v)(4.86)F(u, v) R(u, v) jI(u, v) |F(u, v)|e^{j\phi(u,v)} \tag{4.86}F(u,v)R(u,v)jI(u,v)∣F(u,v)∣ejϕ(u,v)(4.86) 幅度&#xff0c;称为…

jquery 判断是否有类名_Day037-JS、jQuery

第73次(JavaScript)学习主题&#xff1a;JavaScript学习目标&#xff1a;1 掌握js的表单验证2 熟练敲出制作购物车代码,尽量不要看老师的代码1. 表单验证A(1) 如何可以产生一个4位的随机数验证码Math.floor(Math.random()*90001000)(2) 如何控制表单是否提交的通过设置form表单…

csc.exe的环境变量设置

默认情况下&#xff0c;这个路径是不在 Path 环境变量中的。你在命令行下直接输入 csc&#xff0c;windows不会到上面那个路径中去找这个程序。所以也就提示找不到文件了。 设置方法&#xff1a; 1) 在“我的电脑”上点击右键&#xff0c;现在“属性”&#xff1b; 2) 在弹出的…

如何分析解决Android ANR

[java] view plaincopy print?来自&#xff1a; http://blog.csdn.net/tjy1985/article/details/6777346 http://blog.csdn.net/tjy1985/article/details/6777355 http://blog.csdn.net/tjy1985/article/details/6777983 http://www.eoeandroid.com/forum.php?modviewthr…

第4章 Python 数字图像处理(DIP) - 频率域滤波8 - 二维DFT和IDFT的一些性质 - 二维离散卷积定理

目录二维DFT和IDFT的一些性质二维离散卷积定理二维离散傅里叶变换性质的小结二维DFT和IDFT的一些性质 二维离散卷积定理 二维循环卷积表达式&#xff1a; (f⋆h)(x,y)∑m0M−1∑n0N−1f(m,n)h(x−m,y−n)(4.94)(f \star h)(x, y) \sum_{m0}^{M-1} \sum_{n0}^{N-1} f(m,n)h(x…

jmeter中重定向多个正则表达式_2020年jmeter技术实战续集,最新技术全栈,值得收藏

在上一篇&#xff1a;主要介绍线程组、HTTP请求默认值、用户定义的变量、固定定时器的应用场景及实战。以下主要介绍正则表达式提取器、调式取样器(Debug Sampler)、响应断言、HTTP信息头管理器的应用场景及实战。一、正则表达式提取器1、使用场景从请求的响应结果中取到需要的…

[置顶] 均衡音效

[置顶] 均衡音效 1均衡的作用 均衡器是一种可以分别调节各种频率成分电信号放大量的电子设备&#xff0c;通过对各种不同频率的电信号的调节来补偿扬声器和声场的缺陷&#xff0c;补偿和修饰各种声源及其它特殊作用。具体来说&#xff0c;它的作用如下&#xff1a; &#xff08…

html5之web worker

Web Worker 在本文中 与 Web Worker 进行双向通信WindowTimers在 IE10 Platform Preview 4 中对 Web Worker 的更新API 参考示例和教程有关 Internet Explorer 的 Test Drive 演示IEBlog 文章规范相关主题Internet Explorer 10 和使用 JavaScript 的 Windows 应用商店应用引入了…

第4章 Python 数字图像处理(DIP) - 频率域滤波9 - 频率域滤波基础、频率域的滤波过程、低通、高通

目录频率域滤波基础频率域的其他特性频率域滤波基础知识频率域滤波步骤小结空间域和频率域滤波之间的对应关系频率域滤波基础 频率域的其他特性 频率域中的滤波过程如下&#xff1a; 首先修改傅里叶变换以在到特定目的然后计算IDFT&#xff0c;返回到空间域 # 频率域中的其…

C# :试玩EventLog

1. 专门创建Source的Log   创建了Source&#xff0c;log显示在 Event viewer/Applications and Services logs/ 自定义Source 中&#xff0c;待遇比较高&#xff0c;专门显示的。 创建Source需要管理员身份&#xff0c;否则Crash。 如果已经打开了 Computer Management,请关闭…

css 宋体_Java前端基础(一)之html/css

1.1 htmlHTML:超文本标记语言(Hyper Text Markup Language)&#xff0c;标准通用标记语言下的一个应用。HTML 不是一种编程语言&#xff0c;而是一种标记语言 (markup language)&#xff0c;是网页制作所必备的WEB开发工具&#xff1a;hbuilder/webstorm/vs code/eclpise最简单…

View Controller Programming Guide for iOS---(七)---Resizing the View Controller’s Views

Resizing the View Controller’s Views A view controller owns its own view and manages the view’s contents. In the process, the view controller also manages the view’s subviews. But in most cases, the view’s frame is not set directly by the view controll…

基于百度地图js进行地理定位

http://www.mengxiangchaoren.com/jquery.select.position.min.js 使用方法 $("#myCity").renderSelect({posByGps:true,bdAk:BD_AK});转载于:https://www.cnblogs.com/Brose/p/jquery_select_position.html

C#接口-接口作用

C#接口是一个让很多初学C#者容易迷糊的东西&#xff0c;用起来好像很简单&#xff0c;定义接口&#xff0c;里面包含方法&#xff0c;但没有方法具体实现的代码&#xff0c;然后在继承该接口的类里面要实现接口的所有方法的代码&#xff0c;但没有真正认识到接口的作用的时候就…

gpio的8种工作模式_Stm32之GPIO工作模式简介

GPIO的8种工作模式GPIO初始化结构体的时候&#xff0c;必须要配置合适的工作模式&#xff0c;这样才能使得IO口发挥应有的作用。工作模式大体上共分为输入输出两类&#xff0c;共8种&#xff0c;下面将介绍这8种工作模式。GPIO工作模式输入模式GPIO_Mode_AIN 模拟输入 GPIO_Mod…