资源描述:
《小波变换及其应用.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验三小波变换及其应用实验目的1、通过观察小波变换系数建立对小波变换及其有关性质的感性认识。2、掌握小波变换及重构方法;了解小波变换基本应用。实验内容1、图像二维离散小波变换及其重构;2、小波变换在去噪、压缩、图像增强上的应用。实验原理1、“小波”就是小区域、长度有限、均值为0的波形。所谓“小”是指它具有衰减性;而称之为“波”则是指它的波动性,其振幅正负相间的震荡形式。与Fourier变换相比,小波变换是时间(空间)频率的局部化分析,它通过伸缩平移运算对信号(函数)逐步进行多尺度细化,最终达到高频处时间细分,低频
2、处频率细分,能自动适应时频信号分析的要求,从而可聚焦到信号的任意细节,解决了Fourier变换的困难问题,成为继Fourier变换以来在科学方法上的重大突破。小波转换分成两个大类:离散小波变换(DWT)和连续小波转换(CWT)。两者的主要区别在于,连续转换在所有可能的缩放和平移上操作,而离散转换采用所有缩放和平移值的特定子集。小波变换的公式有内积形式和卷积形式,两种形式的实质都是一样的。它要求的就是一个个小波分量的系数也就是“权”。其直观意义就是首先用一个时窗最窄,频窗最宽的小波作为尺子去一步步地“量”信号,也就
3、是去比较信号与小波的相似程度。信号局部与小波越相似,则小波变换的值越大,否则越小。当一步比较完成后,再将尺子拉长一倍,又去一步步地比较,从而得出一组组数据。如此这般循环,最后得出的就是信号的小波分解(小波级数)。当尺度及位移均作连续变化时,可以理解必将产生大量数据,作实际应用时并不需要这么多的数据,因此就产生了离散的思想。将尺度作二进离散就得到二进小波变换,同时也将信号的频带作了二进离散。当觉得二进离散数据量仍显大时,同时将位移也作离散就得到了离散小波变换。2、二维离散小波变换常用函数3、小波图像去噪一般方法如下
4、:1)图像的小波分解。选择合适的小波函数以及适合的分解层次对图像进行分解。2)对分解后的高频系数进行阈值处理。对分解的每一层,选择合适的阈值对该层的水平、垂直和斜线三个方向的高频系数进行阈值量化处理。3)重构图像。根据小波分解的低频系数和经阈值量化处理后的高频系数进行图像重构。4、小波图像压缩图像能够进行压缩的主要原因是:1)原始图像信息存在着很大的冗余度,数据之间存在着相关性;2)人眼作为图像信息的接收端,其视觉对于边缘急剧变化不敏感(视觉掩盖效应),以及人眼对图像的亮度信息敏感,而对颜色分辨率弱等。基于上述两
5、点,发展出数据压缩的两类基本方法:一种是将相同的或相似的数据或数据特征归类,使用较少的数据量描述原始数据,达到减少数据量的目的,这种压缩一般为无损压缩;另一种是利用人眼的视觉特性有针对性地简化不重要的数据,以减少总的数据量,这种压缩一般为有损压缩。只要损失的数据不太影响人眼主观接收的效果,即可采用。5、小波图像增强图像增强的主要目的是提高图像的视觉质量或者凸显某些特征信息。无论是为了对人类眼睛结构的剖析,还是基于计算机可视化技术的高级图像分析,图像增强都有着重要的作用。虽然图像增强技术不能增加图像数据本身包含的信
6、息,但是可以凸显特定特征,在处理后图像更容易识别。通常图像增强的目的主要有:放大图像中感兴趣结构的对比度,增加可理解性;减少或抑制图像中混有的噪声,提高视觉质量。小波变换可以将图像分解为各个尺度上的子带图像,因为图像分解的低频部分体现了图像的轮廓,图像分解的高频部分表现为图像的细节和混入的噪声,因此对低频部分进行增强,对高频部分进行衰减,可以实现图像增强的目的。实验步骤1.读入图象,对图象作单尺度二维离散小波分解、二尺度二维离散小波分解、提取并显示二维小波分解的高频系数和低频系数。2.读入图象,对图象作单尺度二维
7、离散小波逆变换、多尺度二维小波重构、二维小波分解的低频或高频重构并显示。3、采用wdencmp函数对图像进行阈值去噪,观察软阈值与硬阈值处理结果的不同。4、采用wdencmp函数对图像进行压缩,观察去噪与压缩处理结果的不同。5、读取图像“noiswom”,进行图像增强。例程1、%加载图像loadtire;nbc=size(map,1);colormap(pink(nbc));%用小波函数db2对信号x进行单层分解[cA1,cH1,cV1,cD1]=dwt2(X,'db2');figure(1);subplot(3
8、,2,1);image(wcodemat(X,nbc));title('原始图像');subplot(3,2,3);image(wcodemat(cA1,nbc));title('低频系数图像');subplot(3,2,4);image(wcodemat(cH1,nbc));title('水平高频系数图像');subplot(3,2,5);image(wcodemat(