去年 11 月发布了一系列有关小波变换和图像处理的文章,把学习小波过程中的心得体会和编写的程序放在网上和大家共享沟通.半年来,感谢大家的关注和帮助,在相互的讨论沟通中,我不断地从大家提出的问题中拓展自己的知识面,对小波的理论及其应用有了更深化的了解和掌握。根据和大家讨论沟通中发现的问题,对博客中的程序进行修正。有关小波图像分解和重构的两篇文章中分享的程序,存在下列问题:(1)程序所用的小波函数只有非标准的 Haar 小波,其滤波器组为 Lo_D=[1/2 1/2], Hi_D=[—1/2 1/2],是固化在 mydwt2.m 的程序中的,不能选择其他的小波函数;(2)非标准的 Haar 小波,其分解出来的系数矩阵中,高频系数的细节内容(轮廓、边缘等特征)不明显;(3)函数 mydwt2 中列变换的矩阵对象为输入矩阵,这是错误的,其矩阵对象应该是行变换后的缓存矩阵;(4)函数 mydwt2 的输出用[LL,HL,LH,HH]表示,不是很法律规范,应改为[cA,cV,cH,cD]来表示,即一级小波变换输出的系数矩阵有 4 个部分:平均部分、垂直细节部分、水平细节部分和对角线细节部分。(5)函数 mywavedec2 的输出 y 是与输入矩阵 x 相同大小的矩阵,并且已将 N 级分解后所有的平均、细节系数组合成一体的。实际上,这种定义只对 Haar 小波有效。(6)原程序中要调用 modmat 函数对图像矩阵进行修剪,使之能被 2 的 N 次方整除,主要是为了生成塔式结构图像而设的,对上述问题修正后,这个 modmat 函数已不需使用了。针对上述问题,我对程序作了修正,发布在今日的 3 篇文章里,请大家点击查看。新修正的程序更为简洁易懂,功能也有所增强,可以用任意的小波函数进行小波分解,可根据小波分解系数矩阵重构出指定分解级的低频系数和原始图像。Matlab 小波分析工具箱丰富的函数和强大的仿真功能为我们学习小波、用好小波提供了方便、快捷的途径,但是,假如我们要深化掌握小波分析的原理,真正学好、用好小波,就应该尽量用自己编写的程序去实现小波变换和信号分析,尽量在自己的程序中少调用 Matlab 提供的函数,多用自己的理解去编写相关的小波函数,这样的过程是一个探究、求知的过程,更能让我们体会到小波的强大和学习的乐趣。下面,我把自己编写的小波一维、二维信号分解和重构 Matlab 程序共享出来,也希望有朋友共享自编的程序,共同学习,提高程序的效率和简洁性。 首先要说明的一点是,虽然是自己编写 Matlab 程序,但并不是说一点也不...