版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
小波變換matlab總結(jié)目錄TOC\o"1-4"\h\z\u一、預(yù)置工具41.預(yù)置信號42.預(yù)置小波43.濾波器函數(shù)6wfilters函數(shù)64.量化編碼6wcodemat函數(shù)65.閾值獲取6ddencmp函數(shù)6thselect函數(shù)7wbmpen函數(shù)7wdcbm函數(shù)76.閾值去噪8wden函數(shù)8wdencmp函數(shù)8wthresh函數(shù)9wthcoef函數(shù)9wpdencmp函數(shù)9二、小波變換函數(shù)13單尺度一維小波變換13cwt一維連續(xù)小波變換13dwt一維離散小波變換13idwt一維離散小波逆變換14upcoef一維小波系數(shù)重構(gòu)14多尺度一維小波變換15wavedec多尺度一維分解15waverec多尺度一維重構(gòu)16appcoef低頻系數(shù)提取17detcoef高頻系數(shù)提取17wrcoef多尺度小波系數(shù)重構(gòu)18一維靜態(tài)〔平穩(wěn)〕小波變換19swt一維平穩(wěn)小波變換19iswt一維平穩(wěn)小波逆變換19實(shí)例20單尺度二維小波變換20dwt2二維離散小波變換20idwt2二維離散小波逆變換21upcoef2二維系數(shù)重構(gòu)21多尺度二維小波變換22wavedec2多尺度二維分解22waverec2多尺度二維重構(gòu)23appcoef2低頻系數(shù)提取24detcoef2高頻系數(shù)提取24wrcoef2多尺度小波系數(shù)重構(gòu)25二維靜態(tài)〔平穩(wěn)〕小波變換27swt2二維靜態(tài)小波變換27iswt2二維靜態(tài)小波逆變換27實(shí)例27直接調(diào)用的小波函數(shù)29meyer函數(shù)29cgauwavf函數(shù)29mexihat函數(shù)29morlet函數(shù)30symwavf函數(shù)30三、圖像接口調(diào)用31使用圖形接口做一維連續(xù)小波分析31使用圖形接口做一維離散小波分析34使用圖形接口分析復(fù)信號37使用圖形接口做一維除噪分析38四、小波變換在圖像處理中的應(yīng)用414.1小波分析用于圖像壓縮414.1.1基于小波變換的圖像局部壓縮414.1.2小波變換用于圖像壓縮的一般方法424.1.3基于小波包變換的圖像壓縮464.2小波分析用于圖像去噪48小噪聲閾值去噪49大噪聲濾波去噪50少量噪聲的小波分解系數(shù)閾值量化去噪514.3小波分析用于圖像增強(qiáng)534.3.1圖像增強(qiáng)問題描述534.3.2圖像鈍化544.3.3圖像銳化554.4小波分析用于圖像融合574.5小波分析用于圖像分解58一、預(yù)置工具1.預(yù)置信號Matlab內(nèi)置了大量的信號實(shí)例,進(jìn)行信號試驗(yàn)的時候可以調(diào)用。調(diào)用格式:loadsignalmatlab安裝目錄的toolbox/wavelet/wavedemonoissin包含噪聲的正弦波leleccum一維電壓信號,有365560個采樣點(diǎn)wbarb專指圖片:2.預(yù)置小波Matlab預(yù)置了共計(jì)15種小波。查看語句:wavemngr('read',1)查看單個小波:waveinfo('wname')1.Haar小波小波名haar2.Daubechies小波系小波名db調(diào)用名db1db2db3db4db5db6db7db8db9db103.對稱小波系Symlets小波名sym調(diào)用名sym2sym3sym4sym5sym6sym7sym84.Coiflets小波系小波名coif調(diào)用名coif1coif2coif3coif4coif55.Biorthogonal小波系小波名bior調(diào)用名bior1.1bior1.3bior1.5bior2.2bior2.4bior2.6bior2.8bior3.1bior3.3bior3.5bior3.7bior3.9bior4.4bior5.5bior6.86.ReverseBior小波系小波名rbio調(diào)用名rbio1.1rbio1.3rbio1.5rbio2.2rbio2.4rbio2.6rbio2.8rbio3.1rbio3.3rbio3.5rbio3.7rbio3.9rbio4.4rbio5.5rbio6.87.Meyer小波小波名meyr8.Dmeyer小波小波名dmey9.Gaussian小波系小波名gaus調(diào)用名gaus1gaus2gaus3gaus4gaus5gaus6gaus7gaus810.Mexicanhat小波小波名mexh11.Morlet小波小波名morl12.ComplexGaussian小波系小波名cgau調(diào)用名cgau1cgau2cgau3cgau4cgau5cgau13.Shannon小波系小波名shan調(diào)用名shan1-1.5shan1-1shan1-0.5shan1-0.1shan2-314.FrequencyB小波系小波名fbsp調(diào)用名fbsp1-1-1.5fbsp1-1-1fbsp1-1-0.5fbsp2-1-1fbsp2-1-0.5fbsp2-1-0.115.ComplexMorlet小波系小波名cmor調(diào)用名cmor1-1.5cmor1-1cmor1-0.5cmor1-1cmor1-0.5cmor1-0.13.濾波器函數(shù)wfilters函數(shù)[Lo_D,Hi_D,Lo_R,Hi_R]=wfilters('wname')計(jì)算對應(yīng)小波的濾波器。ThefouroutputfiltersareLo_D,用于分解的低通濾波器Hi_D,用于分解的高通濾波器Lo_R,用于重構(gòu)的低通濾波器Hi_R,用于重構(gòu)的高通濾波器4.量化編碼wcodemat函數(shù)y=wcodemat(x,nb,opt,absol)y=wcodemat(x,nb,opt)y=wcodemat(x,nb)y=wcodemat(x)該函數(shù)是用來對矩陣X進(jìn)行量化編碼,它返回矩陣X的一個編碼矩陣,在編碼中,把矩陣X中元素絕對值最大的作為NB(NB是一個整數(shù)),絕對值最小的作為1,其他元素依其絕對值的大小在1與NB中排列.當(dāng)OPT為'row'時,做行編碼;當(dāng)OPT為'col'時,做列編碼,當(dāng)OPT為'mat'時,做全局編碼,即把整個矩陣中的元素絕對值最大的元素作為NB,最小的作為1,其他元素依其絕對值的大小在整個矩陣中排列.當(dāng)ABSOL為0時,該函數(shù)返回輸入矩陣X的一個編碼版本;為非0時,返回X的絕對值5.閾值獲取MATLAB中實(shí)現(xiàn)閾值獲取的函數(shù)有ddencmp、thselect、wbmpen和wwdcbm,下面對它們的用法進(jìn)行簡單的說明。ddencmp函數(shù)調(diào)用格式:[THR,SORH,KEEPAPP,CRIT]=ddencmp(IN1,IN2,X)函數(shù)ddencmp用于獲取信號在消噪或壓縮過程中的默認(rèn)閾值。輸入?yún)?shù)X為一維或二維信號;IN1取值為'den'或'cmp','den'表示進(jìn)行去噪,'cmp'表示進(jìn)行壓縮;IN2取值為'wv'或'wp',wv表示選擇小波,wp表示選擇小波包。輸出參數(shù)THR為函數(shù)選擇的閾值,SORH為函數(shù)選擇閾值使用方式。Sorh=s,為軟閾值;Sorh=h,為硬閾值;輸出參數(shù)KEEPAPP決定了是否對近似分量進(jìn)行閾值處理??蛇x為0或1。CRIT為使用小波包進(jìn)行分解時所選取的熵函數(shù)類型。例:自動生成信號小波處理的閾值選取方案。r=2055415866;randn('seed',r);x=randn(1,1000);%產(chǎn)生白噪聲;%求取對信號進(jìn)行小波消噪處理的默認(rèn)閾值、軟閾值,并且保存低頻系數(shù);[thr,sorh,keepapp]=ddencmp('den','wv',x);輸出:thr=3.8593sorh=skeepapp=1thselect函數(shù)調(diào)用格式如下:THR=thselect(X,TPTR);根據(jù)字符串TPTR定義的閾值選擇規(guī)那么來選擇信號X的自適應(yīng)閾值。自適應(yīng)閾值的選擇規(guī)那么包括以下四種:*TPTR='rigrsure',自適應(yīng)閾值選擇使用Stein的無偏風(fēng)險估計(jì)原理。*TPTR='heursure',使用啟發(fā)式閾值選擇。*TPTR='sqtwolog',閾值等于sqrt(2*log(length(X))).*TPTR='minimaxi',用極大極小原理選擇閾值。閾值選擇規(guī)那么基于模型y=f(t)+e,e是高斯白噪聲N(0,1)。wbmpen函數(shù)調(diào)用格式:THR=wbmpen(C,L,SIGMA,ALPHA);返回去噪的全局閾值THR。THR通過給定的一種小波系數(shù)選擇規(guī)那么計(jì)算得到,小波系數(shù)選擇規(guī)那么使用Birge-Massart的處分算法。[C,L]是進(jìn)行去噪的信號或圖像的小波分解結(jié)構(gòu);SIGMA是零均值的高斯白噪聲的標(biāo)準(zhǔn)偏差;ALPHA是用于處分的調(diào)整參數(shù),它必須是一個大于1的實(shí)數(shù),一般去ALPHA=2。wdcbm函數(shù)調(diào)用格式:〔1〕[THR,NKEEP]=wdcbm(C,L,ALPHA);〔2〕[THR,NKEEP]=wdcbm(C,L,ALPHA,M);函數(shù)wdcbm是使用Birge-Massart算法獲取一維小波變換的閾值。返回值THR是與尺度無關(guān)的閾值,NKEEP是系數(shù)的個數(shù)。[C,L]是要進(jìn)行壓縮或消噪的信號在j=length(L)-2層的分解結(jié)構(gòu);LAPHA和M必須是大于1的實(shí)數(shù);THR是關(guān)于j的向量,THR〔i)是第i層的閾值;NKEEP也是關(guān)于j的向量,NKEEP(i)是第i層的系數(shù)個數(shù)。一般壓縮時ALPHA取1.5,去噪時ALPHA取3.6.閾值去噪MATLAB中實(shí)現(xiàn)信號的閾值去噪的函數(shù)有wden、wdencmp、wthresh、wthcoef、wpthcoef以及wpdencmp。下面對它們的用法作簡單的介紹。wden函數(shù)調(diào)用格式:〔1〕[XD,CXD,LXD]=wden(X,TPTR,SORH,SCAL,N,'wname')〔2〕[XD,CXD,LXD]=wden(C,L,TPTR,SORH,SCAL,N,'wname')函數(shù)wden用于一維信號的自動消噪。X為原始信號,[C,L]為信號的小波分解,N為小波分解的層數(shù)。THR為閾值選擇規(guī)那么:*TPTR='rigrsure',自適應(yīng)閾值選擇使用Stein的無偏風(fēng)險估計(jì)原理。*TPTR='heursure',使用啟發(fā)式閾值選擇。*TPTR='sqtwolog',閾值等于sqrt(2*log(length(X))).*TPTR='minimaxi',用極大極小原理選擇閾值。SORH是軟閾值或硬閾值的選擇〔分別對應(yīng)'s'和'h'〕。SCAL指所使用的閾值是否需要重新調(diào)整,包含下面三種:*SCAL='one'不調(diào)整;*SCAL='sln'根據(jù)第一層的系數(shù)進(jìn)行噪聲層的估計(jì)來調(diào)整閾值。*SCAL='mln'根據(jù)不同的噪聲估計(jì)來調(diào)整閾值。XD為消噪后的信號,[CXD,LXD]為消噪后信號的小波分解結(jié)構(gòu)。格式〔1〕返回對信號X經(jīng)過N層分解后的小波系數(shù)進(jìn)行閾值處理后的消噪信號XD和信號XD的小波分解結(jié)構(gòu)[CXD,LXD]。格式〔2〕返回參數(shù)與格式〔1〕相同,但其結(jié)構(gòu)是由直接對信號的小波分解結(jié)構(gòu)[C,L]進(jìn)行閾值處理得到的。wdencmp函數(shù)調(diào)用格式有以下三種:(1)[XC,CXC,LXC,PERF0,PERFL2]=wdencmp('gbl',X,'wname',N,THTR,SORH,KEEPAPP);(2)[XC,CXC,LXC,PERF0,PERFL2]=wdencmp('lvd',X,'wname',N,THTR,SORH);(3)[XC,CXC,LXC,PERF0,PERFL2]=wdencmp('lvd',C,L,'wname',N,THTR,SORH);函數(shù)wdencmp用于一維或二維信號的消噪或壓縮。wname是所用的小波函數(shù)。gbl(global的縮寫)表示每一層都采用同一個閾值進(jìn)行處理。lvd表示每層采用不同的閾值進(jìn)行處理。N表示小波分解的層數(shù)。THR為閾值向量,對于格式〔2〕和〔3〕每層都要求有一個閾值,因此閾值向量THR的長度為N。SORH表示選擇軟閾值或硬閾值〔分別取值為's'和'h'〕,參數(shù)KEEPAPP取值為1時,那么低頻系數(shù)不進(jìn)行閾值量化,反之,低頻系數(shù)要進(jìn)行閾值量化。XC是要進(jìn)行消噪或壓縮的信號,[CXC,LXC]是XC的小波分解結(jié)構(gòu),PERF0和PERFL2是恢復(fù)或壓縮L^2的范數(shù)百分比。如果[C,L]是X的小波分解結(jié)構(gòu),那么PERFL2=100*(CXC向量的范數(shù)/C向量的范數(shù))^2;如果X是一維信號,小波wname是一個正交小波,那么PERFL2=100||XC||^2/||X||^2。wthresh函數(shù)調(diào)用格式:Y=wthresh(X,SORH,T)返回輸入向量或矩陣X經(jīng)過軟閾值〔如果SORH='s'〕或硬閾值〔如果SORH='h'〕處理后的信號。T是閾值。Y=wthresh(X,'s',T)返回的是Y=SIG(X)*(|X|-T)+,即把信號的絕對值與閾值進(jìn)行比擬,小于或等于閾值的點(diǎn)變?yōu)榱?,大于閾值的點(diǎn)為該點(diǎn)值與閾值的差值。Y=wthresh(X,'h',T)返回的是Y=X*1(|X|>T),即把信號的絕對值和閾值進(jìn)行比擬,小于或等于閾值的點(diǎn)變?yōu)榱?,大于閾值的點(diǎn)保持不變。一般來說,用硬閾值處理后的信號比用軟閾值處理后的信號更粗糙。wthcoef函數(shù)調(diào)用格式:〔1〕NC=wthcoef('d',C,L,N,P)〔2〕NC=wthcoef('d',C,L,N)〔3〕NC=wthcoef('a',C,L)〔4〕NC=wthcoef('t',C,L,N,T,SORH)用于一維信號小波系數(shù)的閾值處理。格式〔1〕返回小波分解結(jié)構(gòu)[C,L]經(jīng)向量N和P定義的壓縮率處理后的新的小波分解向量NC,[NC,L]構(gòu)成一個新的小波分解結(jié)構(gòu)。N包含被壓縮的細(xì)節(jié)向量,P是把較小系數(shù)置0的百分比信息的向量。N和P的長度必須相同,向量N必須滿足1<=N(i)<=length(L)-2。格式〔2〕返回小波分解結(jié)構(gòu)[C,L]經(jīng)過向量N中指定的細(xì)節(jié)系數(shù)置0后的小波分解向量NC。格式〔3〕返回小波分解結(jié)構(gòu)[C,L]經(jīng)過近似系數(shù)置0后的小波分解向量NC。格式〔4〕返回小波分解結(jié)構(gòu)[C,L]經(jīng)過將向量N作閾值處理后的小波分解向量NC。如果SORH=’s‘,那么為軟閾值;如果SORH='h'那么為硬閾值。N包含細(xì)節(jié)的尺度向量,T是N相對應(yīng)的閾值向量。N和T的長度必須相等。wpdencmp函數(shù)調(diào)用格式:[XD,TREED,PERF0,PERFL2]=wpdencmp(X,SORH,N,'wname',CRIT,PAR,KEEPAPP)[XD,TREED,PERF0,PERFL2]=wpdencmp(TREE,SORH,CRIT,PAR,KEEPAPP)函數(shù)wpdencmp用于使用小波包變換進(jìn)行信號的壓縮或去噪。格式〔1〕返回輸入信號X〔一維或二維〕的去噪或壓縮后的信號XD。輸出參數(shù)TREED是XD的最正確小波包分解樹;PERFL2和PERF0是恢復(fù)和壓縮L2的能量百分比。PERFL2=100*(X的小波包系數(shù)范數(shù)/X的小波包系數(shù))^2;如果X是一維信號,小波wname是一個正交小波,那么PERFL2=100*||XD||^2/||X||^2。SORH的取值為's'或'h',表示的是軟閾值或硬閾值。輸入?yún)?shù)N是小波包的分解層數(shù),wname是包含小波名的字符串。函數(shù)使用由字符串CRIT定義的熵和閾值參數(shù)PAR實(shí)現(xiàn)最正確分解。如果KEEPAPP=1,那么近似信號的小波系數(shù)不進(jìn)行閾值量化;否那么,進(jìn)行閾值量化。格式〔2〕與格式〔1〕的輸出參數(shù)相同,輸入選項(xiàng)也相同,只是它從信號的小波包分解樹TREE進(jìn)行去噪或壓縮。實(shí)例:loadnoisdopp;x=noisdopp;%給出全局閾值[thr,sorh,keepapp]=ddencmp('den','wv',x);%根據(jù)全局閾值對信號降噪xc=wdencmp('gbl',x,'sym4',2,thr,sorh,keepapp);[c,l]=wavedec(x,2,'sym4');[thr1,nkeep]=wdcbm(c,l,3);xc1=wdencmp('lvd',c,l,'sym4',2,thr1,'s');subplot(311);plot(x);title('原始信號')subplot(312);plot(xc);title('使用全局閾值降噪后的信號');subplot(313);plot(xc1);title('使用分層閾值降噪后的信號');loadwoman%下面進(jìn)行噪聲的產(chǎn)生init=3;rand('seed',init);Xn=X+18*(rand(size(X)));%下面進(jìn)行圖像的去噪處理[thr,sorh,keepapp]=ddencmp('den','wv',Xn);Xd=wdencmp('gbl',Xn,'sym5',2,thr,sorh,keepapp);%用sym5小波對圖像信號進(jìn)行二層的小波分解[c,s]=wavedec2(X,2,'sym5');[thr1,nkeep1]=wdcbm2(c,s,1.5);Xd1=wdencmp('lvd',c,s,'sym5',2,thr1,'s');%顯示圖像subplot(221);image(X);colormap(map);title('原始圖像X');axissquaresubplot(222);image(Xn);colormap(map);title('含噪聲的圖像');axissquaresubplot(223);image(Xd);colormap(map);title('去噪后的圖像');axissquaresubplot(224);image(Xd1);colormap(map);title('分層去噪后的圖像');axissquare二、小波變換函數(shù)單尺度一維小波變換cwt一維連續(xù)小波變換調(diào)用格式:coefs=cwt(s,scale,’wname’)【僅給出系數(shù)值】coefs=cwt(s,scale,’wname’,’plot’)【給出系數(shù)值同時生成圖像】實(shí)例:loadnoissin;figuresubplot(121)plot(noissin);subplot(122)c=cwt(noissin,1:48,'db4','plot');dwt一維離散小波變換調(diào)用格式:[cA1,cD1]=dwt(X,’wname’)【使用指定的小波基函數(shù)'wname'對信號X進(jìn)行分解】[cA1,cD1]=dwt(X,Lo_D,Hi_D)【使用指定的濾波器組Lo_D、Hi_D對信號進(jìn)行分解】實(shí)例:loadleleccum;s=leleccum(1:3920);ls=length(s);[cA,cD]=dwt(s,'db1');figuresubplot(121)plot(cA);subplot(122)plot(cD)[Lo_D,Hi_D,Lo_R,Hi_R]=wfilters('db1')[cA1,cD1]=dwt(s,Lo_D,Hi_D);figuresubplot(121)plot(cA1);subplot(122)plot(cD1)idwt一維離散小波逆變換調(diào)用格式:X=idwt(cA,cD,'wname')【由近似分量cA和細(xì)節(jié)分量cD經(jīng)小波反變換重構(gòu)原始信號X】X=idwt(cA,cD,Lo_R,Hi_R)【用指定的重構(gòu)濾波器Lo_R和Hi_R經(jīng)小波反變換重構(gòu)原始信號X】X=idwt(cA,cD,'wname',L)【指定返回信號X中心附近的L個點(diǎn)】X=idwt(cA,cD,Lo_R,Hi_R,L)【與上邊一致】upcoef一維小波系數(shù)重構(gòu)調(diào)用格式:Y=upcoef(O,X,'wname',N)Y=upcoef(O,X,'wname',N,L)Y=upcoef(O,X,Lo_R,Hi_R,N)Y=upcoef(O,X,Lo_R,Hi_R,N,L)這一函數(shù)是一維小波分解系數(shù)的直接重構(gòu)它重建的是原信號在指定層次的,高頻或者低頻分量。也就是說,這個信號不是原本的信號,而且某個層次上的逼近。N=1條件下相當(dāng)與缺省模式的idwtA1=upcoef('a',cA1,'db1',1,l_s)相當(dāng)于A1=idwt(cA1,[],'db1',l_s);D1=upcoef('d',cD1,'db1',1,l_s)相當(dāng)于D1=idwt([],cD1,'db1',l_s);而O是一個標(biāo)識符,O=‘a(chǎn)’低頻,O=‘d’高頻N代表了小波系數(shù)的級別,是幾級小波系數(shù)。L那么指定返回信號X中心附近的L個點(diǎn)例子:loadleleccum;s=leleccum(1:3920);ls=length(s);[cA,cD]=dwt(s,'db1');A1=upcoef('a',cA,'db1',1,ls);D1=upcoef('d',cD,'db1',1,ls);%A1=idwt(cA,[],'db1',ls);D1=idwt([],cD,'db1',ls);subplot(1,2,1);plot(A1);title('ApproximationA1')subplot(1,2,2);plot(D1);title('DetailD1')多尺度一維小波變換wavedec多尺度一維分解調(diào)用格式:[C,L]=wavedec(X,N,’wname’)[C,L]=wavedec(X,N,Lo_D,Hi_D)函數(shù)返回N層分解的各組分系數(shù)C〔連接在一個向量里〕,向量L里返回的是各組分的長度。分解的結(jié)構(gòu)如下例子:loadleleccum;s=leleccum(1:3920);[C,L]=wavedec(s,3,'db1');subplot(1,2,1);plot(C);title('C')subplot(1,2,2);plot(L);title('L')waverec多尺度一維重構(gòu)調(diào)用格式:X=waverec(C,L,’wname’)X=waverec(C,L,Lo_R,Hi_R)實(shí)例:loadleleccum;s=leleccum(1:3920);[C,L]=wavedec(s,3,'db1');A0=waverec(C,L,'db1');Err=abs(s-A0);figure(1)subplot(3,1,1);plot(s);title('originals');subplot(3,1,2);plot(A0);title('wavereconstructions');subplot(3,1,3);plot(Err);title('wavereconstructionerr');appcoef低頻系數(shù)提取調(diào)用格式:A=appcoef(C,L,’wname’,N)從C中抽取N層近似系數(shù)A=appcoef(C,L,’wname’)A=appcoef(C,L,Lo_R,Hi_R,N)A=appcoef(C,L,Lo_R,Hi_R)detcoef高頻系數(shù)提取調(diào)用格式:A=detcoef(C,L,N)A=detcoef(C,L)實(shí)例:loadleleccum;s=leleccum(1:3920);[C,L]=wavedec(s,3,'db1');cA3=appcoef(C,L,'db1',3);cD3=detcoef(C,L,3);cD2=detcoef(C,L,2);cD1=detcoef(C,L,1);subplot(2,2,1);plot(cA3);title('cA3')subplot(2,2,2);plot(cD3);title('cD3')subplot(2,2,3);plot(cD2);title('cD2')subplot(2,2,4);plot(cD1);title('cD1')wrcoef多尺度小波系數(shù)重構(gòu)調(diào)用格式:X=wrcoef(‘type’,C,L,’wname’,N)X=wrcoef(‘type’,C,L,Lo_R,Hi_R,N)X=wrcoef(‘type’,C,L,’wname’)X=wrcoef(‘type’,C,L,Lo_R,Hi_R)其中type=‘a(chǎn)’低頻,type=‘d’高頻作用類似于upcoef,只不過是多尺度函數(shù)。實(shí)例:loadleleccum;s=leleccum(1:3920);[C,L]=wavedec(s,3,'db1');cA3=wrcoef('a',C,L,'db1',3);cD1=wrcoef('d',C,L,'db1',1);cD2=wrcoef('d',C,L,'db1',2);cD3=wrcoef('d',C,L,'db1',3);subplot(2,2,1);plot(cA3);title('cA3')subplot(2,2,2);plot(cD3);title('cD3')subplot(2,2,3);plot(cD2);title('cD2')subplot(2,2,4);plot(cD1);title('cD1')一維靜態(tài)〔平穩(wěn)〕小波變換離散平穩(wěn)小波分析所用到的函數(shù)有swt小波分解和iswt小波重構(gòu)swt一維平穩(wěn)小波變換調(diào)用格式SWC=swt(X,N,'wname')SWC=swt(X,N,Lo_D,Hi_D)[swa,swd]=swt(X,N,'wname')[swa,swd]=swt(X,N,Lo_D,Hi_D)對于SWT變換,如果需要在第k層分解信號,那么原始信號需要能夠平分成2^k份。所以如果原始信號的長度不滿足要求,需要使用SignalExtensionGUI工具或使用wextend函數(shù)來擴(kuò)展它。函數(shù)執(zhí)行將產(chǎn)生N層近似和細(xì)節(jié)的系數(shù),兩者和信號的長度是相等的,這也是平穩(wěn)小波和普通小波不同的地方,從而使它在某些領(lǐng)域有好的效果。iswt一維平穩(wěn)小波逆變換調(diào)用格式X=iswt(SWC,'wname')X=iswt(SWA,SWD,'wname')X=iswt(SWC,Lo_R,Hi_R)X=iswt(SWA,SWD,Lo_R,Hi_R)實(shí)例loadnoisdopps=noisdopp;[swa,swd]=swt(s,1,'db1');%一層平穩(wěn)小波分解subplot(1,2,1),plot(swa);title('Approximationcfs')subplot(1,2,2),plot(swd);title('Detailcfs')res=iswt(swa,swd,'db1');%一層平穩(wěn)小波重構(gòu)%從系數(shù)中構(gòu)建近似和細(xì)節(jié)nulcfs=zeros(size(swa));A1=iswt(swa,nulcfs,'db1');D1=iswt(nulcfs,swd,'db1');subplot(4,1,1),plot(s);title('originals');subplot(4,1,2),plot(res);title('recovereds');subplot(4,1,3),plot(A1);title('ApproximationA1');subplot(4,1,4),plot(D1);title('DetailD1');單尺度二維小波變換dwt2二維離散小波變換[cA1,cH1,cV1,cD1]=dwt2(X,’wname’)[cA1,cH1,cV1,cD1]=dwt2(X,Lo_D,Hi_D)其中cA1,cH1水平;cV1垂直;cD1對角二維小波變換有四個值實(shí)例:loadwbarb;figure(1);image(X);colormap(map);colorbar;[cA1,cH1,cV1,cD1]=dwt2(X,'bior3.7');figure(2);colormap(map);subplot(2,2,1);image(wcodemat(cA1,192));title('cA1')subplot(2,2,2);image(wcodemat(cH1,192));title('cH1')subplot(2,2,3);image(wcodemat(cV1,192));title('cV1')subplot(2,2,4);image(wcodemat(cD1,192));title('cD1')idwt2二維離散小波逆變換X=idwt2(cA1,cH1,cV1,cD1,'bior3.7');upcoef2二維系數(shù)重構(gòu)調(diào)用格式:Y=upcoef2(O,X,’wname’,N,S)Y=upcoef2(O,X,Lo_R,Hi_R,N,S)Y=upcoef2(O,X,’wname’,N)Y=upcoef2(O,X,Lo_R,Hi_R,N)Y=upcoef2(O,X,’wname’)Y=upcoef2(O,X,Lo_R,Hi_R)O:‘a(chǎn)’低頻;‘h’水平;‘v’垂直;‘d’對角實(shí)例:loadwbarb;[cA1,cH1,cV1,cD1]=dwt2(X,'bior3.7');A1=upcoef2('a',cA1,'bior3.7',1);H1=upcoef2('h',cH1,'bior3.7',1);V1=upcoef2('v',cV1,'bior3.7',1);D1=upcoef2('d',cD1,'bior3.7',1);figure(2);colormap(map);subplot(2,2,1);image(wcodemat(A1,192));title('ApproximationA1')subplot(2,2,2);image(wcodemat(H1,192));title('HorizontalDetailH1')subplot(2,2,3);image(wcodemat(V1,192));title('VerticalDetailV1')subplot(2,2,4);image(wcodemat(D1,192));title('DiagonalDetailD1')多尺度二維小波變換wavedec2多尺度二維分解[C,S]=wavedec2(X,N,’wname’)[C,S]=wavedec2(X,N,Lo_D,Hi_D)c為各層分解系數(shù),s為各層分解系數(shù)長度,也就是大小.c的結(jié)構(gòu):c=[A(N)|H(N)|V(N)|D(N)|H(N-1)|V(N-1)|D(N-1)|H(N-2)|V(N-2)|D(N-2)|...|H(1)|V(1)|D(1)]可見,c是一個行向量,即:1*(size(X)),(e.g,X=256*256,thenc大小為:1*(256*256)=1*65536)A(N)代表第N層低頻系數(shù),H(N)|V(N)|D(N)代表第N層高頻系數(shù),分別是水平,垂直,對角高頻,以此類推,到H(1)|V(1)|D(1).
s的結(jié)構(gòu):儲存各層分解系數(shù)長度的,即第一行A(N)的長度,第二行是H(N)|V(N)|D(N)|的長度,第三行是H(N-1)|V(N-1)|D(N-1)的長度,倒數(shù)第二行是H(1)|V(1)|D(1)長度,最后一行是X的長度(大小)實(shí)例:loadwbarb;[C,S]=wavedec2(X,2,'bior3.7');figure(2);colormap(map);subplot(1,2,1);plot(C);subplot(1,2,2);plot(S);waverec2多尺度二維重構(gòu)調(diào)用格式:X=waverec2(C,S,’wname’)X=waverec2(C,S,Lo_R,Hi_R)實(shí)例:loadwbarb;[C,S]=wavedec2(X,2,'bior3.7');X0=waverec2(C,S,'bior3.7');Err=abs(X0-X);figure(1);colormap(map);subplot(3,1,1);image(wcodemat(X,192));title('originalX')subplot(3,1,2);image(wcodemat(X0,192));title('wavereconstructionX')subplot(3,1,3);imshow(Err,[])appcoef2低頻系數(shù)提取調(diào)用格式:A=appcoef2(C,S,’wname’,N)A=appcoef2(C,S,Lo_R,Hi_R,N)detcoef2高頻系數(shù)提取調(diào)用格式:A=detcoef2(‘type’,C,S,’wname’,N)Type:’h’水平;‘v’垂直;‘d’對角實(shí)例:loadwbarb;[C,S]=wavedec2(X,2,'bior3.7');cA2=appcoef2(C,S,'bior3.7',2);cH2=detcoef2('h',C,S,2);cV2=detcoef2('v',C,S,2);cD2=detcoef2('d',C,S,2);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);figure(1);colormap(map);subplot(2,2,1);image(wcodemat(cA1,192));title('ApproximationA1')subplot(2,2,2);image(wcodemat(cH1,192));title('HorizontalDetailH1')subplot(2,2,3);image(wcodemat(cV1,192));title('VerticalDetailV1')subplot(2,2,4);image(wcodemat(cD1,192));title('DiagonalDetailD1')figure(2);colormap(map);subplot(2,2,1);image(wcodemat(cA2,192));title('ApproximationA2')subplot(2,2,2);image(wcodemat(cH2,192));title('HorizontalDetailH2')subplot(2,2,3);image(wcodemat(cV2,192));title('VerticalDetailV2')subplot(2,2,4);image(wcodemat(cD2,192));title('DiagonalDetailD2')wrcoef2多尺度小波系數(shù)重構(gòu)調(diào)用格式:X=wrcoef2(‘type’,C,S,’wname’,N)X=wrcoef2(‘type’,C,S,Lo_R,Hi_R,N)X=wrcoef2(‘type’,C,S,’wname’)X=wrcoef2(‘type’,C,S,Lo_R,Hi_R,N)Type:‘a(chǎn)’低頻;’h’水平;‘v’垂直;‘d’對角實(shí)例:loadwbarb;[C,S]=wavedec2(X,2,'bior3.7');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);A2=wrcoef2('a',C,S,'bior3.7',2);H2=wrcoef2('h',C,S,'bior3.7',2);V2=wrcoef2('v',C,S,'bior3.7',2);D2=wrcoef2('d',C,S,'bior3.7',2);figure(1);colormap(map);subplot(2,2,1);image(wcodemat(A1,192));title('reApproximationA1')subplot(2,2,2);image(wcodemat(H1,192));title('reHorizontalDetailH1')subplot(2,2,3);image(wcodemat(V1,192));title('reVerticalDetailV1')subplot(2,2,4);image(wcodemat(D1,192));title('reDiagonalDetailD1')figure(2);colormap(map);subplot(2,2,1);image(wcodemat(A2,192));title('reApproximationA2')subplot(2,2,2);image(wcodemat(H2,192));title('reHorizontalDetailH2')subplot(2,2,3);image(wcodemat(V2,192));title('reVerticalDetailV2')subplot(2,2,4);image(wcodemat(D2,192));title('reDiagonalDetailD2')二維靜態(tài)〔平穩(wěn)〕小波變換回憶從一維離散小波變換到二維的擴(kuò)展,二維靜態(tài)小波變換采用相似的方式。對行和列分別采用高通和低通濾波器。這樣分解的結(jié)果仍然是四組圖像:近似圖像、水平細(xì)節(jié)圖像、豎直細(xì)節(jié)圖像和對角圖像,與離散小波變換不同的只是靜態(tài)小波分解得到的四幅圖像與原圖像尺寸一致,道理與一維情況相同。二維離散小波變換同樣只提供了一個函數(shù)swt2,因?yàn)樗粚Ψ纸庀禂?shù)進(jìn)行下采樣,所以單層分解和多層分解的結(jié)果是一樣的。不需要另外提供多層分解的功能。swt2二維靜態(tài)小波變換調(diào)用格式:[A,H,V,D]=swt2(X,N,'wname')[A,H,V,D]=swt2(X,N,Lo_D,Hi_D)iswt2二維靜態(tài)小波逆變換調(diào)用格式X=iswt2(SWC,'wname')X=iswt2(A,H,V,D,wname)X=iswt2(SWC,Lo_R,Hi_R)X=iswt2(A,H,V,D,Lo_R,Hi_R)實(shí)例clc;clear;closeall;loadwoman;[cA,cH,cV,cD]=swt2(X,2,'haar');%用haar小波基進(jìn)行2尺度平穩(wěn)小波分解cA1=cA(:,:,1);cH1=cH(:,:,1);cV1=cV(:,:,1);cD1=cD(:,:,1);%尺度1低、高頻系數(shù)cA2=cA(:,:,2);cH2=cH(:,:,2);cV2=cV(:,:,2);cD2=cD(:,:,2);%尺度2低、高頻系數(shù)reX=iswt2(cA,cH,cV,cD,'haar');X1=iswt2(cA1,cH1,cV1,cD1,'haar');X2=iswt2(cA2,cH2,cV2,cD2,'haar');figure;colormap(map);subplot(1,4,1),image(X);title('原始圖像');subplot(1,4,2),image(reX);title('重構(gòu)圖像');subplot(1,4,3),image(X1);title('尺度1的重構(gòu)圖像');subplot(1,4,4),image(X2);title('尺度1的重構(gòu)圖像');figure;colormap(map);subplot(1,2,1),image(uint8(cA1));title('尺度1的低頻系數(shù)圖像');subplot(1,2,2),image(uint8(cA2));title('尺度2的低頻系數(shù)圖像');figure;colormap(map);subplot(2,3,1),image(uint8(cH1));title('尺度1水平方向高頻系數(shù)');subplot(2,3,2),image(uint8(cV1));title('尺度1垂直方向高頻系數(shù)');subplot(2,3,3),image(uint8(cD1));title('尺度1斜線方向高頻系數(shù)');subplot(2,3,4),image(uint8(cH2));title('尺度2水平方向高頻系數(shù)');subplot(2,3,5),image(uint8(cV2));title('尺度2垂直方向高頻系數(shù)');subplot(2,3,6),image(uint8(cD2));title('尺度2斜線方向高頻系數(shù)');直接調(diào)用的小波函數(shù)meyer函數(shù)功能:Meyer小波函數(shù)語法格式:[PHI,PSI,T]
=
meyer(LB,UB,N)
[PHI,T]
=
meyer(LB,UB,N,'phi')
[PSI,T]
=
meyer(LB,UB,N,'psi')
cgauwavf函數(shù)功能:Complex
Gaussian小波函數(shù)語法格式:
[PSI,X]
=
cgauwavf(LB,UB,N,P)
mexihat函數(shù)功能:墨西哥帽小波函數(shù)語法格式:
[PSI,X]
=
mexihat(LB,UB,N)morlet函數(shù)功能:Morlet小波函數(shù)語法格式:
[PSI,X]
=
morlet(LB,UB,N)symwavf函數(shù)功能:Symlets小波濾波器函數(shù)語法格式:F
=
symwavf(W)
三、圖像接口調(diào)用使用圖形接口做一維連續(xù)小波分析1.開啟一維連續(xù)小波工具,只需輸入如下命令wavemenu出現(xiàn)如下小波工具箱主菜單選擇ContinuousWavelet1-D菜單項(xiàng),出現(xiàn)如下一維信號分析連續(xù)小波分析工具2.加載信號選擇菜單File->LoadSignal,在LoadSignal對話框里選擇noissin.mat文件,它在matlab安裝目錄的toolbox/wavelet/wavedemo文件夾下,點(diǎn)擊OK加載信號。一維連續(xù)小波工具開始加載信號,加載后默認(rèn)采樣頻率為1s。3.執(zhí)行連續(xù)小波變換下面來測試使用db4小波對尺度1到48做小波分析,設(shè)置如下4.點(diǎn)擊Analyze按鈕在短暫的計(jì)算后,工具將繪制小波系數(shù),并在Coefficientsline坐標(biāo)系中繪制尺度為24的小波系數(shù),在localmaxima坐標(biāo)系中繪制各尺度的小波系數(shù)最大值。5.查看小波CoefficientsLine在小波系數(shù)圖中右鍵點(diǎn)擊可以選擇展示其他尺度的小波系數(shù),選擇后點(diǎn)擊NewCoefficientsLine按鈕,CoefficientsLine會相應(yīng)更新。6.查看MaximaLine點(diǎn)擊RefreshMaximaLine按鈕,可以顯示從尺度1到所選尺度的小波系數(shù)的最大值。注意當(dāng)在系數(shù)圖中按下鼠標(biāo)右鍵并移動時,會在最下面的Info框中顯示當(dāng)前鼠標(biāo)位于的X位置和尺度。7.在尺度和偽頻率之間切換在右邊選擇Frequencies,當(dāng)再在系數(shù)圖中選擇時,在Info中顯示的將是Hz。而關(guān)于尺度和頻率的轉(zhuǎn)換關(guān)系,可以看HowtoConnectScaletoFrequency?8.選擇要顯示的坐標(biāo)系9.放大細(xì)節(jié)在系數(shù)框中按鼠標(biāo)左鍵可以選擇放大的范圍。10.選擇好放大范圍后點(diǎn)擊最下面的按鈕可以實(shí)現(xiàn)指定的放大11.顯示普通系數(shù)或系數(shù)絕對值兩種顯示方式的區(qū)別在于,普通模式下,顏色映射是在系數(shù)的最大最小之間;而絕對模式,顏色映射是在0和最大的系數(shù)絕對值之間。圖形接口的導(dǎo)入導(dǎo)出信息導(dǎo)入信號到一維連續(xù)小波工具首先將要處理的信號保存到mat文件中,要求信號是一維的向量。然后使用工具的File->LoadSignal菜單功能,選擇此信號文件即可導(dǎo)入信號。文件中第一個一維變量被認(rèn)為是信號,變量在文件中順序是按字母排序的。保存小波系數(shù)小波分析完成后,點(diǎn)擊File->Save->Coefficients,可以將分析結(jié)果保存到mat文件。保存后,可以使用load函數(shù)加載數(shù)據(jù),會看到保存的變量有小波系數(shù)coeff、尺度scales、小波的名字wname。使用圖形接口做一維離散小波分析1.開啟一維小波分析工具Wavemenu->Wavelet1-D2.加載信號3.執(zhí)行一層小波分解使用db1小波執(zhí)行一層分解4.放大有關(guān)細(xì)節(jié)5.執(zhí)行多層小波分解使用db1小波執(zhí)行3層分解。選擇不同的顯示方式:在Displaymode下拉菜單下可以選擇不同的顯示方式,默認(rèn)的顯示方式為FullDecompositionMode,其他的顯示方式及其意義如下SeparateMode:在不同的列中顯示細(xì)節(jié)和近似;SuperimposeMode:在一張圖上以不同的顏色顯示細(xì)節(jié)、近似;TreeMode:顯示分解樹、原始信號和選擇的成分,在分解樹上選擇你想顯示的成分;ShowandScrollMode:顯示3個窗口,第一個顯示原始信號和選擇的近似信號,第二個顯示選擇的細(xì)節(jié),第三個顯示小波系數(shù);ShowandScrollMode〔StemCfs〕:和ShowandScrollMode很接近,除了第三個窗口中以桿狀圖替代顏色條顯示小波系數(shù)。對于每個分析任務(wù),可以改變默認(rèn)的顯示方式,只要在View->DefaultDisplayMode子菜單下選擇理想的方式即可;不同的顯示方式會有額外的顯示選項(xiàng),在MoreDisplayOptions中做選擇,這些選項(xiàng)可以控制不同成分的顯示、選擇是否顯示原始信號與細(xì)節(jié)、近似比照。6.從信號中移除噪聲圖形接口提供了以預(yù)定義的閾值策略除噪的選項(xiàng),這使得從信號中除噪非常容易,只需點(diǎn)擊De-noise按鈕就可以彈出除噪工具。點(diǎn)擊Close可以關(guān)閉除噪窗口,由于不能同時翻開除噪和壓縮窗口,所以需要關(guān)閉除噪窗口再進(jìn)行信號壓縮。關(guān)閉時會提示UpdateSynthesizedSignal提示對話框,點(diǎn)擊No,如果點(diǎn)擊Yes,合成的信號會加載到主窗口。7.改善分析圖像工具可以在任何時候輕易的改善分析,只需要改變分析的方法就可以了,如使用db3做5層小波分析。8.壓縮信號圖形接口提供了自動化或人工閾值的做壓縮的功能。默認(rèn)使用的是全閾值方法,當(dāng)然也可以使用人工閾值的方法,選擇ByLevelthresholding選項(xiàng)即可,下面的滑動條提供了各級閾值獨(dú)立調(diào)整的功能,相應(yīng)的調(diào)整可以在左邊的窗口中看到,在圖形窗口中也可以直接拖動來改變閾值。完成選擇后,點(diǎn)擊壓縮按鈕可以完成壓縮。從壓縮的結(jié)果可以看到,壓縮過程去除了大多數(shù)噪聲,但保存了信號99.74%的能量。自動化閾值是非常有效的,它使除3.2%的小波系數(shù)都?xì)w零化了。9.顯示殘差點(diǎn)擊Residuals按鈕可以查看壓縮的殘差。顯示的統(tǒng)計(jì)數(shù)據(jù)包括測量的趨勢〔平均值、眾數(shù)、中值〕和散布情況〔極差、標(biāo)準(zhǔn)差〕。另外,工具還提供了概率分布直方圖和累計(jì)直方圖以及時間序列圖,如自相關(guān)函數(shù)、頻譜。這些都是和去噪工具是一樣的。10.顯示統(tǒng)計(jì)分布可以顯示一系列有關(guān)信號及其組分的統(tǒng)計(jì)數(shù)據(jù)。點(diǎn)擊Statistics按鈕可以查看統(tǒng)計(jì)數(shù)據(jù)信息,點(diǎn)擊Histograms可以查看直方圖。從圖形接口中導(dǎo)入導(dǎo)出信息保存信息l保存合成的信號如加載如下信號File>ExampleAnalysis>BasicSignals>withdb3atlevel5→Sumofsines,做除噪或壓縮處理后,保存合成信號File>Save>SynthesizedSignal,保存后加載文件,會得到如下變量:如果使用除全閾值外的方法時,得到的變量結(jié)構(gòu)如下Synthsig是合成的信號,除噪或壓縮的小波方法保存在wname中,相互依賴的各級閾值保存在thrParams中,小波分解的等級數(shù)和cell的長度相等,thrParams{i},i從1到5分別保存了閾值間距上下限的值和閾值〔間距閾值是允許的,在自適應(yīng)閾值方法中會用到,參見One-DimensionalVarianceAdaptiveThresholdingofWaveletCoefficients〕如果使用的全閾值方法,保存的數(shù)據(jù)結(jié)構(gòu)如下alTHR保存的是全閾值的值。l保存離散小波變換的系數(shù)一個例子的文件內(nèi)容如下Coefs包含了離散小波變換的系數(shù),longs包含了各組分的長度,thrParams為空,因?yàn)楹铣尚盘柌淮嬖冢瑆name是小波的名字。l保存分解結(jié)果〔即保存小波分析的全體數(shù)據(jù)〕小波工具將保存為.wal文件,加載方式為loadwdecex1d.wa1–mat文件內(nèi)容為加載信息加載的文件只要和保存的相應(yīng)文件中的變量一樣即可。使用圖形接口分析復(fù)信號與實(shí)信號不同的是,選擇ComplexContinuousWavelet1-D,得到的結(jié)果如下具體操作過程與實(shí)信號的相似,如下使用圖形接口做一維除噪分析1.開啟一維平穩(wěn)小波除噪工具輸入wavemenu,選擇SWTDenoising1-D,出現(xiàn)如下GUI2.加載信號LoadSignal3.執(zhí)行平穩(wěn)小波分解使用db1小波執(zhí)行5層小波分解,得到的是非抽取系數(shù)〔nondecimatedcoefficients〕,它們是使用相同的離散小波變換來得到的,只是省略了抽取的步驟。得到的結(jié)果如下4.使用平穩(wěn)小波變換除噪可以使用GUI默認(rèn)的參數(shù)做除噪處理。右邊的滑動條可以控制各級系數(shù)的閾值大小,也可以直接在系數(shù)圖中直接拖動來調(diào)整閾值的大小,注意近似系數(shù)中沒有閾值。點(diǎn)擊denoise進(jìn)行除噪處理得到的效果是非常好的,但似乎在信號不連續(xù)的地方出現(xiàn)了過平滑,這個可以從殘差圖中看出來,在800的位置出現(xiàn)了突降點(diǎn)。選擇hard閾值模式代替soft模式,再進(jìn)行除噪,結(jié)果如下可以看到這次效果非常好,而且殘差圖也看起來像白噪聲序列。為了驗(yàn)證這一點(diǎn),可以點(diǎn)擊Residuals按鈕查看殘差圖及相關(guān)統(tǒng)計(jì)數(shù)據(jù)來詳細(xì)說明。四、小波變換在圖像處理中的應(yīng)用4.1小波分析用于圖像壓縮4.1.1基于小波變換的圖像局部壓縮基于離散余弦變換的圖像壓縮算法,其根本思想是在頻域?qū)π盘栠M(jìn)行分解,驅(qū)除信號點(diǎn)之間的相關(guān)性,并找出重要系數(shù),濾掉次要系數(shù),以到達(dá)壓縮的效果,但該方法在處理過程中并不能提供時域的信息,在我們比擬關(guān)心時域特性的時候顯得無能為力。但是這種應(yīng)用的需求是很廣泛的,比方遙感測控圖像,要求在整幅圖像有很高壓縮比的同時,對熱點(diǎn)局部的圖像要有較高的分辨率,例如醫(yī)療圖像,需要對某個局部的細(xì)節(jié)局部有很高的分辨率,單純的頻域分析的方法顯然不能到達(dá)這個要求,雖然可以通過對圖像進(jìn)行分快分解,然后對每塊作用不同的閾值或掩碼來到達(dá)這個要求,但分塊大小相對固定,有失靈活。在這個方面,小波分析的就優(yōu)越的多,由于小波分析固有的時頻特性,我們可以在時頻兩個方向?qū)ο禂?shù)進(jìn)行處理,這樣就可以對我們感興趣的局部提供不同的壓縮精度。下面我們利用小波變化的時頻局部化特性,舉一個局部壓縮的例子,大家可以通過這個例子看出小波變換在應(yīng)用這類問題上的優(yōu)越性。我們把圖像中部的細(xì)節(jié)系數(shù)都置零,從壓縮圖像中可以很明顯地看出只有中間局部變得模糊〔比方在原圖中很清晰的圍巾的條紋不能分辨〕,而其他局部的細(xì)節(jié)信息仍然可以分辨的很清楚。實(shí)例:loadwbarb%使用sym4小波對信號進(jìn)行一層小波分解[ca1,ch1,cv1,cd1]=dwt2(X,'sym4');codca1=wcodemat(ca1,192);codch1=wcodemat(ch1,192);codcv1=wcodemat(cv1,192);codcd1=wcodemat(cd1,192);%將四個系數(shù)圖像組合為一個圖像codx=[codca1,codch1,codcv1,codcd1];%復(fù)制原圖像的小波系數(shù)rca1=ca1;rch1=ch1;rcv1=cv1;rcd1=cd1;%將三個細(xì)節(jié)系數(shù)的中部置零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);%將處理后的系數(shù)圖像組合為一個圖像codrx=[codrca1,codrch1,codrcv1,codrcd1];%重建處理后的系數(shù)rx=idwt2(rca1,rch1,rcv1,rcd1,'sym4');subplot(221);image(wcodemat(X,192)),colormap(map);title('原始圖像');subplot(222);image(codx),colormap(map);title('一層分解后各層系數(shù)圖像');subplot(223);image(wcodemat(rx,192)),colormap(map);title('壓縮圖像');subplot(224);image(codrx),colormap(map);title('處理后各層系數(shù)圖像');%求壓縮信號的能量成分per=norm(rx)/norm(X)%求壓縮信號與原信號的標(biāo)準(zhǔn)差err=norm(rx-X)運(yùn)行結(jié)果per=1.0000err=586.49794.1.2小波變換用于圖像壓縮的一般方法二維小波分析用于圖像壓縮是小波分析應(yīng)用的一個重要方面。它的特點(diǎn)是壓縮比高,壓縮速度快,壓縮后能保持圖像的特征根本不變,且在傳遞過程中可以抗干擾。利用二維小波分析進(jìn)行圖像壓縮基于小波分析的圖像壓縮方法很多,比擬成功的有小波包、小波變換零樹壓縮、小波變換矢量量化壓縮等。利用二維小波變換進(jìn)行圖像壓縮時,小波變換將圖像從空間域變換到時間域,它的作用與以前在圖像壓縮中所用到的離散余弦〔DCT〕、傅立葉變換〔FFT〕等的作用類似。但是要很好的進(jìn)行圖像的壓縮,需要綜合的利用多種其他技術(shù),特別是數(shù)據(jù)的編碼與解碼算法等,所以利用小波分析進(jìn)行圖像壓縮通常需要利用小波分析和許多其他相關(guān)技術(shù)共同完成。小波高頻濾波壓縮%%%%%%%%裝入圖像、變換loadwbarb;%對圖像用bior3.7小波進(jìn)行2層小波分解[c,s]=wavedec2(X,2,'bior3.7');%提取小波分解結(jié)構(gòu)中第一層低頻系數(shù)和高頻系數(shù)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);%分別對各頻率成分進(jìn)行重構(gòu)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];%%%%%%%%%下面進(jìn)行圖像壓縮處理%保存小波分解第一層低頻信息,進(jìn)行圖像的壓縮%第一層的低頻信息即為ca1,顯示第一層的低頻信息%首先對第一層信息進(jìn)行量化編碼ca1=appcoef2(c,s,'bior3.7',1);ca1=wcodemat(ca1,440,'mat',0);%改變圖像的高度ca1=0.5*ca1;%保存小波分解第二層低頻信息,進(jìn)行圖像的壓縮,此時壓縮比更大%第二層的低頻信息即為ca2,顯示第二層的低頻信息ca2=appcoef2(c,s,'bior3.7',2);%首先對第二層信息進(jìn)行量化編碼ca2=wcodemat(ca2,440,'mat',0);%改變圖像的高度ca2=0.25*ca2;%%%%%%%顯示圖像、分解后各頻率成分的信息subplot(221);image(X);colormap(map);title('原始圖像');axissquaresubplot(222);image(c1);axissquare;title('分解后低頻和高頻信息');subplot(223);image(ca1);colormap(map);axissquare;title('第一次壓縮');subplot(224);image(ca2);colormap(map);axissquare;title('第二次壓縮');disp('壓縮前圖像X的大小:');whos('X')disp('第一次壓縮圖像的大小為:');whos('ca1')disp('第二次壓縮圖像的大小為:');whos('ca2')輸出結(jié)果如下所示:壓縮前圖像X的大?。篘ameSizeBytesClassX256x256524288doublearrayGrandtotalis65536elementsusing524288bytes第一次壓縮圖像的大小為:NameSizeBytesClassca1135x135145800doublearrayGrandtotalis18225elementsusing145800bytes第二次壓縮圖像的大小為:NameSizeBytesClassca275x7545000doublearrayGrandtotalis5625elementsusing45000bytes可以看出,第一次壓縮提取的是原始圖像中小波分解第一層的低頻信息,此時壓縮效果較好,壓縮比擬小〔約為1/3〕:第二次壓縮是提取第一層分解低頻局部的低頻局部〔即小波分解第二層的低頻局部〕,其壓縮比擬大〔約為1/12〕,壓縮效果在視覺上也根本過的去。這是一種最簡單的壓縮方法,只保存原始圖像中低頻信息,不經(jīng)過其他處理即可獲得較好的壓縮效果。小波高頻閾值壓縮%裝入一個二維信號loadtire;%下面進(jìn)行圖像壓縮[c,s]=wavedec2(X,2,'db3');%對圖像用db3小波進(jìn)行2層小波分解,[thr,sorh,keepapp]=ddencmp('cmp','wv',X);%使用ddencmp函數(shù)來求取閾值[Xcomp,cxc,lxc,perf0,perfl2]=wdencmp('gbl',c,s,'db3',2,thr,sorh,keepapp);%輸入?yún)?shù)中選擇了全局閾值選項(xiàng)‘gbl’,用來對所有高頻系數(shù)進(jìn)行相同的閾值量化處理%將壓縮后的圖像與原始圖像相比擬,并顯示出來subplot(121);image(X);colormap(map);title('原始圖像');axissquaresubplot(122);image(Xcomp);colormap(map);title('壓縮圖像');axissquaredisp('小波分解系數(shù)中置0的系數(shù)個數(shù)百分比:');perf0disp('壓縮后圖像剩余能量百分比:');perfl2輸出結(jié)果如下所示:小波分解系數(shù)中置0的系數(shù)個數(shù)百分比:perf0=49.1935壓縮后圖像剩余能量百分比:perfl2=99.992二維信號壓縮中的閾值確實(shí)定與作用命令由于閾值處理只關(guān)心系數(shù)的絕對值,并不關(guān)心系數(shù)的位置,所以二維小波變換系數(shù)的閾值化方法同一維情況大同小異,為了方便用戶使用小波工具箱對某些閾值化方法提供了專門的二維處理命令閾值化壓縮方法%裝入一個二維信號loadtire;%下面進(jìn)行圖像壓縮[c,s]=wavedec2(X,2,'db3');%對圖像用db3小波進(jìn)行2層小波分解,[thr,sorh,keepapp]=ddencmp('cmp','wv',X);%使用ddencmp函數(shù)來求取閾值[Xcomp,cxc,lxc,perf0,perfl2]=wdencmp('gbl',c,s,'db3',2,thr,sorh,keepapp);%將壓縮后的圖像與原始圖像相比擬,并顯示出來subplot(121);image(X);colormap(map);title('原始圖像');axissquaresubplot(122);image(Xcomp);colormap(map);title('壓縮圖像');axissquaredisp('小波分解系數(shù)中置0的系數(shù)個數(shù)百分比:');perf0disp('壓縮后圖像剩余能量百分比:');perfl2顯示結(jié)果如下圖可見分層閾值化壓縮方法同全局閾值化方法相比,在能量損失不是很大的情況下可以獲得最高的壓縮化,這主要是因?yàn)閷訑?shù)和方向相關(guān)的閾值化方法能利用更精細(xì)的細(xì)節(jié)信息進(jìn)行閾值化處理。4.1.3基于小波包變換的圖像壓縮小波分析之所以在信號處理中有著強(qiáng)大的功能,是基于其別離信息的思想,別離到各個小波域的信息除了與其他小波域的關(guān)聯(lián),使得處理的時候更為靈活。全局閾值化方法作用的信息粒度太大,不夠精細(xì),所以很難同時獲得高的壓縮比和能量保存成分,在作用的分層閾值以后,性能明顯提高,因?yàn)榉謱娱撝蹈鼙磉_(dá)信號固有的時頻局部特性。但是小波分解仍然不夠靈活,分解出來的小波樹只有一種模式,不能完全地表達(dá)時頻局部化信息。而壓縮的核心思想既是盡可能去處各小波域系數(shù)之間的信息關(guān)聯(lián),最大限度表達(dá)時頻局部化的信息,因此,實(shí)際的壓縮算法多采用小波包算法,而小波樹確實(shí)定那么是根據(jù)不同的信息論準(zhǔn)那么,以到達(dá)分解系數(shù)表達(dá)的信息密度最高。下面我通過一個例子來說明小波包分析在圖像壓縮中的應(yīng)用,并給出性能參數(shù)以便于同基于小波分析的壓縮進(jìn)行比擬。小波包優(yōu)化%讀入信號loadjulia%求顏色索引表長度nbc=size(map,1);%得到信號的閾值,保存層數(shù),小波樹優(yōu)化標(biāo)準(zhǔn)[thr,sorh,keepapp,crit]=ddencmp('cmp','wp',X);%通過以上得到的參數(shù)對信號進(jìn)行壓縮[xd,treed,perf0,perfl2]=wpdencmp(X,sorh,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),'%','零系數(shù)成分',num2str(perf0),'%']);plot(treed);得到的壓縮結(jié)果如下圖圖6基于小波包分析的圖像壓縮壓縮過程中使用的最優(yōu)小波數(shù)如下圖圖7最優(yōu)小波樹ddencmp、wpdencmp這兩個命令是Matlab小波工具箱提供的自動獲取閾值和自動使用小波包壓縮的命令,后者將分解閾值化和重建綜合起來。在將小波包用于信號壓縮的過程中,ddencmp命令返回的最優(yōu)小波樹標(biāo)準(zhǔn)都是閾值化標(biāo)準(zhǔn)。根據(jù)這個標(biāo)準(zhǔn)確定的最優(yōu)小波樹可以使得壓縮過程的零系數(shù)成分最高,并且自動降低計(jì)算量。圖像壓縮是應(yīng)用非常廣泛的一類問題,所以其機(jī)器實(shí)現(xiàn)效率是至關(guān)重要的,在實(shí)際的應(yīng)用中,如JPEG2000,一般不采用通常的mallat算法做小波分解,而是應(yīng)用特定的雙正交小波,利用其濾波器分布規(guī)那么的特性,用移位操作來實(shí)現(xiàn)濾波操作。4.2小波分析用于圖像去噪噪聲可以理解為阻礙人的視覺器官或系統(tǒng)傳感器對所接收圖像源進(jìn)行理解或分析的各種因素。一般噪聲是不可預(yù)測的隨機(jī)信號,它只能用概率統(tǒng)計(jì)的方法去認(rèn)識。噪聲對圖像處理十分重要,它影響圖像處理的輸入、采集、處理的各個環(huán)節(jié)以及輸出結(jié)果的全過程。特別是圖像的輸入、采集的噪聲是個十分關(guān)鍵的問題,假設(shè)輸入伴有較大噪聲,必然影響處理全過程及輸出結(jié)果。因此一個良好的圖像處理系統(tǒng),不管是模擬處理還是計(jì)算機(jī)處理無不把減少最前一級的噪聲作為主攻目標(biāo)。去噪已成為圖像處理中極其重要的步驟。對二維圖像信號的去噪方法同樣適用于一維信號,尤其是對于幾何圖像更適合。二維模型可以表述為s(i,j)=f(i,j)+δ·e(i,j)i,j=0,1,…,m-1其中,e是標(biāo)準(zhǔn)偏差不變的高斯白噪聲。二維信號用二維小波分析的去噪步驟有3步:〔1〕二維信號的小波分解。選擇一個小波和小波分解的層次N,然后計(jì)算信號s到第N層的分解。〔2〕對高頻系數(shù)進(jìn)行閾值量化。對于從1到N的每一層,選擇一個閾值,并對這一層的高頻系數(shù)進(jìn)行軟閾值量化處理。〔3〕二維小波的重構(gòu)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度股票委托交易與金融科技企業(yè)合作合同
- 二零二五年度診所與高校醫(yī)院合作教學(xué)合同
- 應(yīng)急培訓(xùn)說明會
- 店長管理基礎(chǔ)知識培訓(xùn)
- 學(xué)校電工工作計(jì)劃
- 主管工作匯報(bào)模板
- 2025最專業(yè)勞動合同范本
- 2025公證授權(quán)合同范本
- 2025期房轉(zhuǎn)讓合同范文
- 2025農(nóng)村磚廠租賃合同
- 廣東省惠州市2024-2025學(xué)年高一上學(xué)期期末考試英語試題(含答案)
- 醫(yī)院骨科2025年帶教計(jì)劃(2篇)
- 環(huán)境保護(hù)應(yīng)急管理制度執(zhí)行細(xì)則
- 2024-2030年中國通航飛行服務(wù)站(FSS)行業(yè)發(fā)展模式規(guī)劃分析報(bào)告
- 機(jī)械制造企業(yè)風(fēng)險分級管控手冊
- 地系梁工程施工方案
- 藏文基礎(chǔ)-教你輕輕松松學(xué)藏語(西藏大學(xué))知到智慧樹章節(jié)答案
- 2024電子商務(wù)平臺用戶隱私保護(hù)協(xié)議3篇
- 安徽省蕪湖市2023-2024學(xué)年高一上學(xué)期期末考試 英語 含答案
- 醫(yī)學(xué)教程 常見體表腫瘤與腫塊課件
- 內(nèi)分泌系統(tǒng)異常與虛勞病關(guān)系
評論
0/150
提交評論