数字图像处理(4版)——第 7 章——小波及其它图像变换(下)(Rafael C.Gonzalez&Richard E. Woods)

目录

[7.10 小波变换(Wavelet transform)](#7.10 小波变换(Wavelet transform))

[7.10.1 缩放函数(Scaling functions)](#7.10.1 缩放函数(Scaling functions))

[7.10.2 小波函数(Wavelet functions)](#7.10.2 小波函数(Wavelet functions))

[7.10.3 小波级数展式(Wavelet series expansion)](#7.10.3 小波级数展式(Wavelet series expansion))

[7.10.4 一维离散小波变换(Discrete wavelet transform in one dimension)](#7.10.4 一维离散小波变换(Discrete wavelet transform in one dimension))

[7.10.5 快速小波变换(The fast wavelet transform)](#7.10.5 快速小波变换(The fast wavelet transform))

[7.10.6 二维小波变换(Wavelet transform in two dimensions)](#7.10.6 二维小波变换(Wavelet transform in two dimensions))

[7.10.7 小波包(Wavelet packets)](#7.10.7 小波包(Wavelet packets))


7.10 小波变 (Wavelet transform)

在1987年,小波被证明是信号处理和分析领域一种强大新方法 ------多分辨率理论( multiresolution theory**)** 的基础 (Mallat [1987])。多分辨率理论融合并统一了来自不同学科的技术,包括信号处理中的子带编码、数字语音识别中的正交镜像滤波以及金字塔图像处理。顾名思义,它关注的是信号(或图像)在多个分辨率下的表示和分析 。**缩放函数用于创建函数或图像的一系列近似,每一个近似的分辨率与其相邻近似的分辨率相差两倍;而称为小波的互补函数则用于编码相邻近似之间的差异。**离散小波变换(DWT)使用这些小波以及单个缩放函数,将函数或图像表示为小波和缩放函数的线性组合。因此,小波和缩放函数构成了DWT展开式的正交或双正交基。图7.3( f )和( g ) 中的Daubechies小波和双正交B样条以及上一节中的Haar基函数只是DWT中可以使用的众多基函数中的三个。

在本节中,我们将介绍用于解释和应用离散小波变换的数学框架。我们将使用基于 Haar 基函数的离散小波变换来阐述所介绍的概念。在学习过程中,谨记,关于 Haar 基函数的函数之离散小波变换与函数的 Haar 变换并非同一概念(尽管两者密切相关)。

7.10.1 缩放函数(Scaling functions)

考虑由所有整数平移和实平方可积父缩放函数φ ( x )的二进制缩放函数构成的基函数集------即,缩放并平移的函数之集合 ,其中

(7-121)

在这个公式中,整数的平移量 k 确定了 沿 x 轴的位置,而整数的缩放量 j 确定了其形状------即,其宽度和幅度(amplitude)。若我们将 j 限定为某个值,比如,限定为 ,则 是由 ( k = ... , -1 ,0 ,1,2,... ) 张成的函数空间( 表示为 )之基。增加 就增加了 中可表示的函数数量,从而可以将具有较小变化和更精细细节的函数包含在该空间中。如图 6.19 所示,以 Haar 缩放函数为例,这是由于随着 的增大,用于表示 空间中函数的缩放函数变得越来越窄,并且它们在 x 轴上的间隔也越来越小。

例子 7.15: Haar缩放函数。

考虑单位高、单位宽缩放函数

(7-122)

注意,其为来自公式 (7-115) 的 Haar 基函数 。图 7.19 显示了一些可以通过将公式 (7-122) 代入公式 (7-121) 生成的脉冲形状缩放函数。请注意,当缩放量为 1 时(即图 7.19(d) 和 (e) 中的 j = 1),缩放函数的宽度是缩放量为 0 时(即图 7.19(a) 和 (b) 中的 j = 0)的宽度的一半。此外,对于给定的 x 区间,缩放量为 1 的缩放函数的数量是缩主量为 0 的缩放函数的数量的两倍。例如,两个 缩放函数 位于区间 0 ≤ x < 1 中 ,而仅有一个 缩放函数 占据同样的区间。

同 7.19 ( f ) 展示了缩放空间 的不属于 的一个成员。图 7.19 ( a ) 和 ( b ) 中的缩放函数太粗糙(coarse)不能表示它,需要更高分辨率的函数(类似于7.19 ( d ) 和 ( e ) 这样的函数)。它们可用于(如图 7.19( f ) 所示)表示具有三项的展开式函数 。按类似的一种方式,缩放函数 (其既是一个基函数又是 的一个成员) 可以表示为如下形式的 的缩放函数[ 见图 7.19 [c] ]的一个线性组合:

前面例子中的 Haar 缩放函数,与所有离散小波变换的缩放函数一样,都满足多分辨率分析的四个基本要求(Mallat [1989a]):

I 缩放函数与其整数平移函数正交。

II 由缩放函数在较低缩放值上张成的函数空间嵌套于在较高缩放值下由缩放函数张成的函数空间之内。即

(7-123)

其中,⊂ 用于表示 "......的一个子集。" 缩放函数满足直观条件------若 ,则

III 唯一能够在所有缩放值上表示的函数是 f (x) = 0 。

IV 所有可积平方可积函数都可以表示为随着 j ⟶ ∞ 时的缩放函数的一个线性组合。换言之,

(7-124)

其中, 是可测平方可积的一维函数之集合。

在上述条件下,φ ( x) 可以表示为其自身的双倍分辨率副本的一个线性组合:

(7-125)

称为加细函数 (refinement function)或膨胀公式 (dilation equation)。公式 (7-125)定义了一个级数展开式,在其中,这个展开式函数 (根据公式(7-121)) 是基于一个比 φ ( x ) 更高的缩放值的缩放函数,而 是展开式系数。展开式系数可以汇聚到一个有序集中,即 , 通常称其为缩放函数系数,可从公式 (7-51) 和 (7-52) 推导出

(7-126)

例子 7.16: Haar缩放函数系数。

Haar 缩放函数[即公式 (7-22)]的系数是 ,即公式 (7-119) 中 Haar 矩阵 ( N = 2 ) 的第一行。计算这些系数的任务留给读者作为练习(参见问题 7.33),可以使用公式 (7-126) 进行计算。然后,根据公式 (7-125) 得出

图 7.19(c) 以图形方式展示了这种展开式,从图中可以看出,前面表达式中的括号项分别为

-----------------------------图 7.19:Haar 缩放函数---------------------------

7.10.2 小波函数(Wavelet functions)

给定一个满足上一节 MRA 要求的父缩放函数,则存在一个母小波函数 ψ (x) ,其整数平移和二进制缩放函数为

(7-127) ( 对于 j ,kZ)

张成任意两个相邻缩放空间之差( 空间)(difference)。若我们令 表示由小波函数 张成的函数空间,则

(7-128)

其中,⨁ 表示函数空间之并集(类似于集合之并集), 中的正交分量是 ,而作为 的基的缩放函数与作为 的基的小波函数正交:

(7-129)

图 7.20 以图形方式展示了缩放空间和小波空间之间的关系。图中每一个椭圆代表一个缩放空间,根据公式 (7-123),每一个缩放空间都嵌套或包含于分辨率更高的下一个缩放空间中。相邻缩放空间之间的差(空间)就是一个小波空间 。由于小波空间 驻留于缩放空间 ,因此小波函数 ψ ( x)------类似于公式(7-125) 中其缩放函数的对等部分------可以写成一个移位加权和(双分辨率缩放函数)。即,我们可以写成

(7-130)

其中, 系数(称为小波函数系数)可以组合成有序集 。由于整数小波平移是相互正交且与其缩放函数互补,因此,可以证明(参见(例如)Burrus, Gopinath, 和 Guo [1998]),公式 (7-130) 中的 与公式 (7-125) 之间的关系为

(7-131)

-------------------图 7.20:缩放函数粉间与小波函数空间之间的关系。-------------

例子 7.17: Haar小波函数和系数。

在前面的例子中,Haar 缩放系数定义为 。利用公式 (7-131),其相应的小波函数系统是

,

因此, 。这些系数对应公式 (7-119)中矩阵 ( N = 2 ) 的第二行。将这些值代入公式 (7-130) ,我们得到 ,如图 7.21(a) 所示。因此,Haar 母小波函数是

(7-132)

注意,它也是公式 (7-115) 中 Haar 基函数 。现在,利用公式 (7-127)我们可以生成缩放和平移的 Haar 小波全集(universe)。两个这样的小波 ( ) 分别见图 7.21 (b) 和 (c) 。注意,小波 更窄,正因为如此,其可以用于表示更精细的函数细节

图 7.21 (d) 显示了函数空间 的不包含于 中的一个成员。此函数在例子 7.15 中讨论过[见图7.19( f )]。尽管这个函数不能在 中获得准确表述,但公式 (7-128) 表明,其可以写成 缩放值的一个函数及小波函数的形式。最终的展开式为

其中,

在这里, f (x ) 利用 缩放函数的一个近似,而 是差值 ,其作为 小波的一个和。这些近似值和差值( 如图 7.19 (e) 和 ( f ) ) 以一种类似于低通和高通滤波器的方式整除 f (x ) 。f (x ) 的低频体现在 中------其表示 f (x ) 在每一个整数区间中的平均值------而高频细节编码于 中。

----------------------------图 7.21:Haar 小波函数----------------------------

7.10.3 小波级数展式(Wavelet series expansion)

将 (7-124) 和 (7-128) 结合在一起,所有可测平方可积的函数空间都可以定义为

,其中, 是一个任意的起始缩放值。从而我们可以定义函数 关于小波 ψ ( x ) 和缩放函数 φ ( x) 的小波级数展开式为

(7-133)

其中, 分别称为近似 (approximation)和细节系数 (detail coefficients)。任意可测平方可积一维函数都可以表示为 缩放函数和 小波 ( ) 的加权和。公式 (7-133) 中的第一个和式根据缩放值 的缩放函数生成了 f (x ) 的一个近似;第二个求和的每一个后继缩放值都提供了越来越精细的细节,因为它们是更高分辨率小波的叠加。如果缩放函数和小波函数是正交的,即

(7-134)

(7-135)

我们在此用到了公式 (7-13)。如果它们是双正交基的一部分,φψ 必须分别替换为其对偶函数

例子 7.18: Haar小波级数展式。

考虑简单函数

如图 7.22 (a) 所示。使用 Haar 小波公式 (7-122) 和 (7-132) ------且以缩放值 开始,公式 (7-134) 和公式 (7-135) 可用于计算下述展开式系数:

将这些值代入公式 (7-133) 中,我们求得了小波级数展开式

展开式中的第一项利用 来生成待展开函数的一个 近似。这个近似如图 7.22 (b) 所示,且该值为原函数的均值。第二项利用了 通过加入来自小波空间 的细节层次来加细近似值。加入的细节和导致的近似分别如图 7.22 (c) 和 (d) 所示。另一个层次的细节由来自具有 的相应小波的 的积构成。这个附加的细节如图 7.22 (e) 所示,而导致的 近似见图 7.22 ( f ) 所示 。注意,现在这个扩展开始类似于原函数。随着更高的缩放值(更高的细节层次)的加入,这个近似就变成了这个函数的更加准确的表示,随着 j ⟶ ∞ ,这个近似体现为一个极限值。

--------------图 7.22:利用 Haar小波实现的 的一个小波级数展式--------

7.10.4 一维离散小波变换(Discrete wavelet transform in one dimension)

与Fourier级数展开类似,上一节的小波级数展开式将一个单变量连续函数映射到一系列离散系数上。若被展开的函数是离散函数,则展开式的系数就是其离散小波变换 (DWT),而展开式本身就是该函数的逆离散小波变换 。在 (7-133) 至 (7-135)的公式中令 ,并将研究范围限定在 N 点离散函数,其中 N 是 2 的幂( 即 ) ,我们求得

(7-136)

其中,

(7-137)

(7-138)

( j = 0 , 1 , ... , J - 1 且 k = 0 , 1 , ..., )

由公式 (7-137) 和 (7-138) 定义的变换系数分别称为近视细节系数。 它们分别对应上一节中小波级数展开式中的 。注意,在公式 (7-137) 至 (7-138) 中,级数展开的积分已替换为求和。在离散情况下,使用的是类似于公式 (7-1) 和 (7-2) 的内积,而不是公式 (7-3) 中的内积。此外,在正变换和逆变换中都添加了一个归一化因子 ,这与示例 7.6 中的离散 Fourier变换 (DFT) 类似。该因子也可以单独以 1/N 的形式加入到正变换或逆变换中。最后,需要记住的是,公式 (7-137) 至 (7-138) 仅适用于正交基。若缩放函数和小波函数是实数值的,则可以省略共轭运算。若基是双正交的,则公式(7-137) 和公式 (7-138)中的 φψ 必须用其对偶函数 替代。

例子 7.19: 一个一维离散 小波变换。

为了说明公式 (7-137) 至 (7-138) 的用法,考虑一个离散的四点函数,其中 f (0) = 1,f (1) = 4,f (2) = -3,f (3) = 0。由于 N = 4,J = 2,公式 (7-136) 至 (7-138) 中的求和是针对 x = 0, 1, 2, 3 进行的。当 j 为 0 时,k 为 0 ;当 j 为 1 时,k 为 0 或 1。若我们使用 Haar 缩放函数和小波函数,并假设 f (x) 的四个样本分布在缩放函数的支集(support)上(即 1),则根据公式 (7-137)可求得

注意,我们使用了 j = k = 0 时的Haar 缩放函数的均匀间隔的样本------即,φ (x ) = 1 ( x = 0 , 1 ,2 ,3 ) 。采样值与第 7.9 节公式 (7-120) 中 Haar 变换矩阵 的第一行元素相匹配。利用公式 (7-138) 和 的类似间距样本( 的2 , 3 ,和 4 行的元素 ),我们求得

因此,我们的简单四样本函数相对于 Haar 缩放函数和小波函数的离散小波变换是 。由于变换系数是两个变量的一个函数------缩放量j 和平移量k------因此我们将其组合进一个有序集中。这个集合的元素已获证等价于这个函数的列率排序 Haar 变换的元素:

回顾上一节的内容,Haar变换是单个变换域变量(用 u 表示)的函数。

公式 (7-136) 能够根据小波变换系数重构原函数。展开求和式,我们得到

( x = 0 , 1 , 2 , 3 ) 。若 x = 0 (例如) ,则

与正向变换类似,在计算逆变换时也使用了缩放函数和小波函数的均匀间隔采样值。

7.10.5 快速小波变换(The fast wavelet transform)

多分辨率加细公式及其对应的小波公式 (7-125) 和 (7-130) 使得这事成为可能:我们可以将任意缩放量下的缩放函数和小波函数定义为更高缩放量下缩放函数的平移双倍分辨率副本的函数。按照同样的方式,小波级数展开式的展开式系数和离散小波变换可以分别使用下面的公式按递归方式进行计算:

(7-139)

(7-140)

(7-141)

(7-142)

与公式 (7-133) 和 (7-136) 不同,在这些公式中,计算所需的唯一缩放系数仅位于缩放值 处,而公式 (7-139) 至 (7-142) 需要计算直至最高缩放值为止的所有缩放系数。将这些公式与定义离散卷积的公式(即公式 (4-48))进行比较,我们发现 n 是卷积的伪变量(dummy variable),而剩余的 负号(-)和 2k 项则颠倒了 系数的顺序,并分别在 n = 0 , 2 , 4 , ... 处对卷积结果进行采样。因此,对于离散小波变换,我们可以将公式 (7-141) 和 (7-141) 重写为

(7-143)

(7-144)

其中,卷积是在在时刻(instants) n = 0 , 2 , ... , 处进行计算的,如图 7.23 所示,在非负偶数索引处计算卷积等价于进行滤波和 2 倍下采样(即每隔一个卷积值丢弃一个值)。对于一维样本序列 y (n )( n = 0 , 1 , 2 , ... ),下采样序列 定义为

(7-145)

公式 (7-143) 和 (7-144) 是离散小波变换 (DWT) 的一种计算高效形式------快速小波变换 (FWT) 的定义公式 。对于长度为 的输入序列,所需的数学运算次数约为 O ( N )。也就是说,乘法和加法的次数与输入序列的长度呈线性关系------因为图 7.23 中 FWT 滤波器组(bank)执行的卷积运算所需的乘法和加法次数与参与卷积计算的序列之长度成正比。因此,FWT 与快速Fourier变换 (FFT) 算法相比具有优势,FFT 算法所需的运算次数约为

-------------------------图 7.23:这是一个用于正交滤波器的快速小波变换分析滤波器组。符号 ★ 和 2↓ 分别表示卷积和按乘 2 的下采样-----------------------------。

图 7.24 (a) 显示了一个三缩放滤波器组(three-scale filter bank),其中图 7.23 所示的快速小波变换 (FWT) 分析滤波器被"迭代"了三次,从而创建了一个三级结构,用于计算缩放值为 J -- 1,J - 2 和 J - 3 的变换系数。注意,最高缩放系数假定为函数本身的采样值。(注:如果函数 f (x ) 的采样频率高于Nyquist频率(通常情况下都是如此),则其采样值可以很好地近似表示采样分辨率下的缩放系数,并且可以用作初始高分辨率缩放系数输入。换言之,在采样缩放值上不需要小波系数或细节系数。最高分辨率的缩放函数在公式 (7-141) 和 (7-142) 中充当单位离散脉冲函数,从而允许将 f (x ) 用作第一个双频带滤波器组的缩放(近似)输入(Odegard,Gopinath 和 Burrus [1992])。) 否则,在缩放值 j 处的近似和细节系数可通过将 ( 缩放值 ( j + 1 )的近似系统)与逆序缩放和小波系数 ( )进行卷积,然后对结果进行子采样而求得。若存在 K 个缩放和小波系数, 则这个逆序缩放和小波系数分别是 。对于一个长度为 的离散输入,图 7.23 中的滤波器组可以迭代到 J 次。在运算过程中,图 7.24(a)最左边的滤波器组将输入函数拆分成一个与缩放系数 对应的低通近似分量和一个与 对应的高通细节分量。见图 7.24(b) ,其中,缩放空间 分裂成小波空间 和缩放空间 。原函数的频谱分裂成两个半带宽分量, 图 7.24(a) 中的第二个滤波器组分裂成缩放空间 的频谱。第一个滤波器组的上半带宽分别分裂成四分之一带宽的空间 以及相应的 FWT 系数 。最后,第三个滤波器组生成八分之一带宽的空间 和缩放空间 ,且 FWT 系数分别为 。正如第 7.4 节中的公式 (7-73) 所述,并在图 7.5 中所示,随着小波函数尺度的增大,小波的频谱会被拉伸(即其带宽加倍,并向上移动两倍)。在图 7.24(b) 中 ,这可以通过以下事实来证明 的带宽为 π /2,而 的带宽分别为 π /4 和 π /8 。对于更高缩放值的变换,小波的频谱带宽会继续减小,但永远不会达到角频率 ω = 0。因此,始终需要一个低通缩放函数来捕获直流附近的频率。

----------------------------------图 7.24:(a) 三级或三缩放快速小波变换分析滤波器组;(b) 其频率分割特性。由于滤波器脉冲响应的离散Fourier变换具有对称性,因此通常只显示 [0,π] 区域。-------------------------------------------------------

例子 7.20:计算一个一维快速小波变换。

为了阐明上述概念,我们考虑例子 7.19 中的离散函数f (x) = { 1 , 4 , −3 , 0 }。与该示例一样,我们将计算它相对于 Haar 缩放函数和小波函数的 Haar 小波变换。但是,这里我们不直接使用 Haar 基函数。相反,我们将使用示例 7.16 和 7.17 中相应的缩放系数和小波系数:

(7-146)

(7-147)

由于例子 7.19 中计算的变换是有序集 ,因此我们将计算缩放 j = {0,1} 对应的双缩放快速小波变换 (FWT)。回顾一下前面的例子,当 j = 0 时,k = 0;而当 j = 1 时,k 为 0 和 1。该变换将使用一个两级滤波器组进行计算,该滤波器组与图 7.24(a) 中的三级滤波器组类似。图 7.25 显示了所得的滤波器组以及由所需的 FWT 卷积和下采样得到的序列。注意,输入函数 f (x ) 作为最左侧滤波器组的缩放(或近似)输入。为了计算图 7.25 上分支末端出现的系数 ,我们首先将 f (x ) 与 进行卷积。对于 Haar 缩放和小波系数K = 2,逆序小波系数为 。正如第 3.4 节所述,卷积需要将其中一个卷积函数绕原点翻转,然后将其滑过另一个函数,并计算两个函数逐点乘积之和。 将逆序的小波系数 翻转得到 ,并将其从左到右滑过输入序列 { 1 , 4 , -3 , 0 }, 我们得到

其中,第一项对应卷积索引 n = -1 ,在图 7.25 中,与负卷积伪变量(即 n < 0 )相关的卷积值用蓝色表示。由于缩放值 j = 1,下采样后的卷积对应于 n 的偶数索引,直至 。因此,n = 0 和 2,且 。其余的卷积和下采样过程以类似的方式进行。

-----------------------------图 7.25:使用 Haar 尺度函数和小波系数,计算序列 {1, 4, -3, 0 } 的两缩放快速小波变换。-----------------------------------------

在数字信号处理 (DSP) 中,图 7.23 至 7.25 所示的滤波器称为有限脉冲响应 (FIR) 滤波器。它们对单位脉冲的响应是一个有限的输出序列,其值等于滤波器系数。图 7.26(a) 显示了一种广为人知的实系数 FIR 滤波器结构,该结构已在文献中得到广泛研究。这种结构称为双频带子带编码和解码系统,由两个分析滤波器 以及两个合成滤波器 组成。分析滤波器将输入分解为两个半长序列 。如图 7.26(a) 所示,滤波器 是一个低通滤波器,其输出是 f (x ) 的近似值;滤波器 是一个高通滤波器,其输出是低通近似值与 f (x ) 之间的差值。如图 7.26(b) 所示,输入序列的频谱被分成两个半频带 。然后使用合成滤波器组 的上采样版本重建 。对于一维采样序列 y (n ),上采样序列 可以定义为:

(7-148)

其中,上采样为 2 的一个倍数,将采样率提高两倍可以理解为在y (n )的每一个样本之后插入一个0 。子带编码的目标是选择合适的分析滤波器和合成滤波器,使得 。当完成这一目标之后,称该系统采用完美重构滤波器,并且这些滤波器(除了一些常数因子)之间存在以下关系:

(7-149)

(7-150)

在这两个公式中, 改变了奇数索引分析滤波器系数的符号并称为调整 (modulation)。图 7.26(a) 中,每一个合成滤波器都是与其对角线位置的分析滤波器的调制版本。因此,分析滤波器和合成滤波器称为交叉调制滤波器 。它们的脉冲响应是双正交的。若其同样是正交的且长度为 K ,其中 K 能被 2 整除,则其满足附加约束

(7-151)

注意到图 7.23 中的 FWT 分析滤波器组与图 7.26(a) 中的子带分析滤波器组之间的相似性,我们可以推导出图 7.27 所示的逆 FWT 合成滤波器组。对于正交滤波器的情况,式 (7-151) 约束合成滤波器必须是分析滤波器的顺序反转版本。比较图 7.23 和图 7.27 中的滤波器,我们发现确实如此。然而,必须记住,使用双正交分析和合成滤波器也可以实现完美重构,而这些滤波器并非彼此的逆序版本。双正交分析和合成滤波器根据式 (7-149) 和 (7-150) 进行交叉调制。最后,我们注意到,图 7.27 中的逆滤波器组,与图 6.23 中的正向 FWT 滤波器组一样,可以迭代用于计算多缩放逆 FWT。在下一个示例中,我们将考虑一个两缩放的逆 FWT 结构。其中所示的系数组合过程可以扩展到任意缩放值的 FWT。

-------------------------图 7.26:(a) 一种用于子带编码和解码的双频带数字滤波系统;(b) 其频谱分割特性。------------------------------------------------------

---------图 7.27:用于正交归一化滤波器的逆快速Walsh变换合成滤波器组。--------

例子 7.21:计算一个一维逆快速小波变换。

逆快速小波变换的计算过程与其正向变换过程类似。图 7.28 展示了示例 7.20 中所考虑序列的逆变换过程。计算开始时,将第 0 级的近似系数和细节系数进行上采样,分别得到 { 1, 0 } 和 { 4, 0 }。与滤波器 进行卷积得到 ,当将其加入计算过程后就给出 。因此,图 7.28 中的一级近似值(与图 7.25 中计算得到的近似值相匹配)被重建出来。以此类推,f (x) 在第二个合成滤波器组的右侧形成。

--------------------------------图 7.25:计算具有Haar缩放和小波变换的序列 的一个二缩放逆快速小波变换 -----------------------------

7.10.6 二维小波变换(Wavelet transform in two dimensions)

上一节的一维小波变换可以很容易地推广到二维函数,例如图像 。在二维空间中,需要一个二维缩放函数 w ( x , y ) 和三个二维小波 , , 和 。每一个小波函数都是两个一维函数之积。排除掉产生的一维的结果(如 φ (x )ψ (x)),然后余下的四个乘积生成可分离的缩放函数

(7-152)

和可分离"方向敏感"小波

(7-153)

(7-154)

(7-155)

这些小波可测量函数变化------图像中的强度变化------沿着不同的方向: 测量沿列的变化(例如,水平边缘), 对应沿行的变化(如,垂直边缘),而 对应沿对角线的变化。方向敏感性是公式 (7-153) 至 (7-155) 中可分离性的自然结果;它不会增加本节讨论的二维变换的计算复杂度。

与一维离散小波变换类似,二维离散小波变换(2-D DWT)也可以使用数字滤波器和下采样器来实现。对于可分离的二维缩放函数和小波函数,我们只需对 f ( x ,y ) 的每一行进行一维快速小波变换(1-D FWT),然后对所得结果的每一列进行一维快速小波变换。图 7.29(a) 以框图形式展示了这一过程。值得注意的是,与图 7.23 中的一维快速小波变换类似,二维快速小波变换"滤波"了缩放 j + 1 的近似系数(图中表示为 ,以构建缩放值 j 的近似系数和细节系数。然而,在二维的情况下,我们得到了三个细节系数集------水平细节 ,垂直细节 ,以及对角细节

图 7.29(a) 所示的单缩产滤波器组可以通过"迭代"(将近似输出连接到另一个滤波器组的输入)来生成 PJ 缩放的变换,其中缩放 j 等于 J -- 1 , J -- 2 , ... , J -- P 。与一维情况类似,图像 f ( x , y ) 用作 的输入。将其行与 进行卷积并对列进行下采样,我们得到两个子图像,其水平分辨率降低了 2 倍。高通或细节分量表征图像的垂直方向高频信息;低通或近似分量包含其低频垂直信息。然后,对这两个子图像进行逐列滤波和下采样,得到四个四分之一大小的输出子图像------ 。这些子图像通常排列如图 7.29(b) 所示,它们是 f ( x ,y) 与公式 (7-152) 至 (7-155) 中的二维缩放函数和小波函数之积,之后在每一个维度上进行两倍下采样。

图 7.29(c) 显示了合成滤波器组,它执行与前面描述的过程相反的操作。正如预期的那样,重建算法与一维情况类似。在每一次迭代中,将四幅缩放为 j 的近似子图像和细节子图像进行上采样,并与两个一维滤波器进行卷积------一个滤波器作用于子图像的列,另一个作用于子图像的行。将结果相加即可得到缩放为j + 1 的近似图像,并重复此过程,直到重建出原图像。

--------------------------图 7.29:二维快速小波变换:(a) 分析滤波器组;(b) 分解结果;(c) 合成滤波器组。注意,mn 是卷积运算的伪变量,而 j (与一维情况类似)表示缩放值,kl表示平移。------------------------------------------------

例子 7.22:计算二维快速小波变换。

在本例中,我们计算了基于 Haar 基函数的二维多缩放快速小波变换 (FWT),并将其与第 7.9 节中的传统 Haar 变换进行比较。图 7.30(a) 至 (d) 分别显示了一幅 512 × 512 的窗台上花瓶的灰度图像、其基于 Haar 基函数的一级和二级离散小波变换,以及其 Haar 变换。小波变换的计算将在稍后讨论。图 7.30(d) 中的 Haar 变换是使用 512 × 512 的 Haar 变换矩阵(参见公式 (7-114) 至 (7-118))和公式 (7-35) 中定义的基于矩阵的运算计算得出的。图 7.30(b) 和 (c) 中的细节系数以及图 7.30(d) 中的 Haar 变换系数都进行了缩放,以使其底层结构更加清晰可见。当任意两个变换的相同区域以蓝色阴影显示时,这些区域内的相应像素值是相同的。

为了计算图 7.30(b) 所示的单缩放快速小波变换,需要将图 7.30(a) 中的图像作为输入,送入类似于图 7.29(a) 所示的滤波器组进行处理。由于 P = 1 , 以及由此产生的四个四分之一大小的分解输出[即近似 及水平,垂直和对角细节 , , 和 根据图 9.29(b) 排布以产生图 7.30(b) ] 。图 7.30(c) 中的双尺度变换也采用了类似的过程,但滤波器组的输入是图 7.30(b) 左上角的一个四分之一大小的近似子图像 。如图 7.30(c) 所示,这个四分之一大小的近似子图像随后被第二次滤波过程生成的四个四分之一大小(现在是原始图像大小的 1/16)的分解结果所取代。每次通过滤波器组都会产生四个四分之一大小的输出图像,这些图像会替换掉它们所对应的输入图像。这个过程可以重复进行,直到 P = J = 9,从而生成九缩放变换。

请注意图 7.30(b) 和 (c) 中与 , , 和 相关的子图像的方向性。这些图像中的对角线细节(即图中蓝色阴影区域所示的 区域)与图 7.30(d) 中相应的 Haar 变换阴影区域完全相同。在一维情况下,正如示例 7.19 所示,基于 Haar 基函数的 J 缩放一维快速小波变换 (FWT) 与其一维 Haar 变换是相同的。这是因为这两种变换的基函数是相同的;它们都包含一个缩放函数和一系列缩放和平移的小波函数。然而,在二维情况下,基图像是不同的。方程 (7-153) 到 (7-155) 中定义的二维可分离缩放函数和小波函数引入了传统 Haar 变换中不存在的水平和垂直方向性。例如,图 7.31(a) 和 (b) 分别是 8 × 8 Haar 变换和基于 Haar 基函数的三缩放快速小波变换的基图像。请注意沿主对角线的蓝色高亮区域,这些区域的基图像是匹配的。图 7.30(b) 到 (d) 中也出现了相同的模式。如果计算花瓶的九缩放小波变换,则其所有阴影区域都将与图 7.30(d) 中的 Haar 变换匹配。

------------图 7.30:(a) 一个 512 × 512 像素的花瓶图像;(b) 单缩主和快速小波变换;(c) 双缩放快速小波变换;(d) 原始图像的 Haar 变换。所有变换都经过缩放以突出其底层结构。当两个变换的对应区域以蓝色显示时,表示对应的像素值相同。---------

------------------图 7.31:(a) 尺寸为 8 × 8 的 Haar 基图像[如图 7.18(c)所示];(b) 基于 Haar 基函数的三缩放 8 × 8 离散小波变换的基图像。--------------------

最后,我们用一个简单的例子来演示小波在图像处理中的应用。与Fourier变换类似,基本方法如下:

I 计算图像相对于选定小波基的二维小波变换。表 7.1 列出了一些代表性的小波基,包括它们的缩放函数和小波函数以及相应的滤波器系数。滤波器系数是在图 7.26 的上下文中给出的。对于正交小波,给出了低通合成系数;其余滤波器必须使用公式 (7-151) 计算。对于双正交小波,给出了两个分析滤波器,合成滤波器必须使用公式 (7-149) 和 (7-150) 计算。

II 修改计算出的变换,以利用离散小波变换 (DWT) 的以下能力:(1) 对图像像素进行去相关性,(2) 揭示重要的频率和时间特性,和/或 (3) 衡量图像与变换基图像的相似性。可以进行各种修改,例如图像平滑、锐化、降噪、边缘检测和压缩(仅举几例)。

III 计算逆小波变换。

由于离散小波变换将图像分解为空间有限、频带有限的基图像的加权和,因此大多数基于 Fourier 变换的成像技术都有相应的"小波域"对应方法。

例子 7.23:基于小波变换的边缘检测。

图 7.32 简单地展示了前面三个步骤。图 7.32(a) 显示了一幅 128 × 128 像素的计算机生成的二维正弦脉冲图像,背景为黑色。图 7.32(b) 是该图像相对于四阶对称小波(简称"symlets")的二维离散小波变换。虽然这些小波并非完全对称,但它们的设计目标是在给定的紧支撑范围内,具有最小的不对称性和最多的消没矩(vanishingmoments)(Daubechies [1992])。(注:第 k 个小波 ψ ( x ) 的矩是 。消没矩会影响缩放函数和小波函数的平滑度以及我们将它们表示为多项式的能力。N 阶对称小波具有N 个消没矩。) 表 7.1 的第四行显示了对称小波的小波函数和缩放函数,以及相应的低通合成滤波器的系数。其余滤波器系数使用公式 (7-151) 计算得出,其中 K(滤波器系数的数量)设置为 8:

在图 7.32(c) 中,通过将离散小波变换的近似分量值设置为零,从而消除了该分量。如图 7.32(d) 所示,使用这些修改后的系数计算逆变​​换的最终效果是边缘增强,这与第 4.9 节讨论的基于Fourier变换的图像锐化结果类似。请注意,尽管信号和背景之间的过渡相对平缓呈正弦曲线状,但它们之间的边界仍然被很好地勾勒出来。通过将水平细节分量也置零(参见图 7.32(e) 和 ( f )),我们可以分离出垂直边缘。

表 7.1:一些代表性的小波。

译注:

Haar小波:最古老、最简单的小波。正交且不连续。

Daubechies 小波族:在给定支撑区间内,具有最多消没矩的正交小波。记作 dbN ,其中 N 为消没矩的个数;图中显示了 db2 和 db4;db1 是上一行的 Haar 小波。

对称小波族:对于给定的支撑范围(如图所示的sym4或四阶),该方法具有最小的不对称性和最多的消没矩。

Cohen-Daubechies-Feauveau 9/7 :双正交B样条曲线用于不可逆的 JPEG2000 压缩标准(参见第八章)。

----------------------------图 7.32:修改离散小波变换(DWT)用于边缘检测:(a)原图像;(b)基于四阶对称小波的双尺度DWT;(c) 修改后的DWT,其中近似系数设置为零;(d)对(c)进行逆DWT;(e) 修改后的DWT,其中近似系数和水平细节系数均设置为零;( f )对 (e) 进行逆DWT。( 注:当细节系数为零时,显示为中灰色;当近似系数为零时,显示为黑色。)-----------------------------------------------------------

7.10.7 小波包(Wavelet packets)

快速小波变换将函数分解为缩放函数和小波函数之和,这些函数的带宽呈对数关系 。也就是说,函数的低频部分用带宽较窄的缩放函数和小波函数表示,而高频部分则用带宽较宽的函数表示。图 6.5 清晰地展示了这一点。每一个高度相同的水平条状块代表单个快速小波变换缩放的基函数,随着频率轴向上移动,这些条状块的高度呈对数增长。为了更好地控制时频平面的划分(例如,获得更高频率下更窄的带宽),必须对快速小波变换进行推广,从而得到一种更灵活的分解方法,称为小波包( Coifman 和 Wickerhauser [1992])。这种推广的代价是计算复杂度从快速小波变换的 O (N ) 增加到小波包的

再次考虑图 7.24(a) 所示的三缩放滤波器组,但将分解过程想象成一棵二叉树。图 7.33(a) 详细描述了这棵树的结构,并将图 7.24(a) 中相应的 FWT 缩放系数和小波系数与树的节点关联起来。根节点被赋予最高缩放的近似系数,这些系数是函数本身的采样值,而叶节点则继承了变换的近似系数和细节系数输出。两个中间节点 是滤波器组的近似值,它们随后被滤波,生成四个额外的叶节点。请注意,每个节点的系数都是线性展开的权重,该线性展开产生根节点 f (x ) 的一个带限"片段"。由于任何这样的片段都是已知缩放子空间或小波子空间的一个元素,因此我们可以用相应的子空间替换图 7.33(a) 中的生成系数。结果就是图 7.33(b) 所示的子空间分析树

分析树提供了一种简洁且信息丰富的多缩放小波变换表示方法。它们绘制简单,比相应的基于滤波器和下采样器的框图占用空间更少,并且可以相对轻松地检测有效的分解方案。例如,图 7.33(b) 中的三尺度分析树表明了三种可能的展开选项:

(7-156)

(7-157)

(7-158)

它们分别对应于一维函数的一缩放、两缩放和三缩放FWT分解。有效的分解需要一个近似项(或缩放子空间)以及足够多的细节分量(或小波子空间)来覆盖图 7.24(b) 所示的频谱。一般来说,P 缩放FWT分析树支持 P 种不同的分解。

分析树也是表示小波包的一种有效机制,小波包本质上就是对传统小波变换进行细节迭代滤波 。因此,图 7.33(b) 中的三缩放FWT 分析树就变成了图 7.34 中的三缩放小波包树。请注意,这里引入了额外的下标。每个双下标节点的第一个下标表示其父节点在FWT中的尺度。第二个下标是一个由"A"和"D"组成的变长字符串,它编码了从父节点到当前节点的路径。"A"表示近似滤波,而"D"表示细节滤波。例如,子空间节点 是通过对缩放 J - 1 的FWT系数(即图 7.34 中的父节点 ) 进行额外的细节滤波( 得到 ,然后再进行近似滤波( 得到 )而获得的。图 7.35(a) 和 (b) 分别是图 7.34 中分析树的滤波器组特性和频谱分割特性。请注意,图 7.35(a) 中滤波器组的"自然顺序"输出在图 7.35(b) 中已根据频率内容重新排序(有关"频率排序"小波的更多信息,请参见问题 7.46)。

-----------------------------图 7.33:图 7.24 所示的双缩放快速小波变换分析滤波器组的 (a) 系数树和 (b) 分析树。----------------------------------------------

图 7.34 中的三缩放包树几乎是三缩放 FWT 树所能实现的分解(以及相关的时频分块)数量的三倍。回想一下,在普通的 FWT 中,我们仅对低通频带进行分割、滤波和下采样。这会在用于表示函数的缩放空间和小波空间的带宽之间建立固定的以 2 为底的对数关系 [参见图 7.24(b)]。因此,虽然图 7.24(a) 中的三尺度 FWT 分析树提供了三种可能的分解------由公式 (7-156) 至 (7-158) 定义------但图 7.34 中的小波包树支持 26 种不同的分解。例如, 以及函数 f (x) 可以展开为

(7-159)

其频谱如图 7.35(b) 所示,或者如

(7-160)

其频谱如图 7.36 所示。请注意该频谱与图 7.35(b) 所示的完整数据包频谱或图 7.24(b) 所示的三缩放 FWT 频谱之间的区别。一般来说,P 缩放一维小波包变换(以及相关的 P + 1 级分析树)支持

(7-161)

种不同的分解,其中 D (1) = 1 。由于存在大量有效的展开式,基于数据包的变换可以更好地控制分解函数频谱的划分。这种控制的代价是计算复杂度的增加。请比较图 7.35(a) 和图 7.24(a) 中的滤波器组。

**---------------------**图 7.34:三缩放(three-scale)小波包分析树-------------------

**----**图 7.35:三缩放全小波包分析树的 (a) 滤波器组特性和 (b) 频谱分割特性。-----

**-----------------------**图 7.36:公式 (7-160) 中分解的频谱。-------------------

现在考虑图 7.29(a) 所示的二维四频带滤波器组。正如我们早前指出,其将近似 分解成输出 , 和 。由于在一维的情况下,其可以"迭代"以生成在 j = J -- 1,J -- 2 ,... ,J -- 1 处的 P 缩放变换,且 。图 7.29(a) 中 j + 1 = J 时,第一次迭代产生的频谱如图 7.37(a) 所示。请注意,它将频率平面划分为四个相等的区域。平面中心的低频四分之一频带与变换系数 和缩放空间 相对应。这种命名方式与一维情况一致。然而,为了适应输入的二维特性,我们现在有三个(而不是一个)小波子空间。其表示为 , 且分别对应系数 ,图 7.37(b) 显示了由此产生的四波段、单缩放四元小波变换分析树。请注意上标,它们将小波子空间的名称与其对应的变换系数联系起来。

图 7.38 显示了一个三缩放二维小波包分析树的一部分。与图 6.34 中的一维对应图类似,每一个节点(它是传统 FWT 细节节点的后代)的第一个下标表示其父细节节点的缩放。第二个下标是一个可变长度的字符串,由"A","H","V"和"D"组成,用于编码从父节点到当前节点的路径。这个标为 的节点(例如)是通过对缩放 J -- 1 FWT 水平细节系数(即图 7.38 中的父 )进行"行/列滤波"而获得的,具体是加一个细节/近似滤波 ( 生成 ) ,再接一个细节/细节滤波器(得出 ) 。一个 P缩放 2 维小波包树支持

(7-162)

种不同的展开式 ,其中 D( 1 ) = 1 。因此,图 7.38 所示的三层树结构提供了 83,522 种可能的分解方案。如何在这些方案中进行选择是下一个示例要讨论的问题。

---------图 7.37:二维快速小波变换的首次分解:(a)频谱图和(b)子空间分析树。----

---------图 7.38:一个三层缩放的完整小波包分解树。此处仅显示了该树的一部分。---

例子 7.24:二维小波包分解。

正如上文所述,单个小波包树提供了多种分解方案。事实上,可能的分解方案数量通常非常庞大,以至于逐一列举或检查它们既不切实际,甚至是不可能的。因此,迫切需要一种高效的算法来寻找符合特定应用标准的最佳分解方案。正如我们将看到的,经典的基于熵( entropy**)** 和能量( energy**)** 的代价函数( cost function**)**适用于许多情况,并且非常适合用于二叉树和四叉树搜索算法。

考虑如何减少表示图 7.39(a) 所示的 400 × 480 指纹图像所需的数据量。图像压缩将在第 8 章详细讨论。在本例中,我们希望选择"最佳"三缩放小波包分解作为压缩过程的起点。使用三缩放小波包树,共有 83,522 种潜在的分解方案(根据公式 (7-162))。图 7.39(b) 显示了其中一种------一个完整的小波包,64 个叶节点的分解,类似于图 7.38 中的分析树。请注意,树的叶节点对应于图 7.39(b) 中 8 × 8 分解子图像阵列的子带。然而,这种特定的 64 叶节点分解在某种程度上对于压缩目的而言是最优的概率相对较低。由于缺乏合适的优化准则,我们既无法证实也无法否认这一点。

对于图 7.39(a) 图像的压缩,选择分解方法的一个合理标准是加性代价函数

(7-163)

此函数提供了一种衡量二维函数 f 能量含量的方法( 注:其他可能的能量度量包括 f ( x , y ) 的平方和,平方的对数和等等。问题 7.48 定义了一种可能的基于熵的代价函数 )。根据这种衡量标准,对于所有 xy ,函数 f ( x , y ) = 0 的能量为 0 。另一方面,E 值较高则表明函数包含许多非零值。由于大多数基于变换的压缩方案都是通过截断或阈值处理将小系数置零来实现的,因此,从压缩的角度来看,选择一个能够最大化接近零值的数量的成本函数是选择"良好"分解的合理标准。

---------------------------图 7.39:(a) 扫描的指纹图像;(b) 其三缩放全小波包分解图。尽管小波包分解后的64个子图像看起来是正方形的(例如,请注意近似子图像),但这仅仅是用于生成结果的程序造成的显示误差。(原图像由美国国家标准与技术研究院提供。)------------------------------------------------------------------------

上述成本函数计算简单,并且易于应用于树形优化算法。优化算法必须使用该函数来最小化分解树中叶节点的"成本"。应优先选择能量最小的叶节点,因为它们包含更多接近零的值,从而实现更高的压缩率。由于公式 (7-163) 中的代价函数是一种局部度量,仅使用当前节点的信息,因此可以轻松构建一种高效的算法来求得能量最小的解,具体方法如下:

(1) 计算节点的能量(记为 ,表示父节点能量)及其四个子节点的能量(分别记为 , ) 。对于二维小波包分解,父节点是一个二维数组,包含近似系数或细节系数;子节点分别是经过滤波的近似系数、水平细节系数、垂直细节系数和对角线细节系数。

(2) 如果子节点的总能量小于父节点的能量 (即 ) ,则将子节点添加到分析树中。如果子节点的总能量大于或等于父节点的能量,则修剪子节点,只保留父节点。此时,父节点即为优化分析树的叶节点。

上述算法可用于 (1) 修剪小波包树,或 (2) 从头设计计算最优树的程序。在后一种情况下,非必要的同级节点(即算法步骤 2 中将被删除的节点的后代)将不会被计算。图 7.40 显示了将上述算法应用于图 7.39(a) 所示图像并使用公式 (7-163) 所示的代价函数后得到的优化分解结果。请注意,图 7.39(b) 中原始完整小波包分解的 64 个子带中有许多已被移除。此外,图 7.40 中未被分割(进一步分解)的子图像相对平滑,并且由灰度值为中灰色的像素组成。由于除了该图中的近似子图像之外的所有子图像都已进行缩放,使得灰度级 128 表示系数为零,因此这些子图像包含的能量很少。分割它们不会带来整体能量的降低。

-------------------图 7.4:图 7.39(a) 所示指纹图像的最佳小波包分解。-----------

前面的例子基于一个利用小波技术解决的实际问题。美国联邦调查局 (FBI) 目前维护着一个庞大的指纹数据库,并已建立了一个基于小波的指纹图像数字化和压缩国家标准( FBI [1993] )。该标准采用 Cohen-Daubechies-Feauveau (CDF) 双正交小波(Cohen、Daubechies 和 Feauveau [1992]),可实现典型的 15:1 压缩比。表 7.2 详细列出了所需的分析滤波器系数。由于 CDF 系列的缩放函数和小波函数是对称的且长度相似,因此它们是应用最广泛的双正交小波之一。第 8 章将探讨基于小波的压缩方法相对于更传统的 JPEG 方法的优势。

--------------表 7.2:具有6个和8个消没矩的双正交Cohen-Daubechies-Feauveau重构和分解滤波器系数。( Cohen ,Daubechies和Feauveau [1992])。----------------

相关推荐
ComputerInBook1 小时前
数字图像处理(4版)——第 8 章——图像压缩与水印(上)(Rafael C.Gonzalez&Richard E. Woods)
人工智能·算法·计算机视觉·图像压缩·图像水印
Ai173163915792 小时前
10大算力芯片某某XXU全解析:CPU/GPU/TPU/NPU/LPU/FPGA/RPU/BPU/DPU/GPGPU
大数据·图像处理·人工智能·深度学习·计算机视觉·自动驾驶·知识图谱
hhhhhh_we4 小时前
皮肤人格的工程化实现:预颜美历如何用3D点云与循环神经网络构建数字孪生人格
图像处理·人工智能·rnn·深度学习·神经网络·3d·产品运营
科研前沿5 小时前
镜像视界浙江科技有限公司的核心引擎关键技术有哪些?
人工智能·数码相机·计算机视觉
MediaTea5 小时前
Scikit-learn:preprocessing 模块
人工智能·深度学习·机器学习·计算机视觉·scikit-learn
SunnyDays10117 小时前
如何使用 C# 转换 PowerPoint 为 HTML:完整指南
人工智能·opencv·计算机视觉·c#
zhihuishuxia__1 天前
Multiplex通讯(多路复用通讯)
网络·图像处理·数码相机·计算机视觉·自动化
懷淰メ1 天前
【AI加持】基于PyQt+YOLO+DeepSeek的钢材焊接缺陷检测系统(详细介绍)
yolo·目标检测·计算机视觉·pyqt·缺陷检测·deepseek·钢材缺陷
一碗白开水一1 天前
【论文解读】VMamba: Visual State Space Model
人工智能·计算机视觉