研究图像处理。小波应用图像处理的本质是一个函数逼近问题,小波可以构成Hilbert空间的规范正交基,给出了图像的多尺度表示:
f(x)???f,?J,n??J,n????f,?J,n??J,n
n?Zj?1n?ZJ?1对图像的稀疏逼近为图像的高效压缩等图像处理提供了可能。
2.3 小波分析在图像处理中的应用
小波分析在图像处理中的应用主要表现在以下几个方面: ⑴图像去噪
噪声的产生是一个随机过程,噪声分量灰度值是一个随即变量,其统计特性 由概率密度函数表征,白噪声、高斯噪声、泊松噪声是三种形式常见的重要噪声; 设长度为N的信号fn被噪声en所污染,所测得的含噪数据为:
Xn?fn?en
去噪的目标是从含噪数据X得到信号x的一个逼近信号x’,使得在某种误差准则估计下x’是x的最佳逼近。小波去噪的基本策略是将含噪信号进行多尺度小波变换,从时域变换到小波域,然后在各尺度下尽可能提取信号的小波系数,而去除属于噪声的变换系数,然后由小波逆变换重构信号。
阀值去噪的主要理论依据是,小波变换具有很强的数据去相关性,能够使信号的能量在小波域集中在少量的大的小波系数中,而噪声却分布在整个小波域,经小波分解后,信号的小波系数的幅值要大于噪声的小波系数的幅值,于是可以采用阀值的办法把信号的小波系数保留,而使大部分噪声的小波系数减少为零,阀值去噪主要思想是对小波分解后的除了最低频以外的各层系数模对大于和小于某阈值系数分别处理,然后对处理完的小波系数再反变换重构出一幅经去噪后的图像。在小波阈值收缩去噪法中最为重要的就是如何选择阈值和阈值函数,大多数阀值选择过程是针对一组小波系数,即根据本组小波系数的统计特性,计算出一个阈值。
阈值函数主要可以分为如下三种: 硬阈值函数
它假定幅值大于门限T的小波系数都是由信号贡献的,而小于门限T的小波系数 来至于噪声。实验表明这种取门限的方式有时并不太令人满意。 软阈值函数
硬阈值方法可以很好保留图像边缘等局部特征,但图像会出现振铃、伪吉布斯效应等视觉失真,阈值方法处理结果相对平滑得多,但是软阈值方法会造成边缘模糊等失真现象。 半软阀值函数
该方法通过选择合适的阈值T1和T2,可以在软阀值方法和硬阈值方法之间达到很好的折中。 阀值去噪算法
阀值去噪具体的算法步骤如下:
①选择合适的小波函数,对于长度为N(设N=2J)的含噪信号(常采用周期延拓方法)进行小波变换,利用小波交换的快速算法获得低分辨率L(O≤0 ②为保持信号的整体形状不变,保留所有的低频系数{VL,K K=1,2,…,2L},对小 波系数进行非线性阈值处理。对每个小波系数,采用软阈值和硬阈值方法进行处 理。 ③进行逆小波变换。由所有低频尺度系数,以及经由阈值处理后的小波系数作逆小波变换进行重构,得到恢复的原始信号的估计值。 ⑵图像压缩 小波分析用于信号与图像压缩是小波分析应用的一个重要方面。它的特点是压缩比高,压缩速度快,压缩后能保持信号与图像的特征不变,且在传递中可抗干扰。由于小波分析固有的时频特性,我们可以在时频两个方向对系数进行处理,这样就可以对我们感兴趣的部分提供不同的压缩精度。 ⑶图形增强 图像增强问题主要通过时域和频域处理两种方法来解决。时域方 法通过直接在图像点上作用算子或掩码来解决,频域方法通过修改傅立叶变换系数来解决。这两种方法的优劣很明显,时域方法方便快速但会丢失很多点之间的相关信息,频域方法可以很详细地分离出点之间的相关,但计算量大得多。小波分析是以上两种方法的权衡结果,傅立叶分析在所有点的分辨率都是原始图像的尺度,但我们可能不需要这么大的分辨率,而单纯的时域分析又显得太粗糙,小波分析的多尺度分析特性为用户提供了更灵活的处理方法,可以选择任意的分解层数,用近可能少的计算量得到我们满意的结果。 ⑷图像融合 图像融合是将同一对象的两个或更多的图像合成在一幅图像中,以便它比原来的任何一幅图像更容易为人们所理解。这一技术可应用于多频谱图像理解以及医学图像处理等领域。在这些场合,同一物体部件的图像往往是采用不同的成像机理得到的。 3 MATLAB仿真 下面先利用小波分析对含噪的二维图像wbard进行去噪处理,对比去噪效果,然后对去噪后的图像进行锐化处理。再对原二维图像wbarb进行压缩处理,之后再对wbarb和woman图像进行融合处理。 Matlab程序如下: load wbarb %下面进行噪声的产生 init=3718025452; rand('seed',init); Xnoise=X+50*(rand(size(X))); %显示原始图像及它的含噪声的图像 colormap(map); figure(1); subplot(2,2,1);image(wcodemat(X,192)); title('原始图像X') subplot(2,2,2);image(wcodemat(Xnoise,192)); title('含噪声的图像Xnoise'); %用sym5小波对图像信号进行二层的小波分解 [c,s]=wavedec2(X,2,'sym5'); %下面进行图像的去噪处理 %使用ddencmp函数来计算去噪的默认阈值 %使用wdencmp函数来实现图像的压缩 [thr,sorh,keepapp]=ddencmp('den','wv',Xnoise); [Xdenoise,cxc,lxc,perf0,perfl2]=wdencmp('gbl',c,s,'sym5',2,thr,sorh,keepapp); %显示去噪后的图像 subplot(223);image(Xdenoise); title('去噪后的图像'); %对去噪后的图像做锐化处理 blur2=Xdenoise; %对图像做2层的二维小波分解 [c,l]=wavedec2(Xdenoise,2,'db3'); csize=size(c); %对低频系数进行放大处理,并抑制高频系数 for i=1:csize(2); if(abs(c(i))<300) c(i)=c(i)*2; else c(i)=c(i)/2; end end %通过处理后的小波系数重构图像 blur2=waverec2(c,l,'db3'); subplot(224);image(wcodemat(blur2,192));colormap(gray(256));title('锐化去噪后的图像'); %图像压缩处理 figure(2); subplot(221);image(X);colormap(map) title('原始图像'); disp('压缩前图像X的大小:'); whos('X') %对图像用bior3.7小波进行2层小波分解 [c,s]=wavedec2(X,2,'bior3.7'); %提取小波分解结构中第一层低频系数和高频系数 ca1=appcoef2(c,s,'bior3.7',1); ch1=detcoef2('h',c,s,1); cv1=detcoef2('v',c,s,1); cd1=detcoef2('d',c,s,1); %分别对各频率成分进行重构 a1=wrcoef2('a',c,s,'bior3.7',1); h1=wrcoef2('h',c,s,'bior3.7',1); v1=wrcoef2('v',c,s,'bior3.7',1); d1=wrcoef2('d',c,s,'bior3.7',1); c1=[a1,h1;v1,d1]; %显示分解后各频率成分的信息 subplot(222);image(c1); title('分解后低频和高频信息'); %保留小波分解第一层低频信息,进行图像的压缩 %第一层的低频信息即为ca1,显示第一层的低频信息 %首先对第一层信息进行量化编码 ca1=appcoef2(c,s,'bior3.7',1); ca1=wcodemat(ca1,440,'mat',0); %改变图像的高度 ca1=0.5*ca1; subplot(223);image(ca1);colormap(map); title('第一次压缩');