基于小波包的圖像壓縮及matlab實現_第1頁
基于小波包的圖像壓縮及matlab實現_第2頁
基于小波包的圖像壓縮及matlab實現_第3頁
基于小波包的圖像壓縮及matlab實現_第4頁
基于小波包的圖像壓縮及matlab實現_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于小波包的圖像壓縮及matlab實現摘要:小波包分析理論作為新的時頻分析工具,在信號分析和處理中得到了很好的應用,它在信號處理、模式識別、圖像分析、數據壓縮、語音識別與合成等等許多方面都取得了很有意義的研究成果。平面圖像可以看成是二維信號,因此,小波包分析很自然地應用到了圖像處理領域,如在圖像的壓縮編碼、圖像消噪、圖像增強以及圖像融合等方面都很好的應用。本文將對小波包分析在圖像處理中的應用作以簡單介紹。關鍵詞:小波包 圖像處理 消噪1.小波包基本理論1.1 小波包用于圖像消噪 圖像在采集、傳輸等過程中,經常受到一些外部環(huán)境的影響,從而產生噪聲使得圖像發(fā)生降質,圖像消噪的目的就是從所得到的降質

2、圖像中去除噪聲還原原始圖像。圖像降噪是圖像預處理中一項應用比較廣泛的技術,其作用是為了提高圖像的信噪比突出圖像的期望特征。圖像降噪方法有時域和頻域兩種方法。頻率域方法主要是根據圖像像素噪聲頻率范圍,選取適當的頻域帶通過濾波器進行濾波處理,比如采用Fourier變換(快速算法FFT)分析或小波變換(快速算法Mallat算法)分析??臻g域方法主要采用各種平滑函數對圖像進行卷積處理,以達到去除噪聲的目的,如鄰域平均、中值(Median)濾波等都屬于這一類方法。還有建立在統(tǒng)計基礎上的lee濾波、Kuan濾波等。但是歸根到底都是利用噪聲和信號在頻域上分布不同進行的:信號主要分布在低頻區(qū)域。而噪聲主要分布

3、在高頻區(qū)域,但同時圖像的細節(jié)也分布在高頻區(qū)域。所以,圖像降噪的一個兩難問題就是如何在降低圖像噪聲和保留圖像細節(jié)上保持平衡,傳統(tǒng)的低通濾波方法將圖像的高頻部分濾除,雖然能夠達到降低噪聲的效果,但破壞了圖像細節(jié)。如何構造一種既能夠降低圖像噪聲,又能保持圖像細節(jié)的降噪方法成為此項研究的主題。在小波變換這種有力工具出現之后,這一目標已經成為可能。 基于小波包變換消噪方法的主要思想就是利用小波分析的多尺度特性,首先對含有噪聲的圖像進行小波變換,然后對得到的小波系數進行閾值化處理,得到新的小波系數,對其進行反變換,這樣我們就得到了消噪之后的圖像,從而實現了對圖像的恢復。目前,已經發(fā)展了許多小波變換與傳統(tǒng)圖

4、像消噪方法相結合的新的圖像消噪算法,它們吸收二者的優(yōu)點,從而提高了圖像的消噪效果,得到了較好的應用。1.2. 小波包用于圖像壓縮 當今,我們正處在一個高速發(fā)展的信息時代,而信息的本質就是要求進行存儲、交流和傳輸。信息有多種形式,包括文字、聲音、靜止圖像、視頻圖像等等。在眾多的信息形式中,圖像信息最具有直觀性和生動性,從而成為人們需求的主要信息形式。然而由于圖像信息的數據量太大,作數字傳輸時占有的信道頻帶有非常寬的問題,直接制約著圖像信息的存儲和傳輸。因此,為了有效地利用現代通訊業(yè)務和信息處理中的寶貴資源,需要對大量的數據信息,尤其是圖像信息進行壓縮,因此圖像數據壓縮技術和解壓縮技術成了多媒體技

5、術的關鍵技術之一。近年來,由于“海量”多媒體信息的出現,經典圖像壓縮算法已不能滿足實際應用的需要,迫切需要有更高壓縮效率和適用于各種需要的新壓縮算法。經典壓縮算法一般是在時域或者頻域進行分析和操作,因而經典圖像壓縮算法只是利用了圖像的部分特征,研究人員希望同時利用兩個域的特征,兼容時域和頻域分析的優(yōu)越性。另外經典壓縮算法一般使用的DCT和傅立葉變換是用余弦曲線和正弦曲線作為它們的正交函數基,但這些函數都不是緊支集。而我們在實際應用中處理的大部分是瞬態(tài)信號。特別地,在圖像處理中許多重要特征也是空間位置高度局部化的,如果使用一般的變換,這些瞬態(tài)和局部化成分的信息就很難得到最佳表示。實際上,DCT和

6、傅立葉變換能用余弦和正弦函數表示任何分析函數,甚至是一個瞬態(tài)信號,但這種表示在函數頻譜上會呈現相當混亂的構成。為了克服這種缺陷,研究人員已經發(fā)現若干種使用優(yōu)先寬度的基函數,我們稱之為小波。使用這些基函數的變換被稱之為小波變換。利用小波變換對圖像進行壓縮是當前一個研究熱點。小波包分析是近些年在小波分析的基礎上發(fā)展起來的,將圖像在小波包最優(yōu)基下展開,利用小波包最優(yōu)基極好的空間、尺度定位性,使得圖像的小波包變換系數在小波變換域盡可能的集中,從而使在不降低壓縮圖像的質量情況下,進一步地提高圖像壓縮比成為可能。2.小波包分析短時傅立葉變換對信號的頻帶劃分是線性等間隔的。多分辨分析可以對信號進行有效的時頻

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

8、DAA3+ADA3+DDA3+AAD3+DAD3+ADD3+DDD3。2.1 小波包的定義在多分辨分析中, ,表明多分辨分析是按照不同的尺度因子j把Hilbert空間分解為所有子空間的正交和的。其中, 為小波函數的閉包(小波子空間)?,F在,對小波子空間按照二進制分式進行頻率的細分,以達到提高頻率分辨率的目的。 一種自然的做法是將尺度空間和小波子空間用一個新的子空間統(tǒng)一起來表征,若令 則Hilbert空間的正交分解即可用的分解統(tǒng)一為 (2.22)定義子空間是函數是函數的閉包空間,而是函數的閉包空間,并令滿足下面的雙尺度方程: (2.23)式中,即兩系數也具有正交關系。當n=0時,以上兩式直接給出

9、 (2.24)與在多分辨分析中,滿足雙尺度方程: (2.25)相比較,和分別退化為尺度函數和小波基函數。式(2.24)是式(2.22)的等價表示。把這種等價表示推廣到(非負整數)的情況,即得到(2.23)的等價表示為 ; (2.26)定義(小波包) 由式(2.23)構造的序列(其中)稱為由基函數=確定的正交小波包。當n=0時,即為(2.24)式的情況。由于由唯一確定,所以又稱為關于序列的正交小波包。2.2 小波包的性質定理1 設非負整數n的二進制表示為 ,=0或1。則小波包的傅立葉變換由下式給出: (2.27)式中定理2 設是正交尺度函數的正交小波包,則,即構成的規(guī)范正交基。2.3 小波包的空

10、間分解令是關于的小波包族,考慮用下列方式生成子空間族。現在令n=1,2,;j=1,2,并對(2.22)式作迭代分解,則有因此,我們很容易得到小波子空間的各種分解如下:空間分解的子空間序列可寫作,m=0,1,-1;l=1,2,。子空間序列的標準正交基為。容易看出,當l=0和m=0時,子空間序列簡化為=,相應的正交基簡化為,它恰好是標準正交小波族。 若n是一個倍頻程細劃的參數,即令n=+m,則我們有小波包的簡略記號,其中,。我們把稱為既有尺度指標j、位置指標k和頻率指標n的小波包。將它與前面的小波作一比較知,小波只有離散尺度j和離散平移k兩個參數,而小波包除了這兩個離散參數外,還增加了一個頻率參數

11、n=+m。正是這個頻率新參數的作用,使得小波包克服了小波時間分辨率高時頻率分辨率低的缺陷,于是,參數n表示函數的零交叉數目,也就是其波形的震蕩次數。定義(小波庫) 由生成的函數族(其中;j,)稱為由尺度函數構造的小波庫。推論1.1 對于每個j=0,1,2,= (2.28)這時,族|j=,-1,0;n=2,3,且 (2.29)是的一個正交基。隨著尺度j的增大,相應正交小波基函數的空間分辨率越高,而其頻率分辨率越低,這正是正交小波基的一大缺陷。而小波包卻具有將隨j增大而變寬的頻譜窗口進一步分割變細的優(yōu)良性質,從而克服了正交小波變換的不足。小波包可以對進一步分解,從而提高頻率分辨率,是一種比多分辨分

12、析更加精細的分解方法,具有更好的時頻特性。2.4 小波包算法下面給出小波包的分解算法和重構算法。設,則可表示為 (2.30)小波包分解算法:由求與 (2.31)小波包重構算法:由與求 MOD() 3.小波包分析在圖像處理中的實際應用小波分析之所以在信號處理中有著強大的功能,是基于其分離信息的思想,分離到各個小波域的信息除了與其他小波域的關聯(lián),使得處理的時候更為靈活。全局閾值化方法作用的信息密度太大,不夠精細,所以很難同時獲得高的壓縮比和能量保留成分,在作用的分層閾值以后,性能明顯提高,因為分層閾值更能體現信號固有的時頻局部特性。但是小波分解仍然不夠靈活,分解出來的小波樹只有一種模式,不能完全地

13、體現時頻局部化信息。而壓縮的核心思想既是盡可能去除各小波域系數之間的信息關聯(lián),最大限度體現時頻局部化的信息,因此,實際的壓縮算法多采用小波包算法,而小波樹的確定則是根據不同的信息論準則,以達到分解系數表達的信息密度最高。3.1小波包處理圖像所用函數介紹小波包處理圖像用到的函數主要有wpdec2、wpbmpen、wpdencmp等,下面主要介紹一下wpdencmp函數的用法。函數wpdencmp的調用格式有以下兩種:XD,TREED,PERF0,PERFL2=wpdencmp(X,SORH,N,wname,CRIT,PAR,KEEPAPP)(1)XD,TREED,PERF0,PERFL2=wpd

14、encmp(TREE,SORH,CRIT,PAR,KEEPAPP)(2) 格式(1)返回輸入信號X(一維或二維)的去噪或壓縮后的信號XD。輸出參數TREED是XD的最佳小波包分解樹;PERFL2和PERF0是恢復和壓縮L2的能量百分比。PERFL2=100*(X的小波包系數范數/X的小波包系數)2;如果X是一維信號,小波wname是一個正交小波,則PERFL2=100*|XD|2/|X|2。SORH的取值為s或h,表示的是軟閾值或硬閾值。 輸入參數N是小波包的分解層數,wname是包含小波名的字符串。函數使用由字符串CRIT定義的熵和閾值參數PAR實現最佳分解。如果KEEPAPP=1,則近似信

15、號的小波系數不進行閾值量化;否則,進行閾值量化。 格式(2)與格式(1)的輸出參數相同,輸入選項也相同,只是它從信號的小波包分解樹TREE進行去噪或壓縮。3.2小波包處理圖像主程序介紹下面是運用小波包進行圖像處理的程序實例:I1=imread(D:InstallMatlabtoolboximagesimdemosmoon.tif);L=4;I=wextend(2D,zpd,I1,L);nbc=size(I,1);X = im2double(I);% 產生噪聲圖像init=2055415866;randn(seed,init);x=X+randn(size(X)/10;wname=sym4;le

16、v=3;c,l=wavedec2(x,lev,wname);sigma_s=0.048535;% 圖像降噪時,使用wbmpen 函數選擇閾值alpha=2;thr_s=wbmpen(c,l,sigma_s,alpha);% 使用軟閾值和保存的低頻信號,進行圖像降噪keepapp=1;xds1=wdencmp(gbl,x,wname,lev,thr_s,s,keepapp);sigma_h=0.045663;thr_h=wbmpen(c,l,sigma_h,alpha);% 使用硬閾值和保存的低頻信號,進行圖像降噪xdh1=wdencmp(gbl,x,wname,lev,thr_h,h,keep

17、app);%colormap(pink(nbc);subplot(231);imshow(I,nbc);title(原始圖像);subplot(234);imshow(x);title(加噪圖像);subplot(232);imshow(xds1);title(小波軟閾值降噪圖像);subplot(235);imshow(xdh1);title(小波硬閾值降噪圖像);tree=wpdec2(x,lev,wname);det1=wpcoef(tree,2) wpcoef(tree,3) wpcoef(tree,4);sigma=median(abs(det1(:)/0.6745;alpha=2;

18、thr=wpbmpen(tree,sigma,alpha);keepapp=1;xds2=wpdencmp(tree,s,nobest,thr,keepapp);xdh2=wpdencmp(tree,h,nobest,thr,keepapp);colormap(pink(nbc);subplot(233);imshow(xds2);title(小波包軟閾值降噪圖像);subplot(236);imshow(xdh2);title(小波包硬閾值降噪圖像);在本程序中首先讀取matlab安裝包中自帶的圖片(路徑為:D:InstallMatlabtoolboximagesimdemosmoon.ti

19、f),然后對圖片進行零延拓,再將其轉換為雙精度信息。程序框圖圖3-1所示:加入噪聲信號轉換為雙精度零延拓讀取圖片 小波軟閾值分解選取標準差1畫出圖像小波分解選取標準差1小波軟閾值分解畫出圖像小波包分解選取閾值小波包軟閾值分解小波包軟閾值分解 圖3-1程序框圖 分別用小波和小波包處理圖像處理結果如下圖3-2所示: 圖3-2小波和小波包處理圖像結果 從圖3-2可以看出,在選用sym4小波進行多尺度分解時,去噪效果還是比較理想的。其中小波軟閾值降噪最為理想,總體來說用小波包進行降噪效果比小波較好。4.總結本文主要結合小波包變換的基本概念和基本原理,詳細討論小波包在圖像處理領域的應用,并結合MATLA

20、B程序設計語言來說明其應用。在程序設計中,本文通過小波降噪與小波包降噪兩種方法的比較,試著來解釋小波與小波包圖像去噪的區(qū)別。小波分析的思想是用一族函數去表示或逼近一信號或函數,這一族函數稱為小波函數系。它是通過滿足一定條件的基本小波函數的不同尺度的平移和伸縮構成的。用小波函數系表示的特點是它的時寬與頻寬的乘積很小,且在時間和頻率軸上都很集中。因此,其時-頻分辨率在低頻處頻率分辨率高,在高頻處時間分辨率高,頻率分辨率卻降低。這是正交小波基的一大缺陷。而小波包卻具有隨分辨率的增加,變寬的頻譜窗口進一步分割變細的優(yōu)良品質,因而它能對小波分析沒有細分的高頻部分進行進一步分解,并能夠根據被分析信號的特征

21、,自適應地選擇相應的頻帶,使之與信號頻譜相匹配,從而提高時頻分辨率,它是一種比小波分析更精細的分析方法。從圖像可以看出,無論采用小波還是小波包,軟閾值的去噪效果都要好于硬閾值去噪,這主要是因為軟閾值法具有連續(xù)性,從而使去噪后的圖像相對平滑,但就保留細節(jié)而言,硬閾值法要好于軟閾值法,這充分體現了軟閾值法和硬閾值法各自的特點。另一方面,從圖像還可以看出,小波包去噪方法的去噪效果要明顯好于小波去噪方法。附錄資料:不需要的可以自行刪除各類濾波器的MATLAB程序理想低通濾波器IA=imread(lena.bmp);f1,f2=freqspace(size(IA),meshgrid);Hd=ones(s

22、ize(IA);r=sqrt(f1.2+f2.2);Hd(r0.2)=0;Y=fft2(double(IA);Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=ifft2(Ya);figuresubplot(2,2,1),imshow(uint8(IA);subplot(2,2,2),imshow(uint8(Ia);figuresurf(Hd,Facecolor,interp,Edgecolor,none,Facelighting,phong); 二、理想高通濾波器IA=imread(lena.bmp);f1,f2=freqspace(size(IA),m

23、eshgrid);Hd=ones(size(IA);r=sqrt(f1.2+f2.2);Hd(r0.2)=0;Y=fft2(double(IA);Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=real(ifft2(Ya);figuresubplot(2,2,1),imshow(uint8(IA);subplot(2,2,2),imshow(uint8(Ia);figuresurf(Hd,Facecolor,interp,Edgecolor,none,Facelighting,phong); Butterworth低通濾波器IA=imread(lena.b

24、mp);f1,f2=freqspace(size(IA),meshgrid);D=0.3;r=f1.2+f2.2;n=4;for i=1:size(IA,1) for j=1:size(IA,2) t=r(i,j)/(D*D); Hd(i,j)=1/(tn+1); endendY=fft2(double(IA);Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=real(ifft2(Ya);figuresubplot(2,2,1),imshow(uint8(IA);subplot(2,2,2),imshow(uint8(Ia);figuresurf(Hd,F

25、acecolor,interp,Edgecolor,none,Facelighting,phong); Butterworth高通濾波器IA=imread(lena.bmp);f1,f2=freqspace(size(IA),meshgrid);D=0.3;r=f1.2+f2.2;n=4;for i=1:size(IA,1) for j=1:size(IA,2) t=(D*D)/r(i,j); Hd(i,j)=1/(tn+1); endendY=fft2(double(IA);Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=real(ifft2(Ya);f

26、iguresubplot(2,2,1),imshow(uint8(IA);subplot(2,2,2),imshow(uint8(Ia);figuresurf(Hd,Facecolor,interp,Edgecolor,none,Facelighting,phong); 高斯低通濾波器IA=imread(lena.bmp);IB=imread(babarra.bmp);f1,f2=freqspace(size(IA),meshgrid);D=100/size(IA,1);r=f1.2+f2.2;Hd=ones(size(IA);for i=1:size(IA,1) for j=1:size(I

27、A,2) t=r(i,j)/(D*D); Hd(i,j)=exp(-t); endendY=fft2(double(IA);Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=real(ifft2(Ya);figuresubplot(2,2,1),imshow(uint8(IA);subplot(2,2,2),imshow(uint8(Ia);figuresurf(Hd,Facecolor,interp,Edgecolor,none,Facelighting,phong); 高斯高通濾波器IA=imread(lena.bmp);IB=imread(babarr

28、a.bmp);f1,f2=freqspace(size(IA),meshgrid);%D=100/size(IA,1);D=0.3;r=f1.2+f2.2;for i=1:size(IA,1) for j=1:size(IA,2) t=r(i,j)/(D*D); Hd(i,j)=1-exp(-t); endendY=fft2(double(IA);Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=real(ifft2(Ya);figuresubplot(2,2,1),imshow(uint8(IA);subplot(2,2,2),imshow(uint8(I

29、a);figuresurf(Hd,Facecolor,interp,Edgecolor,none,Facelighting,phong); 梯形低通濾波器IA=imread(lena.bmp);IB=imread(babarra.bmp);f1,f2=freqspace(size(IA),meshgrid);%D=100/size(IA,1);D0=0.1;D1=0.4;r=sqrt(f1.2+f2.2);Hd=zeros(size(IA);Hd(r=D0 & r(i,j)=D1 Hd(i,j)=(D1-r(i,j)/(D1-D0); end endendY=fft2(double(IA);Y

30、=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=real(ifft2(Ya);figuresubplot(2,2,1),imshow(uint8(IA);subplot(2,2,2),imshow(uint8(Ia);figuresurf(Hd,Facecolor,interp,Edgecolor,none,Facelighting,phong); 梯形高通濾波器IA=imread(lena.bmp);IB=imread(babarra.bmp);f1,f2=freqspace(size(IA),meshgrid);%D=100/size(IA,1);D0=

31、0.1;D1=0.4;r=sqrt(f1.2+f2.2);Hd=ones(size(IA);Hd(r=D0 & r(i,j)=D1 Hd(i,j)=(D0-r(i,j)/(D0-D1); end endendY=fft2(double(IA);Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=real(ifft2(Ya);figuresubplot(2,2,1),imshow(uint8(IA);subplot(2,2,2),imshow(uint8(Ia);figuresurf(Hd,Facecolor,interp,Edgecolor,none,Face

32、lighting,phong); 用其他方法編寫的理想低通、理想高通、Butterworth低通、同態(tài)濾波程序理想低通i1=imread(lena.bmp);i2=imnoise(i1,salt & pepper,0.1);f=double(i2);k=fft2(f);g=fftshift(k);N1,N2=size(g);d0=50;u0=floor(N1/2)+1;v0=floor(N2/2)+1;for i=1:N1 for j=1:N2 d=sqrt(i-u0)2+(j-v0)2); if d=d0 h=1; else h=0; end y(i,j)=g(i,j)*h; endendy=ifftshift(y);E1=ifft2(y);E2=real(E1);figuresubplot(2,2,1),imshow(uint8(i1);subplot(2,2,2),imshow(uint8(i2);subplot(2,2,3),imshow(uint8(E2

溫馨提示

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

評論

0/150

提交評論