基于Matlab的小波分析在圖像處理中的應用_第1頁
基于Matlab的小波分析在圖像處理中的應用_第2頁
基于Matlab的小波分析在圖像處理中的應用_第3頁
基于Matlab的小波分析在圖像處理中的應用_第4頁
基于Matlab的小波分析在圖像處理中的應用_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于Matlab的小波分析在圖像處理中的應用摘要:本文先介紹了小波分析得基本理論,包括連續(xù)小波變換、離散小波變換和小波包分析。小波變換具有時頻局部化的特點,因此不但能對圖像提供較精確的時域定位,也能提供較精確的頻域定位。經過小波變換的圖像具有頻譜劃、方向選擇、多分辨率分析和天然塔式數據結構特點?;谛〔ㄗ儞Q這些特性,討論了MATLAB語言環(huán)境下圖像壓縮,圖像去噪,圖像融合,圖像分解,圖像增強的基本方法。關鍵詞:小波分析;圖像壓縮;圖像去噪;圖像融合;圖像分解;圖像增強1 引言小波分析誕生于20世紀80年代, 被認為是調和分析即現代Fourier分析發(fā)展的一個嶄新階段。眾多高新技術以數學為基礎,

2、而小波分析被譽為“數學顯微鏡”,這就決定了它在高科技研究領域重要的地位。目前, 它在模式識別、圖像處理、語音處理、故障診斷、地球物理勘探、分形理論、空氣動力學與流體力學上的應用都得到了廣泛深入的研究,甚至在金融、證券、股票等社會科學方面都有小波分析的應用研究。在傳統(tǒng)的傅立葉分析中,信號完全是在頻域展開的,不包含任何時頻的信息,這對于某些應用來說是很恰當的,因為信號的頻率的信息對其是非常重要的。但其丟棄的時域信息可能對某些應用同樣非常重要,所以人們對傅立葉分析進行了推廣,提出了很多能表征時域和頻域信息的信號分析方法,如短時傅立葉變換,Gabor變換,時頻分析,小波變換等。其中短時傅立葉變換是在傅

3、立葉分析基礎上引入時域信息的最初嘗試,其基本假定在于在一定的時間窗信號是平穩(wěn)的,那么通過分割時間窗,在每個時間窗把信號展開到頻域就可以獲得局部的頻域信息,但是它的時域區(qū)分度只能依賴于大小不變的時間窗,對某些瞬態(tài)信號來說還是粒度太大。換言之,短時傅立葉分析只能在一個分辨率上進行。所以對很多應用來說不夠精確,存在很大的缺陷。而小波分析則克服了短時傅立葉變換在單分辨率上的缺陷,具有多分辨率分析的特點,在時域和頻域都有表征信號局部信息的能力,時間窗和頻率窗都可以根據信號的具體形態(tài)動態(tài)調整,在一般情況下,在低頻部分(信號較平穩(wěn))可以采用較低的時間分辨率,而提高頻率的分辨率,在高頻情況下(頻率變化不大)可

4、以用較低的頻率分辨率來換取精確的時間定位。 本文介紹了小波變換的基本理論,并介紹了一些常用的小波函數,它們的主要性質包括緊支集長度、濾波器長度、對稱性、消失矩等,都做了簡要的說明。然后研究了小波分析在圖像處理中的應用,包括圖像壓縮,圖像去噪,圖像融合,圖像分解,圖像增強等。2 小波分析的基本理論2.1 連續(xù)小波變換定義:設,其傅立葉變換為,當滿足允許條件(完全重構條件或恒等分辨條件)< (1)時,我們稱為一個基本小波或母小波。將母函數經伸縮和平移后得 (2)稱其為一個小波序列。其中a為伸縮因子,b為平移因子。對于任意的函數的連續(xù)小波變換為 (3)其重構公式(逆變換)為 (4)由于基小波生

5、成的小波在小波變換中對被分析的信號起著觀測窗的作用,所以還應該滿足一般函數的約束條件 (5)故是一個連續(xù)函數。這意味著,為了滿足完全重構條件式,在原點必須等于0,即 (6)為了使信號重構的實現在數值上是穩(wěn)定的,處理完全重構條件外,還要求小波的傅立葉變化滿足下面的穩(wěn)定性條件: (7)式中0AB。2.2 離散小波變換在實際運用中,尤其是在計算機上實現時,連續(xù)小波必須加以離散化。因此,有必要討論連續(xù)小波和連續(xù)小波變換的離散化。需要強調指出的是,這一離散化都是針對連續(xù)的尺度參數a和連續(xù)平移參數b的,而不是針對時間變量t的。這一點與我們以前習慣的時間離散化不同。在連續(xù)小波中,考慮函數:這里,且,是容許的

6、,為方便起見,在離散化中,總限制a只取正值,這樣相容性條件就變?yōu)?(8)通常,把連續(xù)小波變換中尺度參數a和平移參數b的離散公式分別取作,這里,擴展步長是固定值,為方便起見,總是假定(由于m可取正也可取負,所以這個假定無關緊要)。所以對應的離散小波函數即可寫作 (9)而離散化小波變換系數則可表示為 (10)其重構公式為 (11)C是一個與信號無關的常數。然而,怎樣選擇和,才能夠保證重構信號的精度呢?顯然,網格點應盡可能密(即和盡可能小),因為如果網格點越稀疏,使用的小波函數和離散小波系數就越少,信號重構的精確度也就會越低。2.3 小波包分析 短時傅立葉變換對信號的頻帶劃分是線性等間隔的。多分辨分

7、析可以對信號進行有效的時頻分解,但由于其尺度是按二進制變化的,所以在高頻頻段其頻率分辨率較差,而在低頻頻段其時間分辨率較差,即對信號的頻帶進行指數等間隔劃分(具有等Q結構)。小波包分析能夠為信號提供一種更精細的分析方法,它將頻帶進行多層次劃分,對多分辨率分析沒有細分的高頻部分進一步分解,并能夠根據被分析信號的特征,自適應地選擇相應頻帶,使之與信號頻譜相匹配,從而提高了時-頻分辨率,因此小波包具有更廣泛的應用價值。關于小波包分析的理解,我們這里以一個三層的分解進行說明,其小波包分解樹如圖SD1A1DD2AD2DA2AA2DDA3AAD3ADD3DDD3ADA3DAA3AAA3DAA3圖1 小波包

8、分解樹圖1中,A表示低頻,D表示高頻,末尾的序號數表示小波分解的層樹(也即尺度數)。分解具有關系:S=AAA3+DAA3+ADA3+DDA3+AAD3+DAA3+ADD3+DDD33 常用小波基介紹 (1)Haar小波Haar于1990年提出一種正交函數系,定義如下: (12)這是一種最簡單的正交小波,即 (2)Daubechies(dbN)小波系該小波是Daubechies從兩尺度方程系數出發(fā)設計出來的離散正交小波。一般簡寫為dbN,N是小波的階數。小波和尺度函數吁中的支撐區(qū)為2N-1。的消失矩為N。除N1外(Haar小波),dbN不具對稱性即非線性相位;dbN沒有顯式表達式(除N1外)。但

9、的傳遞函數的模的平方有顯式表達式。假設,其中,為二項式的系數,則有 (13)其中 (3)Biorthogonal(biorNr.Nd)小波系Biorthogonal函數系的主要特征體現在具有線性相位性,它主要應用在信號與圖像的重構中。通常的用法是采用一個函數進行分解,用另外一個小波函數進行重構。Biorthogonal函數系通常表示為biorNr.Nd的形式:Nr=1 Nd=1,3,5Nr=2 Nd=2,4,6,8Nr=3 Nd=1,3,5,7,9Nr=4 Nd=4Nr=5 Nd=5Nr=6 Nd=8其中,r表示重構,d表示分解。(4)Coiflet(coifN)小波系coiflet函數也是由

10、Daubechies構造的一個小波函數,它具有coifN(N=1,2,3,4,5)這一系列,coiflet具有比dbN更好的對稱性。從支撐長度的角度看,coifN具有和db3N與sym3N一樣的支撐長度;從消失矩的數目來看,coifN具有和db2N與sym2N一樣的消失矩數目。 (5)SymletsA(symN)小波系Symlets函數系是由Daubechies提出的近似對稱的小波函數,它是對db函數的一種改進。Symlets函數系通常表示為symN(N=2,3,8)的形式。(6)Morlet(morl)小波Morlet函數定義為,它的尺度函數不存在,且不具有正交性。 (7)Mexican H

11、at(mexh)小波Mexican Hat函數為 (14)它是Gauss函數的二階導數,因為它像墨西哥帽的截面,所以有時稱這個函數為墨西哥帽函數。墨西哥帽函數在時間域與頻率域都有很好的局部化,并且滿足由于它的尺度函數不存在,所以不具有正交性。 (8)Meyer小波Meyer小波函數和尺度函數都是在頻率域中進行定義的,是具有緊支撐的正交小波。 (15)其中,為構造Meyer小波的輔助函數,且有 (16)4 小波分析在圖像處理中的應用4.1 小波分析用于圖像壓縮4.1.1 基于小波變換的圖像局部壓縮基于離散余弦變換的圖像壓縮算法,其基本思想是在頻域對信號進行分解,驅除信號點之間的相關性,并找出重要

12、系數,濾掉次要系數,以達到壓縮的效果,但該方法在處理過程中并不能提供時域的信息,在我們比較關心時域特性的時候顯得無能為力。但是這種應用的需很廣泛的,比如遙感測控圖像,要求在整幅圖像有很高壓縮比的同時,對熱點部分的圖像要有較高的分辨率,例如醫(yī)療圖像,需要對某個局部的細節(jié)部分有很高的分辨率,單純的頻域分析的方法顯然不能達到這個要求,雖然可以通過對圖像進行分快分解,然后對每塊作用不同的閾值或掩碼來達到這個要求,但分塊大小相對固定,有失靈活。在這個方面,小波分析就優(yōu)越的多,由于小波分析固有的時頻特性,我們可以在時頻兩個方向對系數進行處理,這樣就可以對我們感興趣的部分提供不同的壓縮精度。下面我們利用小波

13、變化的時頻局部化特性,舉一個局部壓縮的例子,可以通過這個例子看出小波變換在應用這類問題上的優(yōu)越性。load wbarb使用sym4小波對信號進行一層小波分解ca1,ch1,cv1,cd1=dwt2(X,'sym4');codca1=wcodemat(ca1,192);codch1=wcodemat(ch1,192);codcv1=wcodemat(cv1,192);codcd1=wcodemat(cd1,192);將四個系數圖像組合為一個圖像codx=codca1,codch1,codcv1,codcd1復制原圖像的小波系數rca1=ca1;rch1=ch1;rcv1=cv1;

14、rcd1=cd1;將三個細節(jié)系數的中部置零rch1(33:97,33:97)=zeros(65,65);rcv1(33:97,33:97)=zeros(65,65);rcd1(33:97,33:97)=zeros(65,65);codrca1=wcodemat(rca1,192);codrch1=wcodemat(rch1,192);codrcv1=wcodemat(rcv1,192);codrcd1=wcodemat(rcd1,192);將處理后的系數圖像組合為一個圖像codrx=codrca1,codrch1,codrcv1,codrcd1重建處理后的系數rx=idwt2(rca1,rch

15、1,rcv1,rcd1,'sym4');subplot(221);image(wcodemat(X,192),colormap(map);title('原始圖像');subplot(222);image(codx),colormap(map);title('一層分解后各層系數圖像');subplot(223);image(wcodemat(rx,192),colormap(map);title('壓縮圖像');subplot(224);image(codrx),colormap(map);title('處理后各層系數圖像&

16、#39;);求壓縮信號的能量成分per=norm(rx)/norm(X)per =1.0000求壓縮信號與原信號的標準差err=norm(rx-X)err =586.4979圖2 利用小波變換的局部壓縮圖像從圖1可以看出,小波域的系數表示的是原圖像各頻率段的細節(jié)信息,并且給我們提供了一種位移相關的信息表述方式,我們可以通過對局部細節(jié)系數處理來達到局部壓縮的效果。 在本例中,我們把圖像中部的細節(jié)系數都置零,從壓縮圖像中可以很明顯地看出只有中間部分變得模糊(比如在原圖中很清晰的圍巾的條紋不能分辨),而其他部分的細節(jié)信息仍然可以分辨的很清楚。最后需要說明的是本例只是為了演示小波分析應用在圖像局部壓縮

17、的方法,在實際的應用中,可能不會只做一層變換,而且作用閾值的方式可能也不會是將局部細節(jié)系數全部清除,更一般的情況是在N層變換過選擇零系數比例或能量保留成分作用不同的閾值,實現分片的局部壓縮。而且,作用的閾值可以是方向相關的,即在三個不同方向的細節(jié)系數上作用不同的閾值。4.1.2 利用二維小波分析進行圖像壓縮二維小波分析用于圖像壓縮是小波分析應用的一個重要方面。它的特點是壓縮比高,壓縮速度快,壓縮后能保持圖像的特征基本不變,且在傳遞過程中可以抗干擾。小波分析用于圖像壓縮具有明顯的優(yōu)點。下面給出一個圖像信號(即一個二維信號,文件名為wbarb.mat),利用二維小波分析對圖像進行壓縮。一個圖像作小

18、波分解后,可得到一系列不同分辨率的子圖像,不同分辨率的子圖像對應的頻率是不一樣的。高分辨率(即高頻)子圖像上大部分點的數值都接近于0,越是高頻這種現象越明顯。對一個圖像來說,表現一個圖像最主要的部分是低頻部分,所以一個最簡單的壓縮方法是利用小波分解,去掉圖像的高頻部分而只保留低頻部分。圖像壓縮可按如下程序進行處理。load wbarb;subplot(221);image(X);colormap(map)title('原始圖像');axis squaredisp('壓縮前圖像X的大小:');whos('X')%對圖像用bior3.7小波進行2層小

19、波分解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'

20、,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);axis squaretitle('分解后低頻和高頻信息');%下面進行圖像壓縮處理%保留小波分解第一層低頻信息,進行圖像的壓縮%第一層的低頻信息即為ca1,顯示第一層的低頻信息%首先對第一層信息進行量化編碼ca1=appcoef2(c,s,'bior3.7',1

21、);ca1=wcodemat(ca1,440,'mat',0);%改變圖像的高度ca1=0.5*ca1;subplot(223);image(ca1);colormap(map);axis squaretitle('第一次壓縮');disp('第一次壓縮圖像的大小為:');whos('ca1')%保留小波分解第二層低頻信息,進行圖像的壓縮,此時壓縮比更大%第二層的低頻信息即為ca2,顯示第二層的低頻信息ca2=appcoef2(c,s,'bior3.7',2);%首先對第二層信息進行量化編碼ca2=wcodemat

22、(ca2,440,'mat',0);%改變圖像的高度ca2=0.25*ca2;subplot(224);image(ca2);colormap(map);axis squaretitle('第二次壓縮');disp('第二次壓縮圖像的大小為:');whos('ca2')輸出結果如下所示:壓縮前圖像X的大?。篘ame Size Bytes Class X 256x256 524288 double arrayGrand total is 65536 elements using 524288 bytes第一次壓縮圖像的大小為:Nam

23、e Size Bytes Class ca1 135x135 145800 double arrayGrand total is 18225 elements using 145800 bytes第二次壓縮圖像的大小為:Name Size Bytes Class ca2 75x75 45000 double arrayGrand total is 5625 elements using 45000 bytes圖像對比如圖所示。可以看出,第一次壓縮提取的是原始圖像中小波分解第一層的低頻信息,此時壓縮效果較好,壓縮比較?。s為1/3):第二次壓縮是提取第一層分解低頻部分的低頻部分(即小波分解第二層

24、的低頻部分),其壓縮比較大(約為1/12),壓縮效果在視覺上也基本過的去。這是一種最簡單的壓縮方法,只保留原始圖像中低頻信息,不經過其他處理即可獲得較好的壓縮效果。在上面的例子中,我們還可以只提取小波分解第3、4、層的低頻信息。從理論上說,我們可以獲得任意壓縮比的壓縮圖像。圖3 利用二維小波分析進行圖像壓縮下面再給出用wdenemp函數對一個圖像(文件名tire.mat)進行壓縮的程序。%裝入一個二維信號load tire;%顯示圖像subplot(221);image(X);colormap(map)title('原始圖像');axis square%下面進行圖像壓縮%對圖像

25、用db3小波進行2層小波分解c,s=wavedec2(X,2,'db3');%使用wavedec2函數來實現圖像的壓縮thr,sorh,keepapp=ddencmp('cmp','wv',X);%輸入參數中選擇了全局閾值選項gbl,用來對所有高頻系數進行一樣的閾值量化處理Xcomp,cxc,lxc,perf0,perfl2=wdencmp('gbl',c,s,'db3',2,thr,sorh,keepapp);%將壓縮后的圖像與原始圖像相比較,并顯示出來subplot(222);image(Xcomp);colo

26、rmap(map)title('壓縮圖像');axis squaredisp('小波分解系數中置0的系數個數百分比:');perf0disp('壓縮后圖像剩余能量百分比:');perfl2輸出結果如下所示:小波分解系數中置0的系數個數百分比:perf0 =49.1935壓縮后圖像剩余能量百分比:perfl2 =99.9928圖像對比如圖所示:圖4 利用二維小波分析對圖像進行壓縮利用二維小波變換進行圖像壓縮時,小波變換將圖像從空間域變換到時間域,它的作用與以前在圖像壓縮中所用到的離散余弦(DCT)、傅立葉變換(FFT)等的作用類似。但是要很好的進行

27、圖像的壓縮,需要綜合的利用多種其他技術,特別是數據的編碼與解碼算法等,所以利用小波分析進行圖像壓縮通常需要利用小波分析和許多其他相關技術共同完成。4.1.3 基于小波包變換的圖像壓縮小波分析之所以在信號處理中有著強大的功能,是基于其分離信息的思想,分離到各個小波域的信息除了與其他小波域的關聯,使得處理的時候更為靈活。全局閾值化方法作用的信息粒度太大,不夠精細,所以很難同時獲得高的壓縮比和能量保留成分,在作用的分層閾值以后,性能明顯提高,因為分層閾值更能體現信號固有的時頻局部特性。但是小波分解仍然不夠靈活,分解出來的小波樹只有一種模式,不能完全地體現時頻局部化信息。而壓縮的核心思想既是盡可能去處

28、各小波域系數之間的信息關聯,最大限度體現時頻局部化的信息,因此,實際的壓縮算法多采用小波包算法,而小波樹的確定則是根據不同的信息論準則,以達到分解系數表達的信息密度最高。下面我通過一個例子來說明小波包分析在圖像壓縮中的應用,并給出性能參數以便于同基于小波分析的壓縮進行比較。load julia求顏色索引表長度nbc=size(map,1);得到信號的閾值,保留層數,小波樹優(yōu)化標準thr,sorh,keepapp,crit=ddencmp('cmp','wp',X)通過以上得到的參數對信號進行壓縮xd,treed,perf0,perfl2=wpdencmp(X,s

29、orh,4,'sym4',crit,thr*2,keepapp);更改索引表為pink索引表colormap(pink(nbc);subplot(121);image(wcodemat(X,nbc);title('原始圖像');subplot(122);image(wcodemat(xd,nbc);title('全局閾值化壓縮圖像');xlabel('能量成分',num2str(perfl2),'%','零系數成分',num2str(perf0),'%');plot(treed);得

30、到的壓縮結果如圖所示圖5 基于小波包分析的圖像壓縮壓縮過程中使用的最優(yōu)小波樹如圖6所示圖6 最優(yōu)小波樹這兩個命令是Matlab小波工具箱提供的自動獲取閾值和自動使用小波包壓縮的命令,后者將分解閾值化和重建綜合起來。在將小波包用于信號壓縮的過程中,ddencmp命令返回的最優(yōu)小波樹標準都是閾值化標準。根據這個標準確定的最優(yōu)小波樹可以使得壓縮過程的零系數成分最高,并且自動降低計算量。最后需要說明的一點,對高頻成分很多的圖像,小波包的分解細節(jié)信息的特點尤其能發(fā)揮其優(yōu)勢。圖像壓縮是應用非常廣泛的一類問題,所以其機器實現效率是至關重要的,在實際的應用中,如JPEG2000,一般不采用通常的mallat算

31、法做小波分解,而是應用特定的雙正交小波,利用其濾波器分布規(guī)則的特性,用移位操作來實現濾波操作。4.2 小波分析用于圖像去噪對二維圖像信號的去噪方法同樣適用于一維信號,尤其是對于幾何圖像更適合。二維模型可以表述為s(i,j)=f( i,j)+·e(i,j) i,j=0,1,,m-1其中,e是標準偏差不變的高斯白噪聲。二維信號用二維小波分析的去噪步驟有3步:(1)二維信號的小波分解。選擇一個小波和小波分解的層次N,然后計算信號s到第N層的分解。(2)對高頻系數進行閾值量化。對于從1到N的每一層,選擇一個閾值,并對這一層的高頻系數進行軟閾值量化處理。(3)二維小波的重構。根據小波分解的第N

32、層的低頻系數和經過修改的從第一層到第N層的各層高頻系數計算二維信號的小波重構。在這3個步驟中,重點是如何選取閾值和閾值的量化下面給出一個二維信號(文件名為detfinger.mat),并利用小波分析對信號進行去噪處理。Matlab的去噪函數有ddencmp,wdencmp等,其去噪過程可以按照如下程序進行。load tire%下面進行早聲的產生init=3718025452;rand('seed',init);Xnoise=X+18*(rand(size(X);%顯示原始圖像與它的含噪聲的圖像colormap(map);subplot(2,2,1);image(wcodemat

33、(X,192);title('原始圖像X')axis squaresubplot(2,2,2);image(wcodemat(X,192);title('含噪聲的圖像Xnoise');axis square%用sym5小波對圖像信號進行二層的小波分解c,s=wavedec2(X,2,'sym5');%下面進行圖像的去噪處理%使用ddencmp函數來計算去噪的默認閾值和熵標準%使用wdencmp函數來實現圖像的壓縮thr,sorh,keepapp=ddencmp('den','wv',Xnoise);Xdenoise

34、,cxc,lxc,perf0,perfl2=wdencmp('gbl',c,s,'sym5',2,thr,sorh,keepapp);%顯示去噪后的圖像subplot(223);image(Xdenoise);title('去噪后的圖像');axis square輸出結果從圖中3個圖像的比較可以看出,Matlab中的ddencmp和wdencmp函數可以有效地進行去噪處理。圖7 去噪一再給定一個有較大白噪聲的圖像。由于圖像所含的噪聲主要是白噪聲,而且主要集中在圖像的高頻部分,所以我們可以通過全部濾掉圖像中的高頻部分實現圖像的去噪。具體去噪過程可按

35、照如下程序進行。load wmandril;%畫出原始圖像subplot(221);image(X);colormap(map);title('原始圖像');axis square%產生含噪圖像init=2055615866;randn('seed',init)x=X+38*randn(size(X);%畫出含噪圖像subplot(222);image(x);colormap(map);title('含噪聲圖像');axis square;%下面進行圖像的去噪處理%用小波函數sym4對x進行2層小波分解c,s=wavedec2(x,2,'

36、sym4');%提取小波分解中第一層的低頻圖像,即實現了低通濾波去噪a1=wrcoef2('a',c,s,'sym4');%畫出去噪后的圖像subplot(223);image(a1);title('第一次去噪圖像');axis square;%提取小波分解中第二層的低頻圖像,即實現了低通濾波去噪%相當于把第一層的低頻圖像經過再一次的低頻濾波處理a2=wrcoef2('a',c,s,'sym4',2);%畫出去噪后的圖像subplot(224);image(a2);title('第二次去噪圖像

37、9;);axis square;輸出結果如圖:圖8 去噪二從上面的輸出結果可以看出,第一次去噪已經濾去了大部分的高頻噪聲,但從去噪圖像與原始圖像相比可以看書,第一次去噪后的圖像中還是含有不少的高頻噪聲;第二次去噪是在第一次去噪的基礎上,再次濾去其中的高頻噪聲。從去噪的結果可以看出,它具有較好的去噪效果。下面再給出定一個喊有較少噪聲的facets.mat圖像。由于原始圖像中只喊有較少的高頻噪聲,如果按照上一個例子把高頻噪聲全部濾掉的方法將損壞圖像中固有的高頻有用信號。因此這幅圖像適合采用小波分解系數閾值量化方法進行去噪處理。load facets;%畫出原始圖像subplot(221);imag

38、e(X);colormap(map);title('原始圖像');axis square%產生含噪聲圖像init=2055615866;randn('seed',init)x=X+10*randn(size(X);%畫出含噪聲圖像subplot(222);image(X);colormap(map);title('含噪聲圖像');axis square%下面進行圖像的去噪處理%用小波畫數coif3對x進行2層小波分解c,s=wavedec2(x,2,'coif3');%提取小波分解中第一層的低頻圖像,即實現了低通濾波去噪%設置尺度

39、向量nn=1,2設置閾值向量pp=10.12,23.28;%對三個方向高頻系數進行閾值處理nc=wthcoef2('h',c,s,n,p,'s');nc=wthcoef2('v',c,s,n,p,'s');nc=wthcoef2('d',c,s,n,p,'s');%對新的小波分解結構nc,s進行重構xx=waverec2(nc,s,'coif3');%畫出重構后圖像的波形subplot(223);image(X);colormap(map);title('去噪后的圖像'

40、;);axis square輸出結果如圖圖9 去噪三二維信號在應用中一般表現為圖像信號,二維信號在小波域中的降噪方法的基本思想與一維情況一樣,在閾值選擇上,可以使用統(tǒng)一的全局閾值,有可以分作三個方向,分別是水平方向、豎直方向和對角方向,這樣就可以把在所有方向的噪聲分離出來,通過作用閾值抑制其成分。4.3 小波分析用于圖像增強4.3.1 圖像增強問題描述小波分析在二維信號(圖像)處理方面的優(yōu)點主要體現在其時頻分析特性,前面介紹了一些基于這種特性的一些應用的實例,但對二維信號小波系數的處理方法只介紹了閾值化方法一種,下面我將介紹一下以前在一維信號中用到的抑制系數的方法,這種方法在圖像處理領域主要應

41、用于圖像增強。在圖像處理領域,圖像增強問題主要通過時域(沿用信號處理的說法,空域可能對圖像更適合)和頻域處理兩種方法來解決。時域方法通過直接在圖像點上作用算子或掩碼來解決,頻域方法通過修改傅立葉變換系數來解決。這兩種方法的優(yōu)劣很明顯,時域方法方便快速但會丟失很多點之間的相關信息,頻域方法可以很詳細地分離出點之間的相關,但需要做兩次數量級為nlogn的傅立葉變換和逆變換的操作,計算量大得多。小波分析是以上兩種方法的權衡結果,建立在如下的認識基礎上,傅立葉分析的在所有點的分辨率都是原始圖像的尺度,但對于問題本身的要求,我們可能不需要這么大的分辨率,而單純的時域分析又顯得太粗糙,小波分析的多尺度分析

42、特性為用戶提供了更靈活的處理方法。可以選擇任意的分解層數,用進可能少的計算量得到我們滿意的結果。給定一個wmandril.mat圖像信號。由于圖像經二維小波分解后,圖像的輪廓主要體現在低頻部分,細節(jié)部分體現在高頻部分,因此可以通過對低頻分解系數進行增強處理,對高頻分解系數進行衰減處理,從而達到圖像增強的效果。具體程序清單如下:load wmandrilsubplot(121);image(X);colormap(map);title('原始圖像');axis square%下面進行圖像的增強處理%用小波函數sym4對X進行2層小波分解c,s=wavedec2(X,2,'

43、sym4');sizec=size(c);%對分解系數進行處理以突出輪廓部分,弱化細節(jié)部分for i=1:sizec(2) if(c(i)>350) c(i)=2*c(i); else c(i)=0.5*c(i); endend%下面對處理后的系數進行重構xx=waverec2(c,s,'sym4');%畫出重構后的圖像subplot(122);image(xx);colormap(map);title('增強圖像');axis square輸出結果如圖所示:圖10 小波分析用于圖像增強本文將主要討論圖像增強中的鈍化和銳化兩種方法,鈍化操作主要是提

44、出圖像中的低頻成分,抑制尖銳的快速變化成分,銳化操作正好相反,將圖像中尖銳的部分進可能得提取出來,用于檢測和識別等領域。下面將以例子說明這兩種方法在Matlab中的實現,并對于基于傅立葉變換的傳統(tǒng)頻域方法同小波方法做一下比較。4.3.2 圖像鈍化圖像鈍化在時域中的處理相對簡單,只需要對圖像作用一個平滑濾波器,使得圖像中的每個點與其相鄰點做平滑即可,這里不做詳細介紹,我們來介紹一下基于傅立葉變換的頻域處理方法。下面我們以chess信號為例,通過兩種方法對圖像鈍化的結果做一下比較。load chess分別保存用DCT方法和小波方法的變換系數blur1=X;blur2=X;對原圖像做二維離散余弦變換

45、ff1=dct2(X);對變換結果在頻域做BUTTERWORTH濾波for i=1:256 for j=1:256 ff1(i,j)=ff1(i,j)/(1+(i*j+j*j)/8192)2); endend重建變換后的圖像blur1=idct2(ff1);對圖像做2層的二維小波分解c,l=wavedec2(X,2,'db3');csize=size(c);對低頻系數進行放大處理,并抑制高頻系數for i=1:csize(2); if(c(i)>300) c(i)=c(i)*2; else c(i)=c(i)/2; endend通過處理后的小波系數重建圖像blur2=wa

46、verec2(c,l,'db3');顯示三幅圖像subplot(221);image(wcodemat(X,192);colormap(gray(256);title('原始圖像','fontsize',18);subplot(223);image(wcodemat(blur1,192);colormap(gray(256);title('采用DCT方法鈍化圖像','fontsize',18);subplot(224);image(wcodemat(blur2,192);colormap(gray(256);tit

47、le('采用小波方法鈍化圖像','fontsize',18);圖11 圖像鈍化從圖中可以看出,采用DCT在頻域做濾波的方法得到鈍化結果更為平滑,這是因為其分辨率最高,而小波方法得到的結果在很多地方有不連續(xù)的現象,因為我們對系數做放大或抑制在閾值兩側有間斷,而且分解層數很低,沒有完全分離出頻域的信息。而且我們在做系數放大或抑制的時候,采用的標準是根據系數絕對值的大小,沒有完全體現出其位置信息,但是在小波系數中,我們很容易在處理系數的過程中加入位置信息。 4.3.3 圖像銳化與圖像鈍化所做的工作相反,圖像銳化的任務是突出高頻信息,抑制低頻信息,從快速變化的成分中分離

48、出標識系統(tǒng)特性或區(qū)分子系統(tǒng)邊界的成分,以便于進一步的識別、分割等操作。在時域(空域)中,銳化的方法不外乎是作用掩碼或做差分,同鈍化的道理一樣,無論是掩碼和差分都很難識別點之間的關聯信息,我們下面的例子同樣是在頻域完成的,用傳統(tǒng)的傅立葉分析方法(這里采用的是DCT變換)得到的頻域系數。load chess;分別保存用DCT方法和小波方法的變換系數blur1=X;blur2=X;對原圖像做二維離散余弦變換ff1=dct2(X);對變換結果在頻域做BUTTERWORTH濾波for i=1:256 for j=1:256 ff1(i,j)=ff1(i,j)/(1+(32768/(i*i+j*j)2);

49、 endend重建變換后的圖像blur1=idct2(ff1);對圖像做2層的二維小波分解c,l=wavedec2(X,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; endend通過處理后的小波系數重建圖像blur2=waverec2(c,l,'db3');顯示三幅圖像subplot(221);image(wcodemat(X,192);colormap(gray(256);title(&

50、#39;原始圖像','fontsize',18);subplot(223);image(wcodemat(blur1,192);colormap(gray(256);title('采用DCT方法銳化圖像','fontsize',18);subplot(224);image(wcodemat(blur2,192);colormap(gray(256);title('采用小波方法銳化圖像','fontsize',18);得到的結果如圖所示圖12 圖像銳化從結果中可以看出,使用DCT方法進行高通濾波得到的高頻結果

51、比較純粹,完全是原圖像上的邊緣信息,而在小波方法得到的結果中,不只有高頻成分,還有變換非常緩慢的低頻成分,這是因為兩者同樣在小波系數上體現為絕對值較低的部分,但這些成分的存在對我們進行進一步分析并無多大影響。最后我們來比較一次這兩個例子的時間復雜度,對DCT方法,需要做兩次復雜度為O(nlogn)的DCT變換,中間系數處理部分復雜度為O(n),而對小波變換,無論是分解和重構還有系數處理的復雜度都是O(n),所以時間復雜度的優(yōu)勢非常明顯。4.4 小波分析用于圖像融合圖像融合是將同一對象的兩個或更多的圖像合成在一幅圖像中,以便它比原來的任何一幅圖像更容易得為人們所理解。這一技術可應用于多頻譜圖像理

52、解以與醫(yī)學圖像處理等領域。在這些場合。同一物體部件的圖像往往是采用不同的成像機理得到的。下面用二維小波分析將上例中woman.mat和wbarb.mat兩幅圖像融合在一起。程序清單:load woman;X1=X;map1=map;%畫出原始圖像subplot(221);image(X1);colormap(map1);title('woman');axis squareload wbarb;X2=X;map2=map;for i=1:256 for j=1:256 if (X2(i,j)>100) X2(i,j)=1.2*X2(i,j); else X2(i,j)=0.

53、5*X2(i,j); end endendsubplot(222);image(X2);colormap(map2);title('wbarb');axis square%用小波函數sym4對X1進行2層小波分解c1,s1=wavedec2(X1,2,'sym4');%對分解系數進行處理以突出輪廓部分,弱化細節(jié)部分sizec1=size(c1);for i=1:sizec1(2) c1(i)=1.2*c1(i);end%用小波函數sym4對X2進行2層小波分解c2,s2=wavedec2(X2,2,'sym4');%下面進行小波變換域的圖像融合c

54、=c1+c2;%減小圖像亮度c=0.5*c;%對融合的系數進行重構xx=waverec2(c,s1,'sym4');%畫出融合后的圖像subplot(223);image(xx);title('融合圖像');axis square輸出結果如圖:圖13 小波分析用于圖像融合4.5 小波分析用于圖像分解 回顧從一維離散小波變換到二維的擴展,二維靜態(tài)小波變換采用相似的方式。對行和列分別采用高通和低通濾波器。這樣分解的結果仍然是四組圖像、近似圖像、水平細節(jié)圖像、豎直細節(jié)圖像和對角圖像,與離散小波變換不同的只是靜態(tài)小波分解得到的四幅圖像與原圖像尺寸一致,道理與一維情況一樣

55、。二維離散小波變換同樣只提供了一個函數swt2,因為它不對分解系數進行下采樣,所以單層分解和多層分解的結果是一樣的。不需要另外提供多層分解的功能。下面舉一個用命令行使用swt命令的例子,大家可以對比它和dwt處理結果的區(qū)別,在命令行下鍵入:load noiswomswa,swh,swv,swd=swt2(X,3,'db1');使用db1小波對noiswom圖像進行三層靜態(tài)小波分解whos可以看出,swt2所小波分解同樣不改變信號的長度,原來的96×96的圖像做了三層分解以后,分解系數是12個96×96的圖像。colormap(map)kp=0;for i=1

56、:3subplot(3,4,kp+1),image(wcodemat(swa(:,:,i),192);title('Approx,cfs,level',num2str(i)顯示第i層近似系數圖像,以192字節(jié)為單位編碼subplot(3,4,kp+2),image(wcodemat(swh(:,:,i),192);title('Horiz.Det.cfs level',num2str(i)subplot(3,4,kp+3),image(wcodemat(swv(:,:,i),192); title('Vert.Det.cfs level',num

57、2str(i)subplot(3,4,kp+4),image(wcodemat(swd(:,:,i),192);title('Diag.Det.cfs level',num2str(i)kp=kp+4;end顯示的結果如圖所示,由于分解過程中沒有改變信號的長度,所以在顯示近似和細節(jié)系數時不需要重建。圖14 小波分析用于圖像分解同idwt2的類似,Matlab對二維靜態(tài)小波重建提供了iswt2命令,同idwt的去邊也同一維情況類似,對經過重建濾波后的信號不做上采樣(因為近似系數和細節(jié)系數大小都與原信號一致)。同一維的靜態(tài)小波重建一樣,我將用例子說明如何將iswt2單純用做濾波器來實現各層系數的重建,與一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論