在Matlab中,二维多级小波变换共4种函数,分别为:

1.多级分解函数:wavedec2

2.系数提取函数:appcoef2detcoef2

3.系数重构函数:wrcoef2

4.信号重构函数:waverec2

1.多级分解函数-wavedec2

将时域上的原始信号(图像)分解为小波域(实际不存在,类比于于傅里叶变换中的频域)上的低频近似成分和高频细节成分。

代码示例:



X



结果示意图:




二维小波变换的过程 python 二维连续小波变换_二维小波变换的过程 python


图1 引自 冈萨雷斯. 数字图像处理[M]

从左到右依次为:原图、1级小波分解结果示意图、2级小波分解结果示意图

1级小波分解,将原始信号分解为1个低频近似成分(左上),和三个高频细节成分(水平细节成分/右上、垂直细节成分/左下、对角线细节成分/右下)。

2级小波分解时将1级小波分解的近似低频成分再次进行相同的分解操作,进一步得到2级低频近似成分和三个2级高频细节成分。其余以此类推。

其中对于[C,S],C用于实际存储多级小波分解的各级结果,而S用于对C中存储的结果进行解释说明。如下图所示,在使用wavedec2进行小波分解之后,分解的各级低频与高频成分实际上是通过向量(一维数组)的形式全部存储在C(C也是一个一维数组)中。以2级小波分解为例,即假设图中n=2,分解得到的各级低频与高频成分(为二维矩阵),按列由二维矩阵转化为一维数组,并按照cA2,cH2,cV2,cD2,cH1,cV1,cD1(A代表低频近似成分,H、D、V分别代表高频细节成分)的顺序排列存储到C(为一维数组)中。从上述描述中可以发现,C是一个包含了所有分解结果信息的很大的一维数组,但是仅仅通过C并不能确定某区间内的数据原属于哪个二维矩阵。所以,S矩阵则用于对C中存储的数据进行说明,如图所示,S中的第一行记录了cA2(低频成分)原来作为二维矩阵的行列数信息,即32x32,依次往下为高频成分的二维矩阵行列数信息(因为每一级高频成分的二维矩阵尺寸是一样的,故仅需要单条记录即可说明)。最后一行记录的是原图的尺寸。


二维小波变换的过程 python 二维连续小波变换_二维小波变换的过程 python_02

图2 引自《Matlab帮助文档》


2.系数提取函数-appcoef2和detcoef2

多级系数提取函数,可以理解为用于提取原信号小波分解之后,小波域中的各级低频和高频成分。appcoef2用于提取各级低频近似成分,detcoef2用于提取各级高频细节成分。

代码示例:


cA2


图1,即为各个级别高频低频成分的示意图。特点是,每进行一级小波分解,结果均比上一级的尺寸小一半。由图可知,除第一次小波分解时分解原图外,其余每级分解均是对上一级的低频信号的分解,值得一提的是,使用虽然实际上只保存最后一级的低频成分,但是使用appcoef2函数可以提取各个级别的低频成分,如上例,虽然1级低频近似成分并没有被实际存储(C中没有直接对应的向量),但是可以通过2级小波分解的各个成分来重构1级近似成分,所以可以使用 cA1 = appcoef2(C,S,'db1',1); 来直接提取1级低频近似成分。

3.系数重构函数-wrcoef2

系数重构函数主要用于对各级别分解的低频高频成分(也就是系数提取函数提取的结果矩阵)进行重构。因为小波分解之后,各级别低频与高频成分实际上是图像在小波域的表现,并不具备实际意义。所以系数重构函数则可以将分解得到的各级别低频高频成分从小波域转换为时域,从而得到原图像各个分解级别的低频子信号和高频子信号(时域)。系数重构后的时域子信号与原图尺寸相同。

代码示例:


A2


4.信号重构函数-waverec2

信号重构函数不同于系数重构函数,其是利用各级小波分解信息(即[C,S]中包含的全部信息)来重构原始信号(图像)。

代码示例:


X_rec


信号重构主要用于,对小波分解各级别成分进行处理之后,再重构为原图,从而达到小波变换进行图像处理的目的。

如下图3,就是将图1中的低频成分置零,只保存高频成分,再信号重构为原图,从而达到图像处理的目的。


二维小波变换的过程 python 二维连续小波变换_二维小波变换的过程 python_03

图3 引自 冈萨雷斯. 数字图像处理[M]

补充:低频信号置零,再信号重构代码。


%C中存储的第一个向量即为低频成分的矩阵


参考资料:

数字图像处理 (豆瓣)book.douban.com

二维小波变换的过程 python 二维连续小波变换_二维小波变换的过程 python_04

一维离散小波变换函数使用总结www.jianshu.com

二维小波变换的过程 python 二维连续小波变换_二维小波变换的过程 python_05

二维离散小波变换函数使用总结www.jianshu.com

二维小波变换的过程 python 二维连续小波变换_二维小波变换的过程 python_06