小波实验二:二维图像的多尺度分析实验目的:通过试验加深小波对于二维图像的分解与重构特性的理解实验原理:如将0-pi定义为空间V0,经过一级分解之后V0被分成0-pi/2的低频子空间V1和pi/2-pi的高频子空间W1,然后一直分下去....得到VJ+WJ+....W2+W1。因为VJ和WJ是正交的空间,且各W子空间也是相互正交的。所以分解得到了是相互不包含的多个频域区间,这就是多分辨率分析,即多尺度分析。同样的,对一幅图像进行小波分解,得到低频和对应的高频部分。而高频信号里则保留着图像三个方向上的高频系数,即:水平系数,垂直系数,对角线系数。试验中是采用wavedec2函数实现对图像的分解的。其格式如下:[C,S]=wavedec2(X,N,'wname')。其中x是带分解的图像读入后得到的二维矩阵,N为分解次数,‘wname’为所采用的小波基。结果中C表示分解得到的低频信号,S则表示高频部分。对高频系数的提取则采用detcoef2函数,其具体的格式如下:F=detcoef2('compact',C,S,N)。其中C,S,N的含义正如上文所述,而compact表示所要提取的系数类型:h表示提取水平系数,v表示提取垂直系数,D表示提取对角线系数。而对低频信号系数耳朵提取则采用函数appcoef2,其具体格式如下:A=appcoef2(C,S,'wname',N),各字母含义均如上文所述。实验步骤:(1)读入图像lena图,进行多尺度分解(2)提取1次分解后和3次分解后的低频系数以及各个方向的高频系数(3)显示所提取出的各个系数分量,并重构图像,与原始图像对比。实验结果:在matlab中载入lena图,建立矩阵s保留图像中的各个像素值。利用函数wavedec2对图像进行多尺度分解,得到低频分量C3和高频分量S3,再对S3采用detcoef2函数进行系数提取,得到各个方向上的高频系数。同理,对于第一次分解后的结果采用相同方法即可得到低频系数和各个高频系数。最后显示各次分解所得到的图像。并利用所得结果,用waverec2函数进行重构,对比原始图像,观察重构效果。具体得到的效果如下:图上可以看出重构后的图像基本上保留了原始图像所载有的信息,而分解所得到的各个系数图像则如下:这是一次分解后所得到的各个高频系数,对应的,三次分解后所得到高频系数则如下图所示:而程序运行后,最后结果得到的九幅图像则如下图所示:原始图像三次分解后的低频分量重构图像h1h3d1v1v3d3图中可看出小波基(试验中选取的是db1)很好的实现了对二维会读图像的多尺度分解与重构,同时试验中也帮助我加深了对于多尺度分析的理解。实验代码:s=imread('E:/lena.bmp');[C,S]=wavedec2(s,3,'db1');x=waverec2(C,S,'db1');c3=appcoef2(C,S,'db1',3);v3=detcoef2('v',C,S,3);h3=detcoef2('h',C,S,3);d3=detcoef2('D',C,S,3);[C1,S1]=wavedec2(s,1,'db1');c1=appcoef2(C1,S1,'db1',1);v1=detcoef2('v',C1,S1,1);h1=detcoef2('h',C1,S1,1);d1=detcoef2('D',C1,S1,1);subplot(3,3,1);imshow(s);title('原始图像');subplot(3,3,2);imshow(uint8(c3));title('三次分解后的低频分量');subplot(3,3,3);imshow(uint8(x));title('重构图像');subplot(3,3,4);imshow(uint8(h1));title('h1');subplot(3,3,5);imshow(uint8(h3));title('h3');subplot(3,3,6);imshow(uint8(d1));title('d1');subplot(3,3,7);imshow(uint8(v1));title('v1');subplot(3,3,8);imshow(uint8(v3));title('v3');subplot(3,3,9);imshow(uint8(d3));title('d3');