《数字图像处理(第四版)》阅读随笔 ch7 (二维小波变换、小波包)

您所在的位置:网站首页 对图像进行小波变换的条件 《数字图像处理(第四版)》阅读随笔 ch7 (二维小波变换、小波包)

《数字图像处理(第四版)》阅读随笔 ch7 (二维小波变换、小波包)

2023-12-26 13:10| 来源: 网络整理| 查看: 265

7.10.5 二维小波变换

前一节的一维小波变换很容易扩展到二维函数(如图像)。在二维情况下,需要 1 个二维尺度函数 \varphi(x,y) 和 3 个二维小波 \psi^H(x,y),\psi^V(x,y),\psi^D(x,y) 。每个二维小波都是两个一维函数的积。排除产生一维结果的积【如 \varphi(x)\psi(x) 】后,剩下的 4 个积产生可分离的尺度函数

\varphi(x,y)=\varphi(x)\varphi(y)\tag{7.152}

和可分离的“方向敏感”小波

\psi^H(x,y)=\psi(x)\varphi(y)\tag{7.153}

\psi^V(x,y)=\varphi(x)\psi(y)\tag{7.154}

\psi^D(x,y)=\psi(x)\psi(y)\tag{7.155}

这些小波度量图像中灰度沿不同方向的变化: \psi^H 度量沿列(如水平边缘)的变化, \psi^V 响应行(如垂直边缘)的变化, \psi^D 对应于沿对角线的变化。方向灵敏度是式 (7.153) 至式 (7.155) 中可分离性的自然结果;它不会增大本节讨论的二维变换的复杂性。

它类似于一维离散小波变换,二维DWT可以使用数字滤波器和下取样器来实现。采用可分离的二维尺度和小波函数,我们首先简单地取 f(x,y) 的各行的一维FWT,然后取结果的各列的一维FWT。图7.29(a)以框图的形式显示了这一过程。注意,类似于图7.23中的一维情况,二维DWT“滤波器”使用尺度 j+1 近似系数【图中表示为 T_{\varphi}(j+1,k,l) 】来构建尺度 j 的近似和细节系数。但在二维情况下,得到了三组细节系数——水平细节系数 T_{\psi}^H(j,k,l) 、垂直细节系数 T^V_{\psi}(j,k,l) 和对角线细节系数 T_\psi^D(j,k,l) 。

图7.29(a)中的单尺度滤波器组可以迭代地(通过将近似输出于另一个滤波器组的输入关联起来)产生一个 P\leq J 尺度变换,其中尺度 j=J-1,J-2,....J-P 。如一维情况中那样,图像 f(x,y) 被用做 T_{\varphi}(J,k,l) 的输入。让各行与 h_{\varphi}(-n) 和 h_{\psi}(-n) 卷积,并对各列下取样后,得到水平分辨率降低 2 倍的两幅子图像。高通或细节分量表征图像垂直方向的高频信息;低通近似分量包含其垂直方向的低频信息。然后。对两幅子图像逐列滤波并下取样,得到 4 个 1/4 大小的输出子图像: T_{\varphi},T^H_\psi,T^V_{\psi} 和 T_{\psi}^D 。通常排列为图7.29(b)的这些子图像,是 f(x,y) 和式 (7.152) 到式 (7.155) 中的二维尺度和小波函数的内积,然后在每个方基 2 下取样。

图7.29 二维快速小波变换:(a)分析滤波器组;(b)得到的分解;(c)合成滤波器组。注意,m和n是卷积的假变量;类似于一维情况,j是尺度,k和l是平移

图7.29(c)显示了合成滤波器组,它的处理过程与刚才讨论的过程相反。不出所料,重建算法类似于一维情况下的算法。每次迭代时,对四尺度 j 近似和细节子图像进行上取样,并与两个一维滤波器进行卷积:一个卷积对子图像的列进行运算,另一个卷积对子图像的行进行运算。结果相加得到尺度 j+1 近似,重复这一过程直到重建原图像。

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

本例计算相对于哈尔基函数的二维多尺度FWT,并将它与7.9节的传统哈尔变换进行比较。图7.30(a)~(d)分别是花瓶和窗台的单色图像,相对于哈尔基函数的 1 尺度离散小波变换, 2 尺度离散小波变换,以及哈尔变换。小波变换的计算稍后讨论。图7.30(d)的哈尔变换是用 512\times512 的哈尔变换矩阵【见式 (7.114) 至式 (7.118) 】计算的,并且基于矩阵的运算已在式 (7.35) 中定义。图7.30(b)和(c)中的细节系数及图7.30(d)中的哈尔变换系数已经过缩放,以便使得它们的基本结构更清晰。任意两个变换的相同区域加蓝色阴影时,这些区域内的对应像素值是相同的。

图7.30 (a)512x512的花瓶和窗台图像;(b)1尺度FWT;(c)2尺度FWT;(d)原图像的哈尔变换。所有变换都已被缩放,以突出它们的基本结构。两个变换的对应区域加蓝色阴影时,对应像素相同

为了计算图7.30(b)的1尺度FWT,图7.30(a)中的图像被用做图7.29(a)中那样的一个滤波器组的输入。因为 J=log_2512=9 和 P=1 , T_{\varphi}(9,k,l)=f(x,y) ,所以根据图7.29(b)将得到的 4 个 1/4 大小的分解输出【即近似 T_{\varphi}(8,k,l) 及水平,垂直和对角线细节 T_\psi^H(8,k,l),T^V_\psi(8,k,l) 和 T_\psi^D(8,k,l) 】排列成图7.30(b)。使用类似的过程产生了图7.30(c)中的 2 尺度变换,但滤波器组的输入是来自图7.30(b)左上角的 1/4 大小近似子图像 T_{\varphi}(8,k,l) 。如图7.30(c)所示,将 1/4 大小近似子图像替换为第二次滤波生成的 4 个 1/4 大小(原图像大小的 1/16 )的分解结果。每通过滤波器一次,就产生 4 个 1/4 大小的输出图像,并将这些图像替换为它们的输入。重复这一过程,直到 P=J=9 ,得到一个 9 尺度变换。

注意与图7.30(b)和(c)中的 T^H_{\psi} , T_{\psi}^V 和 T^D_{\psi} 相关联的子图像的方向性。这些图像中的对角线细节(即蓝色阴影 T_{\psi}^D 区域)与图7.30(d)中对应的哈尔变换阴影区域相同。在一维情况下,如例7.19所示,相对于哈尔基函数的 J 尺度一维FWT与其一维哈尔变换相同,因为两个变换的基函数相同;两个变换都包含一个尺度函数和一系列缩放与平移小波函数。但在二维情况下,基图像是不同的。式 (7.153) 到式 (7.155) 中定义的二维可分离尺度和小波函数引入了水平和垂直方向性,而在传统哈尔变换中则不存在。例如,图7.31(a)和(b)是 8\times 8 哈尔变换的基图像和相对于哈尔基函数的 3 尺度FWT。注意,在沿主对角线分布的蓝色高亮区域中,基图像是匹配的。图7.30(b)至(d)中出现了同样的图案。若计算出来了花瓶的 9 尺度小波变换,则它将与图7.30(d)中所有阴影区域的哈尔变换匹配。

图7.31 (a)大小为8x8的基图像【来自图7.18(c)】;(b)相对于哈尔基函数的3尺度8x8离散小波变换的基图像

最后以一个简单的例子来小结小波在图像处理中的应用。就像在傅里叶域中那样,基本方法如下:

1.计算图像相对于一个已知小波基的二维小波变换。表7.1显示了一些又代表性的基,包括它们的尺度和小波函数及对应的滤波器系数。滤波器系数已在图7.26的上下文中给出。对于规范正交小波,规定了低通合成系数;其余的滤波器必须使用式 (7.151) 计算。对于双规范正交小波,给出了两个分析滤波器,并且合成滤波器必须使用式 (7.149) 和式 (7.150) 计算。

2.计算变换后,利用DWT的能力来:(1)对图像像素去相关,(2)揭示重要的频率和时间特征,和/或(3)度量图像域变换的基图像的相似性。可以为图像平滑,锐化,降噪,边缘检测和压缩设计一些修正。

3.计算小波反变换。

由于离散小波变换将图像分解为空间受限的带限基图像的加权和,因此大多数傅里叶域图像处理技术都存在等效的“小波域”对应技术。

例7.23 基于小波的边缘检测

图7.32简单说明了前面三个步骤。图7.32(a)是一副由计算机生成的图像,其大小为 128\times 128 ,图像中的黑色背景上是二维正弦脉冲。图7.32(b)是关于 4 阶对称小波的 2 尺度离散小波变换。虽然它们不是完全对称的,但对于已知的紧支撑(Daubechies[1992]),它们被设计为具有最小不对称性和最大消失矩。表7.1的第4行显示了对称小波的小波和尺度函数,以及对应的低通合成滤波器的系数。其余的滤波器系数是用式 (7.151) 得到的。其中滤波器系数的数量 K 设为 8 :

g_1(n)=(-1)^ng_0(7-n)=\left\{ -0.0758,0.0296,0.4976,-0.8037,0.2979,0.0992,-0.0126,-0.0322 \right\}

h_0(n)=g_0(7-n)=\left\{ -0.0758,-0.0296,0.4976,0.8037,0.2979,-0.0992,-0.0126,0.0322 \right\}

h_1(n)=g_1(7-n)=\left\{ -0.0322,-0.0126,0.0992,0.2979,-0.8037,0.4976,0.2979,-0.0758 \right\}

在图7.32(c)中,离散小波变换的近似分量已通过将其值设置为零得到消除。如图7.32(b)所示,使用这些修正系数计算反变换的净效果是边缘增强,这使人联想到4.9节中讨论的基于傅里叶的图像锐化结果。注意信号和背景之间的过渡有多好,尽管它们是相对柔和的正弦过渡。通过将水平细节置零【见图7.32(e)和(f)】同样可以分割垂直边缘。

(二维码自动识别)

clear all; cover = double(imread('1013.pgm')); [C,S] = wavedec2(cover,2,'db1'); a2 = appcoef2(C,S,'db1',2); dh1 = detcoef2('h',C,S,1); dv1 = detcoef2('v',C,S,1); dd1 = detcoef2('d',C,S,1); dh2 = detcoef2('h',C,S,2); dv2 = detcoef2('v',C,S,2); dd2 = detcoef2('d',C,S,2); [x,y] = size(cover); img = zeros(x,y); img(1:x/4,1:y/4) = uint8(a2); img(((x/4)+1):x/2,1:y/4) = uint8(dv2); img(1:x/4,(y/4)+1:y/2)=uint8(dh2); img(((x/4)+1):x/2,((y/4)+1):y/2) = uint8(dd2); img(((x/2)+1):x,1:y/2) = uint8(dv1); img(1:x/2,((y/2)+1):y) = uint8(dh1); img(((x/2)+1):x,((y/2)+1):y) = uint8(dd1); figure; imshow(img,[]);代码示例运行结果7.10.6 小波包

快速小波变换将函数分解为尺度和小波函数之和,其中尺度和小波函数的带宽呈对数关系。也就是说,函数的低频内容用窄带宽的尺度和小波函数表示,高频内容用宽带宽的函数表示,如图7.5所示。每个很多高度小片的水平条带(单个FWT尺度的基函数)沿频率轴上移时,其高度以对数方式增加。要更好地控制时间-频率平面的划分(即得到更小的高频带宽),必须将FWT推广到称为小波包的更灵活的分解(Coifman and Wickerhauser[1992])。这一推广的代价是计算复杂度从FWT的 O(N) 增加到小波包的 O(Nlog_2N) 。

再次考虑图7.24(a)中的 3 尺度滤波器组,但我们分解想象为一颗二叉树。图7.33(a)详细描述了这棵二叉树的结构,并将图7.24(a)中合适的FWT尺度和小波系数链接到了二叉树的节点。为根节点分配最高尺度的近似系数,它们是函数本身的样本,叶节点则继承变换的近似和细节系数输出。两个中间节点 T_{\varphi}(J-1,k) 和 T_{\varphi}(J-2,k) 是滤波器组的近似,它们随后被滤波为 4 个额外的叶节点。注意,每个节点的系数都是线性展开的权重,以便生成根结点 f(x) 的一个带限“片段”。因为任何这样的片段都是已知尺度或小波子空间的元素,因此可以用对应子空间替代7.33(a)中的生成系数。结果是图7.33(b)中的子空间分析树。

分析树为多尺度小波变换的表示提供了一种紧凑的、信息丰富的方法。它们绘制简单,所占用的空间被对应滤波器和基于子取样器的框图小,因此检测有效分解相对冗余。例如,图7.33(b)中的 3 尺度分析树建议了三个可能的展开选项:

V_J=V_{J-1}\oplus W_{J-1}\tag{7.156}

V_J=V_{J-2}\oplus W_{J-2} \oplus W_{J-1}\tag{7.157}

V_J=V_{J-3}\oplus W_{J-3}\oplus W_{J-2}\oplus W_{J-1}\tag{7.158}

它们对应于一维函数的 1 尺度, 2 尺度和 3 尺度FWT分解。有效的分解要求一个近似项(或尺度子空间)和足够的细节分量(或小波子空间)来覆盖图7.24(b)中的谱。通常,一个 P 尺度FWT分析树支持 P 个唯一的分解。

图7.33 图7.24中2尺度FWT分析组的(a)系数树和(b)分析树

分析树也是表示小波包的一种有效机制,它们不过是细节迭代滤波的传统小波变换。于是,图7.33(b)中的 3 尺度FWT分析树就变成图7.34中的 3 尺度小波包分析树。注意,必须引入额外的下标。每个双下标节点的第一个下标标识FWT父节点的尺度。第二个下标(变长字符串“A”和“D”)对从父节点到正被检查的节点的路径进行编码。“A”表示近似滤波,“D”表示细节滤波。例如,子空间节点 W_{J-1,DA} 的得到方式如下:首先让 J-1 尺度FWT系数(即图7.34中的父节点 W_{J-1} )通过一个额外的细节滤波器(得到 W_{J-1,D} ),然后通过一个近似滤波器(得到 W_{J-1,DA} )。图7.35(a)和(b)分别是图7.34中分析树的滤波器组和谱分解特性。注意,图7.35(a)中的滤波器组的“自然排序”输出已根据图7.35(b)中的频率内容重新排序。

图7.34中的 3 尺度小波包树的分解(和相关的时间-频谱片)数量几乎是 3 尺度FWT树的 3 倍。回顾可知,在普通FWT中,拆分、滤波和下取样低通波段是单独进行的,在用于表示函数的尺度和小波空间的带宽之间建立了固定的对数(基2)关系【见图7.24(b)】。因此,尽管图7.24(a)中的 3 尺度FWT分析树提供 3 个可能的分解【由式 (7.156) 到式 (7.158) 定义】,但图7.34中的小波包树支持 26 个不同的分解。例如, V_J 和函数 f(x) 可展开为

V_J=V_{J-3}\oplus W_{J-3}\oplus W_{J-2,A} \oplus W_{J-2,D}\oplus W_{J-1,AA}\oplus W_{J-1,AD}\oplus W_{J-1,DA}\oplus W_{J-1,DD}\tag{7.159}

它们的谱如图7.35(b)所示;或者展开为

V_J=V_{J-1}\oplus W_{J-1,A}\oplus W_{J-1,DA}\oplus W_{J-1,DD}\tag{7.160}

它们的谱如图7.36所示。注意图7.35(b)中这个最终谱与全小波包谱之间的差异。或与图7.24(b)中的 3 尺度FWT谱之间的差异。一般来说, P 尺度一维小波包变换(和相关联的 P+1 层分析树)支持

D(P+1)=[D(P)]^2+1\tag{7.161}

个唯一的分解,其中 D(1)=1 。在如此多的有效展开中,基于包的变换加强对分解函数的谱的划分的控制。这个控制的代价是增大了计算复杂度。请将图7.35(a)中的滤波器组与图7.24(a)中的滤波器组进行比较。

图7.36 式(7.160)中的分解的谱

现在考虑图7.29(a)中的二维 4 波段滤波器组。如前所述,它将近似 T_{\varphi}(j+1,k,l) 拆分为输出 T_{\varphi}(j,k,l),T^H_\psi(j,k,l),T^V_\psi(j,k,l),T^D_\psi(j,k,l) 。如一维情况中那样,它可以“迭代”生成尺度 j=J-1,J-2,...,J-P 处的 P 尺度变换,其中 T_{\varphi}(J,k,l)=f(x,y) 。图7.29(a)中 j+1=J 时,第一层迭代得到的谱如图7.37(a)所示。注意,它将频率平面分成 4 个相等的区域。平面中心的低频 1/4 波段与变换系数 T_\varphi(J-1,k,l) 和尺度空间 V_{J-1} 一致。这种命名于一维情况中的一致。然而,为适应输入的二维性质,我们现在有 3 个(而非 1 个)小波子空间,它们分别表示为 W_{J-1}^H,W_{J-1}^V 和 W_{J-1}^D ,并对应于系数 T_\psi^H(J-1,k,l),T_\psi^V(J-1,k,l),T_\psi^D(J-1,k,l) 。图7.37(b)显示了最终的四波段,单尺度四元FWT分析树。注意将小波子空间命名与它们对应的变换系数关联起来的上标。

图7.37 二维FWT的第一次分解:(a)谱;(b)子空间分析树

图7.38是一个 3 尺度二维小波包分析树的一部分。类似于图7.34中的一维情况,每个节点的第一个下标(即传统FWT细节节点的后代)是父细节节点的尺度。第二个下标(即变长字符串“A”,“H”,“V”和“D”)对从父节点到正被考虑节点的路径进行编码。例如,标记为 W_{J-1,VD}^H 的节点的得到方式如下:首先通过一个附加的细节/近似滤波器对 J-1 尺度水平细节系数(即图7.38中的父 W^H_{J-1} )进行“行/列滤波”(得到 W^H_{J-1,V} ),然后通过一个细节/细节滤波器(给出 W_{J-1,VD}^H )。一个 P 尺度二维小波包树支持

D(P+1)=[D(P)]^4+1\tag{7.162}

个唯一的展开,其中 D(1)=1 。于是,图7.38中的 3 尺度树就能提供 83522 个可能的分解。下例中将说明如何在这些分解之间进行选择。

图7.38 一个3尺度全小波包分析树。仅显示了该树的一部分

例7.24 二维小波包分解

上面的讨论说到,单小波包树有许多分解选项。事实上,可能的分解的数量通常很大,逐个枚举或检查它们都是不切实际的。相对于特定的应用准则,我们通常希望能有求最优分解的有效算法。后面会说到,经典的熵基和能量基代价函数在许多情况下是适用的,并且非常适合于二叉树和四叉树搜索算法。

考虑减少表示图7.39(a)中 400\times 480 指纹图像所需数据量的问题。图像压缩将在第8章中详细讨论。在本例中,我们想要选择“最好的” 3 尺度小波包分解作为压缩处理的起点。使用 3 尺度小波包树时,存在 83522 个潜在的分解【见式 (7.162) 】。图7.39(b)显示了其中的一个分解——全小波包, 64 叶分解类似于图7.38中的分析树。注意,树叶对应于图7.39(b)中分解子图像的 8\times 8 阵列的子带。然而,这个 64 叶分解某种程度上对压缩目的而言最优的概率相对较低。缺少合适的最优准则时,我们既不能承认也不能否认它。

为了压缩图7.39(a)中的图像,选择一个合理准则则是加性代价函数

E(f)=\sum_{x,y}\left| f(x,y) \right|\tag{7.163}

这个函数为二维函数 f 的能量含量提供一个可能的测度。在这一测度下, x 和 y 都是 0 时,函数 f(x,y)=0 。另一方面,高 E 值表面函数具有许多非零值。由于大多数基于变换的压缩方案通过截断或将小系数阈值化为零,所以最大化接近零值的数量的代价函数是从压缩角度选择“好”分解的合理标准。

刚才描述的代价函数计算简单,且易于适应树优化程序。优化算法必须使用这个函数来最小化分析树种叶节点的“代价”。应能支持最小能量叶节点,因为它们有更多接近于零的值,而有更多接近于零的准则会导致更大的压缩率。因为式 (7.163) 给出的代价函数是一个局部测度,即它只使用所考虑节点处的信息,因此很容易构建求最小能量解的一个有效算法。

对于分析树的每个节点,从根开始逐层行进到树叶:

1.计算父节点的能量 E_P 与 4 个后代节点的能量 E_A,E_H,E_V,E_D 。对于二维小波包分解,父节点是近似或细节系数的一个二维阵列;后代节点是滤波后的近似,水平细节,垂直细节和对角线细节。

2.若后代节点的组合小于父节点的能量(即 E_A+E_H+E_V+E_D图7.39 (a)指纹扫描图像及其(b)3尺度全小波包分解。尽管包分解的64幅子图像看起来是方形的(注意近似子图像),但这是用于产生结果的程序的异常行为

上述算法可用于:(1)删除小波包树或(2)从头开始设计计算最优树的程序。在后一种情况下,不需要计算不重要的兄弟姐妹——算法的步骤2中将被删除的节点的后代。图7.40是优化后的分解,它是将刚才描述的算法应用到图7.39(a)中的图像得到的,代价函数是式 (7.163) 。注意,图7.39(b)中原全包分解的 64 个子带中的许多已被消除。此外,图7.40中未被拆分(进一步分解的子图像是相对平滑的),并且由值为中间灰度的像素组成。因为图中除这幅近似子图像外的子图像都已被缩放到灰度级 128 ,表示一个零值系数,所以这些子图像包含的能量很少。拆分子图像后,能量整体上并未减少。

图7.40 图7.39(a)中指纹的一个最优小波包分解

例子7.24基于一个可用小波来求解实际问题。美国联邦调查局(FBI)目前拥有一个庞大的指纹数据库,并为指纹图像的数字化和压缩建立了基于小波的美国国际标准(FBI[1993])。利用Cohen-Daubechies-Feauveau(CDF)双正交小波(Cohen, Daubechies and Feauveau[1992]),这个标准实现的典型压缩率是 15:1 。表7.2详细列出了所需的分析滤波器系数。由于CDF族的尺度和小波函数是对称的,并有着相似的长度,因此是应用最广泛的双正交小波。第8章将讨论小波基压缩方法相对于传统JPEG压缩方法的优点。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3