主要内容

二维小波包分析

在本节中,我们使用小波包二维分析和压缩指纹图像的工具。这是一个现实世界的问题:联邦调查局(FBI)拥有一个庞大的指纹数据库——大约有3000万套。存储所有这些数据的成本高达数亿美元。

FBI使用每像素8位来定义灰度,每英寸存储500像素,也就是说,存储电子形式的指纹需要70万像素和每根手指0.7兆字节。(Wickerhauser,见参考文献[Wic94] 387页,列于参考文献).

该技术涉及二维DWT、统一标量量化(截断或量化浮点DWT输出的精度的过程)和霍夫曼熵编码(即对量化DWT输出进行最小位数编码)。(布里斯lawn,见参考文献[Bris95]第1278页,列于参考文献).

通过使用小波,FBI获得了15:1的压缩比。在这个应用中,小波压缩比传统的JPEG压缩更好,因为它避免了小正方形的伪影,特别适合于检测指纹中的不连续(线)。

请注意,国际标准jpeg2000将小波作为压缩和量化过程的一部分。这指出了小波的现有强度。

启动小波包2d工具

  1. 从MATLAB®提示,输入waveletAnalyzer.的小波分析仪出现了。

    单击小波包二维菜单项。

    导入一个图像

    在MATLAB命令提示符处,输入

    加载detfingr;
    小波包二维工具,选择文件>从工作区进口>导入图片.当从工作区进口对话框中,选择X变量。点击好吧导入指纹图像。

    分析图像

  2. 为分析做适当的设置。选择哈雾小波,水平3.,熵型香农.单击分析按钮。

    请注意

    控件右侧的命令区可以使用许多功能小波包二维窗口。

  3. 单击最好的树按钮,在压缩图像之前计算出最好的树。

用小波包压缩图像

  1. 单击压缩按钮调出小波包二维压缩窗口。选择落下帷幕。sparsity-norm(√)选择从选择阈值方法菜单。

    请注意,默认阈值(7.125)提供了大约64%的压缩,同时几乎保留了原始图像的所有能量。根据您的标准,可能值得尝试使用更积极的阈值来实现更高程度的压缩。回想一下,我们并没有对图像进行任何量化,只是将特定的系数设置为零。这可以被认为是更广泛的压缩系统中的预压缩步骤。

  2. 修改阈值:输入阈值30.控件右侧的阈值滑块对面的文本字段小波包二维压缩窗口。然后按输入关键。

    将所有小波包系数设置为小于30到0,效果会好得多。注意,新的阈值达到了92%的零,同时仍然保持了近98%的图像能量。

  3. 单击压缩按钮开始压缩。

    可以看到小波包系数阈值化和图像重构得到的结果。视力恢复是正确的,但并不完美。压缩后的图像,与原始图像并排显示,显示了一些人工制品。

  4. 单击关闭按钮位于底部小波包二维压缩窗口。通过单击来更新合成的图像是的当对话框出现时。

利用这个机会尝试您自己的压缩策略。调整阈值、熵函数和小波,看看是否能得到更好的结果。

提示

bior6.8小波比小波更适合于这种分析哈雾,可以得到较好的压缩比。当使用双正交小波时,显示的信息不是“保留能量”,而是“能量比”。有关更多信息,请参见压缩的分数

在结束这一分析之前,值得我们关注的是“终端节点图的彩色系数”,并考虑该图像的最佳树分解。

这张图显示在小波包二维工具。这个情节告诉我们哪些细节已经被分解,哪些没有。较大的方块代表的是没有被分解成小方块那么多层次的细节。例如,考虑这个第2级分解模式:

观察指纹分析中大小方块的模式,可以发现最好的树算法显然已经挑出了对角线的细节,通常避免了进一步的分解。这是为什么呢?

如果我们考虑原始图像,我们意识到它的许多信息集中在构成指纹图案的锐利边缘。看这些边,我们可以看到它们主要是水平和垂直的。这就解释了为什么最好的树算法“选择”不去分解对角线细节——它们不能提供很多信息。