主要内容

二维小波包分析

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

“联邦调查局使用每像素8位来定义灰色的深浅,每英寸存储500个像素,计算下来,每根手指大约有70万个像素和0.7兆字节来存储电子形式的指纹。(Wickerhauser,见参考文献[Wic94]第387页,列于参考文献).

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

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

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

启动小波包二维工具

  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级分解模式:

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

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