图像处理中常用的小波变换

在这里插入图片描述

Haar Wavelet

  • 变换特点
  1. 简单和快速: Haar小波由简单的矩形函数构成,计算仅需要简单的加减操作,没有复杂的数值计算,因此计算速度很快。
  2. 正交性: Haar小波函数之间正交,可以避免信息冗余。
  3. 分类识别能力: Haar小波特征具有对图像边缘、线条等视觉信息的编码能力,可用于面部识别等任务。
  • 计算过程
  1. 假设原始图像为f(x,y),其中(x,y)表示图像上的像素坐标。对原始图像进行Haar小波变换,得到LL,LH,HL和HH四个子带图像。Haar小波变换的过程可以表示为
    L L ( x , y ) = ( f ∗ h ) ( x , y ) LL(x,y) = (f * h)(x,y) LL(x,y)=(fh)(x,y)
    L H ( x , y ) = ( f ∗ g ) ( x , y ) LH(x,y) = (f * g)(x,y) LH(x,y)=(fg)(x,y)
    H L ( x , y ) = ( f ∗ h T ) ( x , y ) HL(x,y) = (f * h^T)(x,y) HL(x,y)=(fhT)(x,y)
    H H ( x , y ) = ( f ∗ g T ) ( x , y ) HH(x,y) = (f * g^T)(x,y) HH(x,y)=(fgT)(x,y)
    其中h和g分别是Haar小波的低通和高通滤波器, ∗ * 表示卷积操作, T ^T T表示转置操作。
  2. 将LL,LH,HL和HH四个子带图像组合成一个特征图,可以表示为 F ( x , y ) = [ L L ( x , y ) , L H ( x , y ) , H L ( x , y ) , H H ( x , y ) ] F(x,y) = [LL(x,y), LH(x,y), HL(x,y), HH(x,y)] F(x,y)=[LL(x,y),LH(x,y),HL(x,y),HH(x,y)]
    其中F(x,y)表示Haar小波变换得到的特征图,它包含了原始图像在不同频率尺度下的特征信息。
  3. 重复步骤1和2,可以得到多层Haar小波变换,从而获得多尺度的特征表示。
  • 代码实现

Daubechies Wavelet(dbN)

  • 变换特点
  1. 正交小波,具有MULT分辨率分析能力。
  2. 比Haar小波光滑,没有不连续现象。
  3. 具有紧致的支持域,可以有效地表示信号的局部特征。
  4. 在信号分析与重建中波形的平移正交性好。
  • 计算过程
    设原始信号为 x(n),db小波变换的过程为
  1. 进行多层滤波分解 c A ( n ) = ∑ k h ( k ) ⋅ x ( 2 n − k ) , c D ( n ) = ∑ k g ( k ) ⋅ x ( 2 n − k ) cA(n) = ∑k h(k)·x(2n-k),cD(n) = ∑k g(k)·x(2n-k) cA(n)=kh(k)x(2nk),cD(n)=kg(k)x(2nk)其中h(k)是db小波的低通分析滤波器,g(k)是高通分析滤波器,cA是逼近系数,cD是细节系数。
  2. 重构信号, x ′ ( n ) = ∑ k h ′ ( k ) ⋅ c A ( n − k ) + ∑ k g ′ ( k ) ⋅ c D ( n − k ) x'(n) = ∑k h'(k)·cA(n-k) + ∑k g'(k)·cD(n-k) x(n)=kh(k)cA(nk)+kg(k)cD(nk), 其中h’(k)和g’(k)分别是db小波的低通和高通合成滤波器。
  • 代码实现

Symlet Wavelet(symN)

  • 变换特点
  1. 具有准正交和紧致支持的特性。
  2. 对称小波函数,具有线性相移不变性。
  3. 具有与Daubechies小波相似的正则性。
  4. 相比Daubechies小波,具有更高的对称性。
  5. 适用于信号补偿和滤波处理。
  • 计算过程
    设原始信号为x(n)
  1. 进行多层滤波分解 c A ( n ) = ∑ k h ( k ) ⋅ x ( 2 n − k ) , c D ( n ) = ∑ k g ( k ) ⋅ x ( 2 n − k ) cA(n) = ∑k h(k)·x(2n-k),cD(n) = ∑k g(k)·x(2n-k) cA(n)=kh(k)x(2nk),cD(n)=kg(k)x(2nk)
    其中h(k)是sym小波的低通分析滤波器,g(k)是高通分析滤波器,cA是逼近系数,cD是细节系数。
  2. 重构信号, x ′ ( n ) = ∑ k h ( k ) ⋅ c A ( n − k ) + ∑ k h ( k ) ⋅ c D ( n − k ) x'(n) = ∑k h(k)·cA(n-k) + ∑k h(k)·cD(n-k) x(n)=kh(k)cA(nk)+kh(k)cD(nk)
    通过多层迭代滤波分解和重构,可以实现信号在不同频带尺度上的分解与重建。
  • 代码实现

Coiflet Wavelet (coifN)

  • 变换特点
  1. 具有更高阶的平滑性和对称性。
  2. 极近似对称,但严格对称性稍差于Symlet小波。
  3. 与Daubechies相比,逼近误差小,计算效率高。
  4. 可以同时提供小的相对误差和对称性两方面的优点。
  • 计算过程
    设原始信号为x(n)
  1. 进行多层滤波分解 c A ( n ) = ∑ k h ( k ) ⋅ x ( 2 n − k ) , c D ( n ) = ∑ k h ( k ) ⋅ x ( 2 n − k ) cA(n) = ∑k h(k)·x(2n-k),cD(n) = ∑k h(k)·x(2n-k) cA(n)=kh(k)x(2nk)cD(n)=kh(k)x(2nk),其中h(k)是Coif分析滤波器,cA是逼近系数,cD是细节系数。
  2. 重构信号,x’(n) = ∑k h(k)·cA(n-k) + ∑k h(k)·cD(n-k)合成滤波器与分析滤波器相同。
    Coif小波变换同样通过多次滤波分解与重构实现信号多分辨率分析。其区别在于采用对称滤波器提高重构精度。

Coif分析滤波器: h ( k ) = ( − 1 ) ( 1 − k ) ⋅ c ( k ) h(k) = (-1)^{(1-k)}·c(k) h(k)=(1)(1k)c(k),其中,k = 1,2,…,L,L是滤波器的长度。c(k)是定义在[0,L-1]上长度为L的序列,它满足下列条件:
c(0) = c(L-1) = 1,对k = 1,2,…,[(L-1)/2],有:c(k) = c(L-1-k),对k = 0,1,…,L-2,满足下列线性方程:
∑ k = 0 L − 2 c ( k ) ⋅ ( k + 1 / 2 ) n = 0 , n = 0 , 1 , . . . , N , N = ( L − 1 ) / 2 ∑ _{k=0} ^ {L-2} c(k)·(k+1/2)^n = 0, n = 0,1,...,N,N = (L-1)/2 k=0L2c(k)(k+1/2)n=0,n=0,1,...,N,N=(L1)/2
上述方程要求序列c(k)的第一项到第N项矩为0。
因此,c(k)序列满足对称性以及moments vanishing条件,最终可构造出具有较高阶平滑性和对称性的Coif分析滤波器。

  • 代码实现

Biorthogonal Wavelet(biorNr.Nd)

  • 变换特点
  1. 分析波和合成波使用不同滤波器。
  2. 非正交,但可以构造出半正交小波。
  3. 支持反对称波形,可以提供线性相移不变性。
  4. 可以自由设计析波和合成波的形状。
  5. 适用于需要波形对称性的应用。
  • 计算过程
    设原始信号为x(n)
  1. 分解变换 c A ( n ) = ∑ k h ( k ) ⋅ x ( 2 n − k ) , c D ( n ) = ∑ k g ( k ) ⋅ x ( 2 n − k ) cA(n) = ∑k h(k)·x(2n-k),cD(n) = ∑k g(k)·x(2n-k) cA(n)=kh(k)x(2nk)cD(n)=kg(k)x(2nk),h(k)和g(k) 分别是分析低通和高通滤波器。
  2. 重构信号 x ′ ( n ) = ∑ k h ′ ( k ) ⋅ c A ( n − k ) + ∑ k g ′ ( k ) ⋅ c D ( n − k ) x'(n) = ∑k h'(k)·cA(n-k) + ∑k g'(k)·cD(n-k) x(n)=kh(k)cA(nk)+kg(k)cD(nk), h’(k)和g’(k) 分别是合成低通和高通滤波器。两组滤波器满足半正交条件: h ′ ⋅ h + g ′ ⋅ g = δ h'·h + g'·g = δ hh+gg=δ h ′ ⋅ g = 0 , g ′ ⋅ h = 0 h'·g = 0, g'·h = 0 hg=0,gh=0其中δ为单位冲激序列。
  • 代码实现

Morlet Wavelet

  • 变换特点
  1. Morlet小波属于连续小波变换。
  2. 具有指数衰减的波形,提供良好的时频局部化特性。
  3. 实部为余弦函数,虚部为高斯函数,组成分析窗。
  4. 时频分析优良,可获得信号的瞬时频率。
  5. 可调节时间和频率分辨率,适应不同场景。
  • 计算过程
    Morlet小波函数的表达式为:
    ψ ( t ) = ( 1 / π 1 / 4 ) ∗ e ( j ω 0 t ) ∗ e ( − t 2 / 2 ) ψ(t) = (1/π^{1/4}) * e^{(jω0t)} * e^{(-t2/2)} ψ(t)=(1/π1/4)e(0t)e(t2/2),其中, ω 0 ω0 ω0为中心频率。对信号x(t)的Morlet小波变换为: W ( a , b ) = ( 1 / √ a ) ∫ x ( t ) ψ ∗ ( t − b / a ) d t W(a, b) = (1/√a)∫x(t)ψ*(t-b/a)dt W(a,b)=(1/√a)x(t)ψ(tb/a)dta为尺度因子,b为时间平移因子。通过改变a,b参数,可以得到信号x(t)在时频平面上的值。Morlet小波变换通过窗口函数匹配滤波的方式,实现信号的多分辨率时频分析。

  • 代码实现

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
小波变换是一种用于图像处理和压缩的常用方法。在MATLAB,可以使用信号处理工具箱的函数来实现小波变换。 首先,确保你已经安装了信号处理工具箱。然后,可以按照以下步骤进行小波变换: 1. 读取图像:使用`imread`函数读取图像,并将其转换为灰度图像(如果需要)。 ```matlab img = imread('image.jpg'); img_gray = rgb2gray(img); % 如果图像是彩色的,则将其转换为灰度图像 ``` 2. 小波变换:使用`wavedec2`函数对图像进行小波变换。 ```matlab [c, s] = wavedec2(img_gray, n, wavelet_name); ``` 这里,`n`是小波变换的尺度(层数),`wavelet_name`是所选的小波基函数的名称。 3. 小波系数处理:根据需求,可以对小波系数进行处理,如阈值去噪、压缩等。 ```matlab % 对小波系数进行阈值去噪 c_thresh = wthresh(c, 'h', threshold_value); ``` 4. 小波逆变换:使用`waverec2`函数对处理后的小波系数进行逆变换,得到恢复后的图像。 ```matlab img_reconstructed = waverec2(c_thresh, s, wavelet_name); ``` 完整的示例代码如下所示: ```matlab % 读取图像 img = imread('image.jpg'); img_gray = rgb2gray(img); % 如果图像是彩色的,则将其转换为灰度图像 % 小波变换 n = 3; % 设置小波变换的尺度 wavelet_name = 'haar'; % 使用haar小波基函数 [c, s] = wavedec2(img_gray, n, wavelet_name); % 对小波系数进行阈值去噪 threshold_value = 0.1; % 设置阈值值 c_thresh = wthresh(c, 'h', threshold_value); % 小波逆变换 img_reconstructed = waverec2(c_thresh, s, wavelet_name); % 显示原始图像和恢复后的图像 figure; subplot(1, 2, 1); imshow(img_gray); title('原始图像'); subplot(1, 2, 2); imshow(uint8(img_reconstructed)); title('恢复后的图像'); ``` 这是一个简单的示例,你可以根据实际需求进行进一步的调整和处理。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值