小波变换在图像处理中的应用
标签:
it |
一、小波分析用于图像压缩
1.1基于小波变换的图像局部压缩
基于离散余弦变换的图像压缩算法,其基本思想是在频域对信号进行分解,去除信号点之间的相关性,并找出重要系数,滤掉次要系数,以达到压缩的效果,但该方法在处理过程中并不能提供时域的信息,在我们比较关心时域特性的时候显得无能为力。
但是这种应用的需求是很广泛的,比如遥感测控图像,要求在整幅图像有很高压缩比的同时,对热点部分的图像要有较高的分辨率,例如医疗图像,需要对某个局部的细节部分有很高的分辨率,单纯的频域分析的方法显然不能达到这个要求,虽然可以通过对图像进行分块分解,然后对每块作用不同的阈值或掩码来达到这个要求,但分块大小相对固定,有失灵活。
在这个方面,小波分析的就优越的多,由于小波分析固有的时频特性,我们可以在时频两个方向对系数进行处理,这样就可以对我们感兴趣的部分提供不同的压缩精度。
下面这个局部压缩的例子利用了小波变化的时频局部化特性,通过这个例子可以看出小波变换在应用这类问题上的优越性。具体程序见附录。运行结果如图1所示。
http://s12/mw690/0043KZF5gy6En0ZyDHRbb&690
图1
从图1可以看出,小波域的系数表示的是原图像各频率段的细节信息,并且给我们提供了一种位移相关的信息表述方式,我们可以通过对局部细节系数处理来达到局部压缩的效果。
在本例子中,把图像中部的细节系数都置零,从压缩图像中可以很明显地看出只有中间部分变得模糊(比如在原图中很清晰的围巾的条纹不能分辨),而其他部分的细节信息仍然可以分辨的很清楚。
本例只是为了演示小波分析应用在图像局部压缩的方法,在实际的应用中,可能不会只做一层变换,而且作用阈值的方式可能也不会是将局部细节系数全部清除,更一般的情况是在N层变换中通过选择零系数比例或能量保留成分作用不同的阈值,实现分片的局部压缩。而且,作用的阈值可以是方向相关的,即在三个不同方向的细节系数上作用不同的阈值。
二维小波分析用于图像压缩是小波分析应用的一个重要方面。它的特点是压缩比高,压缩速度快,压缩后能保持图像的特征基本不变,且在传递过程中可以抗干扰。小波分析用于图像压缩具有明显的优点。
基于小波分析的图像压缩方法很多,比较成功的有小波包、小波变换零树压缩、小波变换矢量量化压缩等。
下面是一个图像信号(即一个二维信号,文件名为wbarb.mat),利用二维小波分析对图像进行压缩。一个图像作小波分解后,可得到一系列不同分辨率的子图像,不同分辨率的子图像对应的频率是不相同的。高分辨率(即高频)子图像上大部分点的数值都接近于0,越是高频这种现象越明显。对一个图像来说,表现一个图像最主要的部分是低频部分,所以一个最简单的压缩方法是利用小波分解,去掉图像的高频部分而只保留低频部分。图像压缩可按附录⑵
图像对比如图4.2所示。可以看出,第一次压缩提取的是原始图像中小波分解第一层的低频信息,此时压缩效果较好,压缩比较小(约为1/3);第二次压缩是提取第一层分解低频部分的低频部分(即小波分解第二层的低频部分),其压缩比较大(约为1/12),压缩效果在视觉上也基本过的去。这是一种最简单的压缩方法,只保留原始图像中低频信息,不经过其他处理即可获得较好的压缩效果。在上面的例子中,我们还可以只提取小波分解第3、4、…层的低频信息。从理论上说,可以获得任意压缩比的压缩图像。
http://s12/bmiddle/0043KZF5gy6En10GJ2Hab&690
图2
下面再给出用wdenemp函数对一个图像(文件名tire.mat)进行压缩的程序。具体程序清单见附录⑶。图像对比如图3所示:
http://s11/bmiddle/0043KZF5gy6En15HwhA5a&690
图3
利用二维小波变换进行图像压缩时,小波变换将图像从空间域变换到时间域,它的作用与以前在图像压缩中所用到的离散余弦(DCT)、傅立叶变换(FFT)等的作用类似。但是要很好的进行图像的压缩,需要综合的利用多种其他技术,特别是数据的编码与解码算法等,所以利用小波分析进行图像压缩通常需要利用小波分析和许多其他相关技术共同完成。
由于阈值处理只关心系数的绝对值,并不关心系数的位置,所以二维小波变换系数的阈值化方法同一维情况大同小异,为了方便用户使用小波工具箱对某些阈值化方法提供了专门的二维处理命令。
下面这个例子可以说明二维信号的小波压缩的一般方法,在这个例子中同时采用了求缺省阈值的ddencmp命令和基于经验公式的wdcbm2命令对图像进行压缩,并对压缩效果进行比较。显示结果如图4所示。
http://s10/bmiddle/0043KZF5gy6En16bQlb99&690
图4
可见分层阈值化压缩方法同全局阈值化方法相比,在能量损失不是很大的情况下可以获得最高的压缩比,这主要是因为层数和方向相关的阈值化方法能利用更精细的细节信息进行阈值化处理。
小波分析之所以在信号处理中有着强大的功能,是基于其分离信息的思想,分离到各个小波域的信息除了与其他小波域的关联,使得处理的时候更为灵活。全局阈值化方法作用的信息密度太大,不够精细,所以很难同时获得高的压缩比和能量保留成分,在作用的分层阈值以后,性能明显提高,因为分层阈值更能体现信号固有的时频局部特性。
但是小波分解仍然不够灵活,分解出来的小波树只有一种模式,不能完全地体现时频局部化信息。而压缩的核心思想既是尽可能去除各小波域系数之间的信息关联,最大限度体现时频局部化的信息,因此,实际的压缩算法多采用小波包算法,而小波树的确定则是根据不同的信息论准则,以达到分解系数表达的信息密度最高。
下面这个例子说明了小波包分析在图像压缩中的应用,并给出性能参数以便于同基于小波分析的压缩进行比较。得到的压缩结果如图5所示。
http://s15/bmiddle/0043KZF5gy6En17rzt4ce&690
图5
压缩过程中使用的最优小波数如图6所示
http://s4/bmiddle/0043KZF5gy6En1863Afc3&690
图6
这两个命令是Matlab小波工具箱提供的自动获取阈值和自动使用小波包压缩的命令,后者将分解阈值化和重建综合起来。在将小波包用于信号压缩的过程中,ddencmp命令返回的最优小波树标准都是阈值化标准。根据这个标准确定的最优小波树可以使得压缩过程的零系数成分最高,并且自动降低计算量。
对高频成分很多的图像,小波包的分解细节信息的特点尤其能发挥其优势。正因为这点,FBI的指纹库就是采用的基于小波包的压缩算法WSQ。
图像压缩是应用非常广泛的一类问题,所以其机器实现效率是至关重要的,在实际的应用中,如JPEG2000,一般不采用通常的mallat算法做小波分解,而是应用特定的双正交小波,利用其滤波器分布规则的特性,用移位操作来实现滤波操作。
噪声可以理解为妨碍人的视觉器官或系统传感器对所接收图像源进行理解或分析的各种因素。一般噪声是不可预测的随机信号,它只能用概率统计的方法去认识。噪声对图像处理十分重要,它影响图像处理的输入、采集、处理的各个环节以及输出结果的全过程。特别是图像的输入、采集的噪声是个十分关键的问题,若输入伴有较大噪声,必然影响处理全过程及输出结果。因此一个良好的图像处理系统,不论是模拟处理还是计算机处理无不把减少最前一级的噪声作为主攻目标。去噪已成为图像处理中极其重要的步骤。
对二维图像信号的去噪方法同样适用于一维信号,尤其是对于几何图像更适合。二维模型可以表述为
s(i,j)=f(
其中,e是标准偏差不变的高斯白噪声。二维信号用二维小波分析的去噪步骤有3步:
(1)二维信号的小波分解。选择一个小波和小波分解的层次N,然后计算信号s到第N层的分解。
(2)对高频系数进行阈值量化。对于从1到N的每一层,选择一个阈值,并对这一层的高频系数进行软阈值量化处理。
(3)二维小波的重构。根据小波分解的第N层的低频系数和经过修改的从第一层到第N层的各层高频系数计算二维信号的小波重构。
在这3个步骤中,重点是如何选取阈值和阈值的量化。
下面给出一个二维信号(文件名为detfingr.mat),并利用小波分析对信号进行去噪处理。Matlab的去噪函数有ddencmp,wdencmp等,输出结果从图7中3个图像的比较可以看出,Matlab中的ddencmp和wdencmp函数可以有效地进行去噪处理。
http://s2/bmiddle/0043KZF5gy6En19oQr7d1&690
图7
再给定一个wmandril.mat图像。可以通过全部滤掉图像中的高频部分实现图像的去噪。输出结果如图8:
http://s10/bmiddle/0043KZF5gy6En1alRjP39&690
http://s7/bmiddle/0043KZF5gy6En1dqlKK46&690
图8
从上面的输出结果可以看出,第一次去噪已经滤去了大部分的高频噪声,但从去噪图像与原始图像相比可以看出,第一次去噪后的图像中还是含有不少的高频噪声;第二次去噪是在第一次去噪的基础上,再次滤去其中的高频噪声。从去噪的结果可以看出,它具有较好的去噪效果。
下面再给出另一个含有较少噪声的facets.mat图像。由于原始图像中只含有较少的高频噪声,如果按照上一个例子把高频噪声全部滤掉的方法将损坏图像中固有的高频有用信号。因此这幅图像适合采用小波分解系数阈值量化方法进行去噪处理。输出结果如图4.9。
http://s2/bmiddle/0043KZF5gy6En1hViTf91&690
图9
二维信号在应用中一般表现为图像信号,二维信号在小波域中的降噪方法的基本思想与一维情况一样,在阈值选择上,可以使用统一的全局阈值,有可以分作三个方向,分别是水平方向、竖直方向和对角方向,这样就可以把在所有方向的噪声分离出来,通过作用阈值抑制其成分。
3.1
小波分析在二维信号(图像)处理方面的优点主要体现在其时频分析特性,前面介绍了一些基于这种特性的一些应用的实例,但对二维信号小波系数的处理方法只介绍了阈值化方法一种,下面介绍一下以前在一维信号中用到的抑制系数的方法,这种方法在图像处理领域主要应用于图像增强。
图像增强问题的基本目标是对图像进行一定的处理,使其结果比原图更适用于特定的应用领域,这里“特定”这个词非常重要,因为几乎所有的图像增强问题都是与问题背景密切相关的,脱离了问题本身的知识,图像的处理结果可能并不一定适用,比如某种方法可能非常适用于处理X射线图像,但同样的方法可能不一定也适用于火星探测图像。
在图像处理领域,图像增强问题主要通过时域(沿用信号处理的说法,空域可能对图像更适合)和频域处理两种方法来解决。时域方法通过直接在图像点上作用算子或掩码来解决,频域方法通过修改傅立叶变换系数来解决。这两种方法的优劣很明显,时域方法方便快速但会丢失很多点之间的相关信息,频域方法可以很详细地分离出点之间的相关,但需要做两次数量级为nlogn的傅立叶变换和逆变换的操作,计算量大得多。
小波分析是以上两种方法的权衡结果,建立在如下的认识基础上,傅立叶分析的在所有点的分辨率都是原始图像的尺度,但对于问题本身的要求,我们可能不需要这么大的分辨率,而单纯的时域分析又显得太粗糙,小波分析的多尺度分析特性为用户提供了更灵活的处理方法。可以选择任意的分解层数,用尽可能少的计算量得到我们满意的结果。
小波变换将一幅图像分解为大小、位置和方向都不同的分量。在做逆变换之前可以改变小波变换域中某些系数的大小,这样就能够有选择地放大所感兴趣的分量而减小不需要的分量。下面是一个图像增强的实例。
给定一个wmandril.mat图像信号。由于图像经二维小波分解后,图像的轮廓主要体现在低频部分,细节部分体现在高频部分,因此可以通过对低频分解系数进行增强处理,对高频分解系数进行衰减处理,从而达到图像增强的效果。输出结果如图4.10所示:
图11
图像增强主要有钝化和锐化两种方法,钝化操作主要是提出图像中的低频成分,抑制尖锐的快速变化成分,锐化操作正好相反,将图像中尖锐的部分尽可能的提取出来,用于检测和识别等领域。
图像钝化在时域中的处理相对简单,只需要对图像作用一个平滑滤波器,使得图像中的每个点与其相邻点做平滑即可,以下是基于傅立叶变换的频域处理方法。
以chess信号为例,通过两种方法对图像钝化的结果做一下比较。在命令行中运行该程序后,得到如图11所示的显示结果。
图11
从图中可以看出,采用DCT在频域做滤波的方法得到钝化结果更为平滑,这是因为其分辨率最高,而小波方法得到的结果在很多地方有不连续的现象,因为我们对系数做放大或抑制在阈值两侧有间断,而且分解层数很低,没有完全分离出频域的信息。而且我们在做系数放大或抑制的时候,采用的标准是根据系数绝对值的大小,没有完全体现出其位置信息,但是在小波系数中,我们很容易在处理系数的过程中加入位置信息。
与图像钝化所做的工作相反,图像锐化的任务是突出高频信息,抑制低频信息,从快速变化的成分中分离出标识系统特性或区分子系统边界的成分,以便于进一步的识别、分割等操作。
在时域(空域)中,锐化的方法不外乎是作用掩码或做差分,同钝化的道理一样,无论是掩码和差分都很难识别点之间的关联信息,下面的例子同样是在频域完成的,用传统的傅立叶分析方法(这里采用的是DCT变换)得到的频域系数。得到的结果如图12所示
图12
从结果中可以看出,使用DCT方法进行高通滤波得到的高频结果比较纯粹,完全是原图像上的边缘信息,而在小波方法得到的结果中,不只有高频成分,还有变换非常缓慢的低频成分,这是因为两者同样在小波系数上体现为绝对值较低的部分,但这些成分的存在对我们进行进一步分析并无多大影响。
对DCT方法,需要做两次复杂度为O(nlogn)的DCT变换,中间系数处理部分复杂度为O(n),而对小波变换,无论是分解和重构还有系数处理的复杂度都是O(n),所以时间复杂度的优势非常明显。
图像融合是将同一对象的两个或更多的图像合成在一幅图像中,以便它比原来的任何一幅图像更容易得为人们所理解。这一技术可应用于多频谱图像理解以及医学图像处理等领域。在这些场合。同一物体部件的图像往往是采用不同的成像机理得到的。
下面用二维小波分析将上例中woman.mat和wbarb.mat两幅图像融合在一起。结果如图13所示:
http://s15/bmiddle/0043KZF5gy6En1kPSt82e&690
图13
二维离散小波变换同样只提供了一个函数swt2,因为它不对分解系数进行下采样,所以单层分解和多层分解的结果是一样的。不需要另外提供多层分解的功能。
下面是一个用命令行使用swt命令的例子,大家可以对比它和dwt处理结果的区别。显示的结果如图14所示,由于分解过程中没有改变信号的长度,所以在显示近似和细节系数时不需要重建。
同idwt2的类似,Matlab对二维静态小波重建提供了iswt2命令,同idwt的去边也同一维情况类似,对经过重建滤波后的信号不做上采样(因为近似系数和细节系数大小都与原信号一致)。
同一维的静态小波重建一样,下面的例子说明了如何将iswt2单纯用做滤波器来实现各层系数的重建,与一维的情况不同的只是为了重建第j层近似系数,需要4次用到iswt2作为重建滤波器对第j+1层的系数进行滤波,在对某一个近似系数滤波的过程中,同样需要把其他的三个系数指定为0。
http://s4/bmiddle/0043KZF5gy6En1kmulBe3&690
图14
接上面的例子,直接利用对noiswom的分解结果,从中重建各级系数。显示的结果如图15所示:
http://s15/bmiddle/0043KZF5gy6En1jNJ1Q6e&690
图15
更多相关的机器视觉检测讯息可以浏览我公司的网站:www.whswgzy.com

加载中…