数字图像处理第四章笔记

本文详细介绍了傅里叶变换在数字图像处理中的应用,特别是频率域滤波的概念。内容涵盖从傅里叶级数、复数到连续和离散傅里叶变换,以及取样定理和混淆现象。此外,还讨论了二维傅里叶变换、卷积和滤波的基础知识,包括如何在频率域中进行滤波操作。文章最后提到了几种常见的滤波器类型,如理想滤波器和布特沃斯滤波器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数字图像处理第四章笔记(频率域滤波)

1.1背景

前人提出:“任何周期函数,只要满足某些条件 都可以表示为 不同频率的 正弦和、余弦和 的形式”,其中的“和”即傅里叶级数,因此,傅里叶级数能够清晰地表明:信号由哪些频率分量组成 以及 其所占比重,有利于我们对信号进行分析处理,傅里叶变换就像棱镜,棱镜能把光分解为不同颜色的成分,每种成分的颜色由各自的波长决定

傅里叶变换的优点:用傅里叶级数或变换的函数 可以 通过傅里叶反变换 重建,不会丢失任何信息

1.2基本概念

1.2.1复数

复数C及其相关表示:
C = R + j I (1) C=R+jI\tag1 C=R+jI(1)
共轭复数:
C ∗ = R − j I (2) C^*=R-jI\tag2 C=RjI(2)
极坐标:
C = ∣ C ∣ ( c o s θ + j s i n θ ) (3) C=|C|(cosθ+jsinθ)\tag3 C=C(cosθ+jsinθ)(3)
若使用欧拉公式:
e j θ = c o s θ + j s i n θ (4) e^{jθ}=cosθ+jsinθ\tag4 ejθ=cosθ+jsinθ(4)

C = ∣ C ∣ e j θ (5) C=|C|e^{jθ}\tag5 C=Cejθ(5)

1.2.2傅里叶级数

任何连续周期信号,可以由一组适当的正弦曲线组合而成

f(t)是 具有周期T 的 连续变量t 的周期函数,可以被描述为乘以适当系数的正余弦之和,即“傅里叶级数”,公式如下:
f ( t ) = ∑ n = − ∞ ∞ c n e j 2 π n T t (1) f(t)=\sum_{n=-∞}^{∞}c_n e^{j\frac{{2πn}}{T}t}\tag1 f(t)=n=cnejT2πnt(1)

c n = ∫ − T / 2 T / 2 f ( t ) e − j 2 π n T t d t , n = 0 , ± 1 , ± 2 , … (2) c_n=\int_{-T/2}^{T/2}f(t)e^{-j\frac{2πn}{T} t}dt,n=0,±1,±2,…\tag2 cn=T/2T/2f(t)ejT2πntdt,n=0,±1,±2,(2)

1.2.3冲激及其取样特性

δ(t)为 连续变量t 在 t=0处的单位冲激,定义如(1)
δ ( t ) { ∞ , t = 0 0 , t ≠ 0 (1) δ(t) \left\{ \begin{matrix} ∞,t=0\\ 0,t≠0 \end{matrix} \right.\tag1 δ(t){,t=00,t=0(1)
限制条件为(2)
∫ − ∞ ∞ δ ( t ) d t = 1 (2) \int_{-∞}^{∞}δ(t)dt=1\tag2 δ(t)dt=1(2)

1.2.4连续变量函数的傅里叶变换

将一个连续时间或空间域函数转换为其频率域表示的技术。对于一个连续变量函数f(x),其傅里叶变换F(u)定义如下:
F ( u ) = ∫ − ∞ ∞ f ( t ) e − j 2 π u t d t (1) F(u)=\int_{-∞}^{∞}f(t)e^{-j2πut}dt\tag1 F(u)=f(t)ej2πutdt(1)
傅里叶变换将函数f(x)分解为一系列正弦和余弦函数,每个函数的振幅和相位由F(w)给出。这个过程可以看作是将函数从时间或空间域转换为频率域。

同理也可以做傅里叶反变换:
f ( t ) = ∫ − ∞ ∞ F ( u ) e j 2 π u t d u (2) f(t)=\int_{-∞}^{∞}F(u)e^{j2πut}du\tag2 f(t)=F(u)ej2πutdu(2)

1.2.5卷积

作用:对输入的图像、数据进行特征提取

过程:将滤波器与输入 做卷积,能得到输出的特征。卷积操作可以视为一种 加权求和操作,输入可视为 “矩阵”,滤波器可视为一个“矩形矩阵”,两个矩阵的元素逐个相乘,再逐个相加。这个操作能够提取“输入”的特征,且 卷积操作可以识别、计算出 同一个特征在不同位置的特征向量

定义如下:
f ( t ) ※ h ( t ) = ∫ − ∞ ∞ f ( τ ) h ( t − τ ) d τ (1) f(t)※h(t)=\int_{-∞}^{∞}f(τ)h(t-τ)dτ\tag1 f(t)h(t)=f(τ)h(tτ)dτ(1)

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

1.3.1取样

连续函数的图像需要先转换为离散值 以便后期处理

1.3.2取样函数的傅里叶变换

F ( ω ) = 1 T ∑ k = − ∞ ∞ F s ( ω − k 2 π T ) (1) F(\omega) = \frac{1}{T}\sum_{k=-\infty}^{\infty}F_s(\omega - k\frac{2\pi}{T})\tag1 F(ω)=T1k=Fs(ωkT2π)(1)

其中,Fs(ω)是取样函数的频谱,定义为:
F s ( ω ) = 1 T ∑ n = − ∞ ∞ f ( n T ) e − j ω n T (2) F_s(\omega) = \frac{1}{T}\sum_{n=-\infty}^{\infty}f(nT)e^{-j\omega nT}\tag2 Fs(ω)=T1n=f(nT)ejωnT(2)
f(t)是原始信号,T是采样周期,ω是角频率。将取样函数的频谱复制到整个频域中,每个复制品都相差一个整数倍的基础频率,再将这些复制品加起来。这样做的结果是,在频域中形成了一系列相邻的频带,每个频带的中心频率都位于基础频率的整数倍处。这些频带的宽度由采样频率决定,而它们之间的间隔由采样周期决定。

需要注意的是,如果采样频率未达到一定的条件(下面有说,采样频率需要超过两倍的带宽上限),就可能会出现混叠现象。因此,在实际应用中,需要根据信号的特性合理地选择采样频率和采样周期,以避免混叠现象的发生。

1.3.3取样定理

取样定理也叫奈奎斯特定理,如果希望带限函数f(t)能完全从它的样本集恢复,则采样频率1/△T与带宽上限umax需满足下式:
1 △ T > = 2 u m a x \frac{1}{△T}>=2u_{max} T1>=2umax
在对连续信号做离散化的过程当中,可能会丢失部分信息。比如现在有一个正弦波信号,我每秒只采一个点,那么就会丢失很多数据,导致分析不出这是什么信号;所以,采集的点越密集,结果越能接近原始信号。

1.3.4混淆

这是一种错误,可能会导致将一个类别的图像错误地分类为另一个类别。如果采样频率低于两倍的带宽上限,可能产生“混淆”现象。

1.3.5由取样后的数据重建(复原)函数

通过已知的离散函数采样数据,重建出原本的连续函数。这个过程被称为信号重建或信号恢复。常用的方法是插值,即通过已知数据点之间的线性或曲线拟合来估计原本的函数值。

1.4单变量的离散傅里叶变换(DFT)

DFT是傅里叶变换在时域和频域上都呈现离散的形式,将信号从 时域 变换到 频域,再研究信号的频谱结构,但是计算量会很大,采样点多的时候算的很慢(应对措施为使用快速傅里叶变换FFT,以后可能会学到)

1.4.1由取样后的函数的连续变换得到DFT

尝试对一个一维信号sin(π**t)+2*sin(2π**t)+sin(3π*t)做离散傅里叶变换

代码如下:

# 设置采样点数
N = 128
signal = np.pi
# 生成正弦信号
x = np.linspace(0, signal, N)
y = np.sin(x)+np.sin(2*x)+np.sin(3*x)

# 绘制原始信号图像
plt.figure(figsize=(8, 6))
plt.plot(y)
plt.title('原始信号')
plt.xlabel('时间')
plt.ylabel('幅度')
plt.grid(True)

# 对信号做离散傅里叶变换
Y = np.fft.fft(y)

# 计算频率分量
freq = np.fft.fftfreq(N)

# 绘制采样点图像
plt.figure(figsize=(8, 6))
plt.stem(freq, np.abs(Y)/N, use_line_collection=True)
plt.title('离散傅里叶变换')
plt.xlabel('频率')
plt.ylabel('幅度')
plt.grid(True)
plt.show()

# IFT
x_n = np.fft.ifft(Y)
# 绘制采样点图像
plt.figure(figsize=(8, 6))
plt.stem(freq, np.abs(x_n)/N, use_line_collection=True)
plt.title('反离散傅里叶变换')
plt.xlabel('频率')
plt.ylabel('幅度')
plt.grid(True)
plt.show()

效果如下:

正弦信号图像
1
DFT取样(128个点)2
IFT3

DFT的原理是将时域信号乘以一个离散的fourier系数矩阵,对结果做矩阵相乘,得到一个离散的频域信号矩阵,矩阵中的每个元素对应一个频率

1.4.2取样和频率间隔间的关系

  • 取样:在时域上对信号进行采样

  • 频率间隔:在频域上对信号进行分割的频率间隔

    举例,我有一个长度为N的时域信号x,希望将它转换为频域信号。欲做DFT,必先对这个时域信号取样。x的取样结果为x_n,等于x[t:(t+N-1)],t是采样时间,相当于裁剪掉x一部分。下一步就是对取样结果做离散化处理(即:时域信号转频域信号),用取样结果乘以矩阵M,用这个结果与矩阵M再相乘,则x的频域表示为Y=dft(x,M)。最后,对频域信号Y做IFT(反离散傅里叶变换),重新变为时域信号,x=IFT(Y)。

    结论:取样频率不变,频率间隔越大,则频域信号的分辨率越高,如果间隔过大,会变得模糊。

1.5两个变量的函数的扩展

1.5.1二维冲激及其取样特性

二维冲激指一个二维函数 如式(1)(2)
δ ( t , z ) = { ∞ , t = z = 0 0 , t ≠ 0 (1) δ(t,z)=\left\{ \begin{matrix} ∞,t=z=0\\ 0,t≠0 \end{matrix} \right.\tag1 δ(t,z)={,t=z=00,t=0(1)

∫ − ∞ ∞ ∫ − ∞ ∞ δ ( t , z ) d t d z = 1 (2) \int_{-∞}^{∞}\int_{-∞}^{∞}δ(t,z)dtdz=1\tag 2 δ(t,z)dtdz=1(2)

取样 指将连续信号转换为离散时间信号的过程,表示为 式(3)
∫ − ∞ ∞ ∫ − ∞ ∞ f ( t , z ) δ ( t , z ) d t d z = f ( 0 , 0 ) (3) \int_{-∞}^{∞}\int_{-∞}^{∞}f(t,z)δ(t,z)dtdz=f(0,0)\tag 3 f(t,z)δ(t,z)dtdz=f(0,0)(3)

1.5.2二维连续傅里叶变换对

前面有提到一维连续傅里叶变换对(傅里叶正变换、逆变换),推广即存在二维连续傅里叶变换对,如式(1)(2)所示:
F ( μ , v ) = ∫ − ∞ ∞ ∫ − ∞ ∞ f ( t , z ) e − j 2 π ( μ t + v z ) d t d z (1) F(μ,v)=\int_{-∞}^{∞}\int_{-∞}^{∞}f(t,z)e^{-j2π(μt+ vz)}dtdz\tag 1 F(μ,v)=f(t,z)ej2π(μt+vz)dtdz(1)

f ( t , z ) = ∫ − ∞ ∞ ∫ − ∞ ∞ F ( μ , v ) e j 2 π ( μ t + v z ) d μ d v (2) f(t,z)=\int_{-∞}^{∞}\int_{-∞}^{∞}F(μ,v)e^{j2π(μt+ vz)}dμdv\tag 2 f(t,z)=F(μ,v)ej2π(μt+vz)dμdv(2)

μ、v均为频率变量

1.5.3二维取样和二维取样定理

二维取样:在二维信号中,将信号从空间域转换到频域的过程

二维取样定理:通过适当的取样,可以完全保留信号的空间信息

1.5.4图像中的混淆

图像混淆是指通过改变图像的像素值来使其变得模糊、混淆或失真。

  • 举一个对图像做混淆的例子,过程为:获取图像的宽、高;为了存储混淆后的内容,创建一个新的图像对象;然后对每个像素进行混淆(先获取每个像素的R、G、B,将它们随机化赋值);最后将重新赋值后的像素导入新的图像

  • 核心代码如下:

    width, height = img.size
    new_img = Image.new("RGB", (width, height), "white")
    # 对每个像素进行混淆
    for x in range(width):
        for y in range(height):
            # 获取原始像素值
            r, g, b = img.getpixel((x, y))
            # 对每个像素的RGB值进行一些随机的操作
            r = (r + random.randint(-10, 10)) % 256
            g = (g + random.randint(-10, 10)) % 256
            b = (b + random.randint(-10, 10)) % 256
            # 将混淆后的像素值写入新的图像对象中
            new_img.putpixel((x, y), (r, g, b))
    

    效果如下:
    原图:
    在这里插入图片描述
    混淆后:在这里插入图片描述

1.5.5二维离散傅里叶变换及其反变换

二维离散傅里叶变换(DFT)是一种计算二维信号变幻的方法,将二维信号分解为一组正弦、余弦函数,用以提取信号中的频域信息;它的 反变换 称为离散二维傅里叶反变换(DFT-IFT)

1.6二维离散傅里叶变换的一些性质

1.6.1空间和频率间隔的关系

具体表示为:
△ μ = 1 M △ T (1) △μ= \frac {1}{M△T}\tag 1 μ=MT1(1)

△ v = 1 N △ Z (2) △v=\frac {1}{N△Z}\tag2 v=NZ1(2)

其中,M与N表示宽度和高度,△T和△Z表示样本间的间隔,△μ和△v分别表示两个维度的频率域间隔

1.6.2平移和旋转

两种操作均可以通过变换矩阵实现

  • 平移:通过添加一个常量即可,如: X ′ = X + C X'=X+C X=X+C
  • 旋转:可以通过旋转矩阵实现,如: X ′ = R ∗ X X'=R*X X=RX

1.6.3周期性

二维离散傅里叶变换是一个周期性函数,其周期性取决于 DFT 的系数,周期性是指 DFT 的系数矩阵在时间上或空间上重复

1.6.4对称性

DFT)具有许多对称性,这些对称性与 DFT 的系数有关,DFT 的系数数组通常表示为一个二维矩阵,其中每个元素表示一个频率分量的振幅

DFT 的系数矩阵具有许多对称性,包括轴对称性、中心对称性和周期性。

1.6.5傅里叶谱和相角

  • 傅里叶谱:指的是 DFT变换后,数据在频域的分布情况。在DFT中,数据以二维矩阵的形式存在,矩阵的每一行代表数据的一个子集,通过DFT可以将二维矩阵转换为一个一维数组,它能提供数据的频域信息(峰值。频率、振幅),这个一位数组即傅里叶谱
  • 相角:指频率的相位

1.6.6二维卷积定理

二维循环卷积的表达式如下:
f ( x , y ) ※ h ( x , y ) = ∑ m = 0 M − 1 ∑ n = 0 N − 1 f ( m , n ) h ( x − m , y − n ) (1) f(x,y)※h(x,y) = \sum_{m=0}^{M-1}\sum_{n=0}^{N-1}f(m,n)h(x-m,y-n)\tag1 f(x,y)h(x,y)=m=0M1n=0N1f(m,n)h(xm,yn)(1)
二维卷积定理可以表示式(1),反变换为式(2):
f ( x , y ) ※ h ( x , y ) < − > F ( μ , v ) H ) ( μ , v ) (1) f(x,y)※h(x,y)<->F(μ,v)H)(μ,v)\tag1 f(x,y)h(x,y)<>F(μ,v)H)(μ,v)(1)

f ( x , y ) h ( x , y ) < − > F ( μ , v ) H ) ※ ( μ , v ) (2) f(x,y)h(x,y)<->F(μ,v)H)※(μ,v)\tag2 f(x,y)h(x,y)<>F(μ,v)H)(μ,v)(2)

1.6.7二维离散傅里叶变换性质的小结

公式汇总:内容很多,需要回到书本160页

1.7频率域滤波基础

1.7.1频率域的其它特性

2D DFT 可以将信号分解成不同频率的成分,类似于一维 DFT,但可以处理二维信号。因此,2D DFT 也具有频域滤波的特性,可以通过选择不同频率的成分来过滤信号

1.7.2频率域滤波基础

滤波公式如下:
g ( x , y ) = I D F T [ H ( μ , v ) F ( μ , v ) ] (1) g(x,y)=IDFT[H(μ,v)F(μ,v)]\tag1 g(x,y)=IDFT[H(μ,v)F(μ,v)](1)
其中:IDFT是离散傅里叶变换的逆变换,F是f的DFT,H是滤波函数,g是滤波后的结果

1.7.3频率域滤波步骤小结

如果有需要,可以为实验处理的图像矩阵补零。

1.7.4 空间和频率域滤波间的对应

可以看作是一种信号处理中的映射关系。

在空间域中,滤波器可以被看作是一组矩阵或向量;

在频率域中,滤波器则可以被看作是一组复指数或多项式

1.8一些滤波器

理想滤波器区别应用范围
低通低频段的信号被完全保留,高频段的信号被完全衰减去除信号中的高频段分量
高通理想高通滤波器则是指信号在通过滤波器后,高频段的信号被完全保留,低频段的信号被完全衰减保留信号中的高频段分量,例如图像信号处理中的高斯滤波器,可以平滑图像并保留图像的细节
布特沃斯滤波器区别(都是二阶滤波器)应用范围
低通传递函数是一个二次函数去除信号中的高频段分量
高通传递函数是一个三次函数保留信号中的高频段分量,例如图像信号处理中的高斯滤波器,可以平滑图像并保留图像的细节
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值