利用二维小波分析数据压缩
这个例子的目的是展示如何使用二维小波分析图像压缩。压缩是小波最重要的应用之一。去噪、压缩过程包含三个步骤:
小波分解:选择,选择一个级别N计算信号的小波分解级别N。
阈值的细节系数:对于每个级别从1到N,选择一个阈值和硬阈值应用于细节系数。
重建:计算小波重建使用原始的近似系数系数N和修改的详细程度从1到N的水平。
区别与去噪过程中步骤2。有两种压缩方法可用:
第一个包含信号的小波扩张并保持最大的系数绝对值。在这种情况下,您可以设置一个全局阈值,压缩性能或相对平方标准恢复性能。因此,只有一个参数需要被选中。
第二种方法包括应用视觉等级相关阈值决定的。
加载一个图像
让我们研究一个现实生活中的例子为给定的和非压缩小波的选择,产生一个几乎完全平方准则恢复图像。
负载女人;%加载原始图像图像(X)标题(原始图像的)colormap(地图)
x = x (100:200,100:200);%选择ROI
方法1:全局阈值
给定的小波压缩特性的基础主要是与相对稀少的小波域表示的信号。压缩背后的概念是基于常规信号组件的概念可以精确地近似使用以下元素:少量的近似系数(在适当选择级别)和一些细节系数。
n = 5;%分解水平w =“sym8”;%附近对称小波[c、l] = wavedec2 (x, n, w);%多级二维小波分解
在这第一个方法中,WDENCMP函数执行一个压缩过程的小波分解结构[c、l]
的形象。
选择=gbl(的;%全局阈值用力推= 20;%的阈值sorh =“h”;%硬阈值keepapp = 1;%的近似系数不能阈值[xd, cxd lxd、perf0 perfl2] = wdencmp(选择c l, w, n,用力推,sorh, keepapp);图像(x)标题(原始图像的)colormap(地图)
图图像(xd)标题(“压缩——全球阈值= 20 ')colormap(地图)
压缩的分数(%)
perf0
perf0 = 74.3067
L2-norm复苏(%)
perfl2
perfl2 = 99.9772
当前的密度稀疏矩阵分解:
cxd =稀疏(cxd);cxd_density = nnz (cxd) /元素个数(cxd)
cxd_density = 0.2569
方法2:等级相关的阈值
WDENCMP功能还允许和orientation-dependent阈值水平。在这种情况下,近似保持。三个方向的等级相关阈值水平,对角线,和垂直如下:
选择=“lvd”;%等级相关阈值thr_h = [17 18];%的水平阈值thr_d = [19 20];%对角阈值thr_v = [21 22];%垂直阈值用力推= [thr_h;thr_d;thr_v];
在第二个例子中,注意到WDENCMP函数执行从图像压缩过程x
。
[xd2, cxd2 lxd2、perf02 perfl22] = wdencmp(选择,x, w, 2,用力推,sorh);图像(x)标题(原始图像的)colormap(地图)
图图像(xd2)标题(“压缩等级相关阈值”)colormap(地图)
压缩的分数(%)
perf02
perf02 = 77.3435
L2-norm复苏(%)
perfl22
perfl22 = 99.6132
当前的密度稀疏矩阵分解:
cxd2 =稀疏(cxd2);cxd2_density = nnz (cxd2) /元素个数(cxd2)
cxd2_density = 0.2266
总结
用等级相关阈值、小波分解的密度降低了3%,同时提高L2-norm恢复了3%。如果太密集的小波表示,类似的策略可用于小波包框架获得稀疏的表示。然后您可以确定最佳分解对适当选择类熵判据,它对应于所选择的目的(去噪或压缩)。