小波降噪的方法有多種,如利用小波分解與重構(gòu)的方法濾波降噪、利用小波變換模極大值的方法去噪、利用信號(hào)小波變換后空域相關(guān)性進(jìn)行信噪分離、非線性小波閾值方法去噪、平移不變量小波降噪法,以及多小波降噪等等。歸結(jié)起來(lái)主要有三類:模極大值檢測(cè)法、閾值降噪法和屏蔽(相關(guān))降噪法。其中最常用的就是閾值法去噪,其基本思想就是利用圖像小波分解后,各個(gè)子帶圖像的不同特性選取不同的閾值,從而達(dá)到較好的降噪目的。
一、小波降噪函數(shù)簡(jiǎn)介
MATLAB中實(shí)現(xiàn)圖像的降噪,主要是閾值獲取和圖像降噪實(shí)現(xiàn)兩個(gè)方面。
1.閾值獲取
MATLAB中實(shí)現(xiàn)閾值獲取的函數(shù)有ddencmp、select、wbmpen、和wdcbm2。這里主要介紹函數(shù)ddencmp。
函數(shù)ddencmp的功能是獲取降噪或壓縮的默認(rèn)值。該函數(shù)是降噪和壓縮的導(dǎo)向函數(shù),它給出一維或二維信號(hào)使用小波或小波包進(jìn)行降噪和壓縮一般過程的所有默認(rèn)值。
其語(yǔ)法格式為:
[THR,SORH,KEEPAPP,CRIT]=ddencmp(IN1,IN2,X)
[THR,SORH,KEEPAPP]=ddencmp(IN1,’wv’,X)
[THR,SORH,KEEPAPP,CRIT]=ddencmp(IN1,’wp’,X)
2.閾值降噪
MATLAB中實(shí)現(xiàn)閾值降噪的函數(shù)有wden、wdencmp、wpdencmp、wthresh、wpthcoef和wthcoef2。這里主要介紹函數(shù)wdencmp。
其語(yǔ)法格式為:
[XC,CXC,LXC,PERF0,PERFL2]=wdencmp(‘gbl’,X,‘wname’,N,THR,SORH,KEEPAPP)
[XC,CXC,LXC,PERF0,PERFL2]=wdencmp(‘lvd’,X,‘wname’,N,THR,SORH)
[XC,CXC,LXC,PERF0,PERFL2]=wdencmp(‘lvd’,C,L,‘wname’,N,THR,SORH)
函數(shù)wdencmp的功能是使用小波進(jìn)行降噪。該函數(shù)是二維小波降噪的導(dǎo)向函數(shù)。它使用小波對(duì)信號(hào)或圖像執(zhí)行降噪過程。wname是所用的小波函數(shù)。gbl(global)表示每層都采用同一個(gè)閾值進(jìn)行處理。lvd表示每層用不同的閾值進(jìn)行處理。N表示小波分解的層數(shù)。THR為閾值向量,長(zhǎng)度為N。SORH表示選擇軟閾值或硬閾值(分別取值為‘s’和‘h’)。參數(shù)KEEPAPP取值為1是,則低頻系數(shù)不進(jìn)行閾值量化,反之,則低頻系數(shù)要進(jìn)行閾值量化。XC是降噪后的信號(hào),[CXC,LXC]是XC的小波分解結(jié)構(gòu),PHRF0和PERFL2是恢復(fù)和壓縮L2的范數(shù)百分比。如果[C,L]是x的小波分解結(jié)構(gòu),則PERFL2=100?(CXC向量的范數(shù)/C向量的范數(shù))2;如果X是一維信號(hào),小波wname是一個(gè)正交小波,則:
二、用小波對(duì)信號(hào)進(jìn)行降噪
1、使用小波進(jìn)行一維信號(hào)的降噪
對(duì)含噪一維信號(hào)降噪,實(shí)現(xiàn)信噪分離。含噪的正弦信號(hào):對(duì)含噪信號(hào)進(jìn)行分解,從分解中得出高頻與低頻系數(shù)。高頻系數(shù)對(duì)應(yīng)細(xì)節(jié)信號(hào),低頻系數(shù)對(duì)應(yīng)逼近信號(hào)。由高頻系數(shù)中檢測(cè)噪聲,低頻系數(shù)中識(shí)別各分量信號(hào)的不同頻率。然后,再?gòu)娜ピ氲母哳l信號(hào)與逼近的低頻信號(hào)重構(gòu)目標(biāo)信號(hào)。
%生成含噪正弦信號(hào)
N=1024
t=1:N;
sig=sin(0.03*t);
?figure(1);
subplot(211);plot(t,sig);title(‘正弦信號(hào)’);
%疊加噪聲
x=sig+randn(1,N);
subplot(212);plot(t,x);title(‘含噪正弦信號(hào)’);
%一維小波分解,使用‘haar’進(jìn)行4層分解?
[c,l]=wavedec(x,4,‘haar’);
%重構(gòu)第1-4層逼近信號(hào)
a4=wrcoef(‘a(chǎn)’,c,l,‘haar’,4);
a3=wrcoef(‘a(chǎn)’,c,l,‘haar’,3);
a2=wrcoef(‘a(chǎn)’,c,l,‘haar’,2);
a1=wrcoef(‘a(chǎn)’,c,l,‘haar’,1);
%顯示各層逼近信號(hào)
figure(2);
subplot(411);plot(a4);ylabel(‘a(chǎn)4’);
subplot(412);plot(a3);ylabel(‘a(chǎn)3’);
subplot(413);plot(a2);ylabel(‘a(chǎn)2’);
subplot(414);plot(a1);ylabel(‘a(chǎn)1’);
%重構(gòu)第1-4層細(xì)節(jié)信號(hào)
d4=wrcoef(‘d’,c,l,‘haar’,4);
d3=wrcoef(‘d’,c,l,‘haar’,3);
d2=wrcoef(‘d’,c,l,‘haar’,2);
d1=wrcoef(‘d’,c,l,‘haar’,1);
%顯示各層細(xì)節(jié)信號(hào)
figure(3);
subplot(411);plot(d4);ylabel(‘d4’);
subplot(412);plot(d3);ylabel(‘d3’);
subplot(413);plot(d2);ylabel(‘d2’);
subplot(414);plot(d1);ylabel(‘d1’);
2、使用小波對(duì)圖像的降噪處理
對(duì)含有高斯白噪聲的圖像,使用sym4小波進(jìn)行分解,再用閾值法進(jìn)行降噪處理,最后重構(gòu)圖像,實(shí)現(xiàn)降噪目的。
下面通過具體實(shí)例來(lái)說明利用小波閾值降噪進(jìn)行圖像去噪的問題。
I=imread(‘D:\aaa.jpg’);
I=rgb2gray(I);
figure;J=imnoise(I,‘gaussian’,0,0.01);
[thr,sorh,keepapp]=ddencmp(‘den’,‘wv’,J);
Gxd=wdencmp(‘gbl’,J,‘sym4’,2,thr,sorh,keepapp);
subplot(2,2,1);
imshow(I,map);
title(‘原始圖像’);
subplot(2,2,2);
imshow(J,map);
title(‘加高斯噪聲圖像’);
subplot(2,2,3);
imshow(Gxd,map);
title(‘高斯噪聲濾波效果’)
程序運(yùn)行結(jié)果:
比較上面幾幅圖像,可見閾值降噪可以濾除大部分高頻噪聲,去噪效果較好,圖像質(zhì)量比原圖稍差。
評(píng)論