【正文】
可以分作三個方向,分別是水平方向、豎直方向和對角方向,這樣就可以把在所有方向的噪聲分離出來,通過作用閾值抑制其成分。去噪后的圖像39。colormap(map)。%畫出重構后圖像的波形subplot(223)。coif339。)。,c,s,n,p,39。nc=wthcoef2(39。s39。v39。)。,c,s,n,p,39。%對三個方向高頻系數進行閾值處理nc=wthcoef2(39。)。axis square%下面進行圖像的去噪處理%用小波畫數coif3對x進行2層小波分解[c,s]=wavedec2(x,2,39。含噪聲圖像39。colormap(map)。%畫出含噪聲圖像subplot(222)。seed39。axis square%產生含噪聲圖像init=2055615866。原始圖像39。colormap(map)。%畫出原始圖像subplot(221)。因此這幅圖像適合采用小波分解系數閾值量化方法進行去噪處理。輸出結果如圖:圖8 去噪二從上面的輸出結果可以看出,第一次去噪已經濾去了大部分的高頻噪聲,但從去噪圖像與原始圖像相比可以看書,第一次去噪后的圖像中還是含有不少的高頻噪聲;第二次去噪是在第一次去噪的基礎上,再次濾去其中的高頻噪聲。)。title(39。%畫出去噪后的圖像subplot(224)。sym439。a39。axis square。第一次去噪圖像39。image(a1)。)。,c,s,39。%提取小波分解中第一層的低頻圖像,即實現了低通濾波去噪a1=wrcoef2(39。sym439。axis square。含噪聲圖像39。colormap(map)。%畫出含噪圖像subplot(222)。seed39。axis square%產生含噪圖像init=2055615866。原始圖像39。colormap(map)。%畫出原始圖像subplot(221)。具體去噪過程可按照如下程序進行。圖7 去噪一再給定一個有較大白噪聲的圖像。)。title(39。%顯示去噪后的圖像subplot(223)。sym539。gbl39。,Xnoise)。,39。%下面進行圖像的去噪處理%使用ddencmp函數來計算去噪的默認閾值和熵標準%使用wdencmp函數來實現圖像的壓縮[thr,sorh,keepapp]=ddencmp(39。sym539。)。title(39。)axis squaresubplot(2,2,2)。title(39。subplot(2,2,1)。Xnoise=X+18*(rand(size(X)))。seed39。load tire%下面進行早聲的產生init=3718025452。在這3個步驟中,重點是如何選取閾值和閾值的量化下面給出一個二維信號(),并利用小波分析對信號進行去噪處理。(3)二維小波的重構。(2)對高頻系數進行閾值量化。二維信號用二維小波分析的去噪步驟有3步:(1)二維信號的小波分解。二維模型可以表述為s(i,j)=f( i,j)+δ圖像壓縮是應用非常廣泛的一類問題,所以其機器實現效率是至關重要的,在實際的應用中,如JPEG2000,一般不采用通常的mallat算法做小波分解,而是應用特定的雙正交小波,利用其濾波器分布規(guī)則的特性,用移位操作來實現濾波操作。根據這個標準確定的最優(yōu)小波樹可以使得壓縮過程的零系數成分最高,并且自動降低計算量。得到的壓縮結果如圖所示圖5 基于小波包分析的圖像壓縮壓縮過程中使用的最優(yōu)小波樹如圖6所示圖6 最優(yōu)小波樹這兩個命令是Matlab小波工具箱提供的自動獲取閾值和自動使用小波包壓縮的命令,后者將分解閾值化和重建綜合起來。])。,num2str(perf0),39。,39。,num2str(perfl2),39。xlabel([39。全局閾值化壓縮圖像39。image(wcodemat(xd,nbc))。)。title(39。subplot(121)。,crit,thr*2,keepapp)。,X)%通過以上得到的參數對信號進行壓縮[xd,treed,perf0,perfl2]=wpdencmp(X,sorh,4,39。,39。%得到信號的閾值,保留層數,小波樹優(yōu)化標準[thr,sorh,keepapp,crit]=ddencmp(39。下面我通過一個例子來說明小波包分析在圖像壓縮中的應用,并給出性能參數以便于同基于小波分析的壓縮進行比較。但是小波分解仍然不夠靈活,分解出來的小波樹只有一種模式,不能完全地體現時頻局部化信息。 基于小波包變換的圖像壓縮小波分析之所以在信號處理中有著強大的功能,是基于其分離信息的思想,分離到各個小波域的信息除了與其他小波域的關聯(lián),使得處理的時候更為靈活。perfl2輸出結果如下所示:小波分解系數中置0的系數個數百分比:perf0 =壓縮后圖像剩余能量百分比:perfl2 =圖像對比如圖所示:圖4 利用二維小波分析對圖像進行壓縮利用二維小波變換進行圖像壓縮時,小波變換將圖像從空間域變換到時間域,它的作用與以前在圖像壓縮中所用到的離散余弦(DCT)、傅立葉變換(FFT)等的作用類似。壓縮后圖像剩余能量百分比:39。)。axis squaredisp(39。壓縮圖像39。image(Xp)。,2,thr,sorh,keepapp)。,c,s,39。%輸入參數中選擇了全局閾值選項‘gbl’,用來對所有高頻系數進行相同的閾值量化處理[Xp,cxc,lxc,perf0,perfl2]=wdencmp(39。wv39。cmp39。)。axis square%下面進行圖像壓縮%對圖像用db3小波進行2層小波分解[c,s]=wavedec2(X,2,39。原始圖像39。image(X)。%裝入一個二維信號load tire。從理論上說,我們可以獲得任意壓縮比的壓縮圖像。這是一種最簡單的壓縮方法,只保留原始圖像中低頻信息,不經過其他處理即可獲得較好的壓縮效果。)輸出結果如下所示:壓縮前圖像X的大小: Name Size Bytes Class X 256x256 524288 double arrayGrand total is 65536 elements using 524288 bytes第一次壓縮圖像的大小為: Name 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圖像對比如圖所示。whos(39。第二次壓縮圖像的大小為:39。)。axis squaretitle(39。image(ca2)。%改變圖像的高度ca2=*ca2。mat39。,2)。)%保留小波分解第二層低頻信息,進行圖像的壓縮,此時壓縮比更大%第二層的低頻信息即為ca2,顯示第二層的低頻信息ca2=appcoef2(c,s,39。whos(39。第一次壓縮圖像的大小為:39。)。axis squaretitle(39。image(ca1)。%改變圖像的高度ca1=*ca1。mat39。,1)。%下面進行圖像壓縮處理%保留小波分解第一層低頻信息,進行圖像的壓縮%第一層的低頻信息即為ca1,顯示第一層的低頻信息%首先對第一層信息進行量化編碼ca1=appcoef2(c,s,39。分解后低頻和高頻信息39。image(c1)。v1,d1]。,1)。,c,s,39。d1=wrcoef2(39。39。v39。,1)。,c,s,39。h1=wrcoef2(39。39。a39。,c,s,1)。cd1=detcoef2(39。v39。,c,s,1)。ch1=detcoef2(39。39。)。)%[c,s]=wavedec2(X,2,39。whos(39。壓縮前圖像X的大小:39。)。colormap(map)title(39。subplot(221)。圖像壓縮可按如下程序進行處理。高分辨率(即高頻)子圖像上大部分點的數值都接近于0,越是高頻這種現象越明顯。下面給出一個圖像信號(即一個二維信號,),利用二維小波分析對圖像進行壓縮。它的特點是壓縮比高,壓縮速度快,壓縮后能保持圖像的特征基本不變,且在傳遞過程中可以抗干擾。而且,作用的閾值可以是方向相關的,即在三個不同方向的細節(jié)系數上作用不同的閾值。 在本例中,我們把圖像中部的細節(jié)系數都置零,從壓縮圖像中可以很明顯地看出只有中間部分變得模糊(比如在原圖中很清晰的圍巾的條紋不能分辨),而其他部分的細節(jié)信息仍然可以分辨的很清楚。)。title(39。subplot(224)。壓縮圖像39。image(wcodemat(rx,192)),colormap(map)。)。title(39。subplot(222)。原始圖像39。image(wcodemat(X,192)),colormap(map)。)。%將處理后的系數圖像組合為一個圖像codrx=[codrca1,codrch1,codrcv1,codrcd1]%重建處理后的系數rx=idwt2(rca1,rch1,rcv1,rcd1,39。codrcv1=wcodemat(rcv1,192)。codrca1=wcodemat