圖像變換編碼程序的設(shè)計(jì)說明_第1頁
圖像變換編碼程序的設(shè)計(jì)說明_第2頁
圖像變換編碼程序的設(shè)計(jì)說明_第3頁
圖像變換編碼程序的設(shè)計(jì)說明_第4頁
圖像變換編碼程序的設(shè)計(jì)說明_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 .目 錄摘 要I1 設(shè)計(jì)背景及要求11.1 設(shè)計(jì)背景11.2 設(shè)計(jì)要求22 圖像的信息熵22.1 信息熵與圖像熵22.2 圖像熵的計(jì)算的 MTALAB實(shí)現(xiàn)33 基于DCT的JPEG圖像壓縮編碼43.1 關(guān)于DCT變換及DCT系數(shù)4 3.1.1 DCT變換4 3.1.2 DCT 系數(shù)的量化5 3.1.3 DCT系數(shù)的性質(zhì)53.2 程序設(shè)計(jì)63.2.1 DCT圖像壓縮模型63.3.2 程序流圖73.3.3 程序代碼83.3 MATLAB仿真94 圖像的信噪比104.1 原理簡介104.1.1 均方誤差104.1.2 峰值信噪比104.2 程序設(shè)計(jì)114.3 MATLAB仿真125 心得體會(huì)13參

2、考文獻(xiàn)14摘 要本設(shè)計(jì)是基于MATLAB軟件的圖像變換編碼程序設(shè)計(jì),介紹了圖像的信息熵概念和圖像信息熵計(jì)算的MATLAB實(shí)現(xiàn)方法,對(duì)DCT變換和反變換的原理進(jìn)行了詳細(xì)介紹,并利用MATLAB 和相關(guān)函數(shù)實(shí)現(xiàn)了基于DCT的JPEG圖像壓縮編碼,簡單講述了圖像信噪比的概念及意義,利用MATLAB實(shí)現(xiàn)了圖像經(jīng)過DCT編碼及重構(gòu)后圖像的信噪比的計(jì)算。關(guān)鍵詞:MATLAB,信息熵,DCT變換,JPEG壓縮,峰值信噪比1 設(shè)計(jì)背景及要求1.1 設(shè)計(jì)背景數(shù)字圖像處理是利用計(jì)算機(jī)或數(shù)字技術(shù)對(duì)圖像信息進(jìn)行加工處理以改善圖像質(zhì)量、壓縮圖像數(shù)據(jù)或從圖像數(shù)據(jù)中獲取更多信息。數(shù)字圖像處理的主要方法可分為兩大類:空域法和

3、變換域法。 圖像壓縮即去除多余數(shù)據(jù)。以數(shù)學(xué)的觀點(diǎn)來看圖像壓縮過程實(shí)際上就是將二維像素陣列變換為一個(gè)在統(tǒng)計(jì)上無關(guān)聯(lián)的數(shù)據(jù)集合。因此圖像壓縮是指以較少的比特有損或無損地表示原來的像素矩陣的技術(shù),也稱圖像編碼。 圖像壓縮編碼的必要性和可能性:圖像壓縮編碼的目的是以盡量少的比特?cái)?shù)表征圖像同時(shí)保持復(fù)原圖像的質(zhì)量使它符合預(yù)定應(yīng)用場(chǎng)合的要求。壓縮數(shù)據(jù)量、提高有效性是圖像壓縮編碼的首要目的。圖像數(shù)據(jù)可以進(jìn)行壓縮有以下幾方面的原因:首先原始圖像數(shù)據(jù)是高度相關(guān)的存在很大的冗余度,如空間冗余度,時(shí)間冗余度,頻率域冗余度。數(shù)據(jù)冗余造成比特?cái)?shù)浪費(fèi)消除這些冗余就可以節(jié)約碼字也就達(dá)到了數(shù)據(jù)壓縮的目的,其次基用相同碼長表示不

4、同出現(xiàn)概率的符號(hào)也會(huì)造成符號(hào)冗余度;允許圖像編碼有一定的失真也是圖像可以壓縮的一個(gè)重要原因。 1.2 設(shè)計(jì)要求(1)學(xué)習(xí)圖像壓縮和 JPEG 壓縮的原理和方法;(2)選擇一幅 256 級(jí)的灰度圖像,利用 matlab 設(shè)計(jì)程序完成以下功能;(3)計(jì)算該圖像的信息熵;(4)利用 JPEG 的壓縮原理,將圖像分成 8´8 的圖像塊,計(jì)算每個(gè)塊的 DCT 系數(shù);(5)只保留 DCT 系數(shù)矩陣最左上角的 10 個(gè)系數(shù),然后對(duì)每個(gè)圖像塊利用這 10個(gè)系數(shù)進(jìn)行 DCT 反變換來重構(gòu)圖像,顯示重構(gòu)后的圖像;(5)計(jì)算該圖像經(jīng)過離散余弦變換編碼及重構(gòu)后圖像的信噪比;(6)要求閱讀相關(guān)參考文獻(xiàn)不少于

5、5 篇;(7)根據(jù)課程設(shè)計(jì)有關(guān)規(guī)范,按時(shí)、獨(dú)立完成課程設(shè)計(jì)說明書。2 圖像的信息熵2.1 信息熵與圖像熵自信息是一個(gè)隨機(jī)變量,它是指某一信源發(fā)出某一消息所含有的信息量。所發(fā)出的消息不同,它們所含有的信息量也就不同。任何一個(gè)消息的自信息量都代表不了信源所包含的平均自信息量。不能作為整個(gè)信源的信息測(cè)度,因此定義自信息量的數(shù)學(xué)期望為信源的平均自信息量。 信息熵的意義:信源的信息熵H是從整個(gè)信源的統(tǒng)計(jì)特性來考慮的。它是從平均意義上來表征信源的總體特性的。對(duì)于某特定的信源,其信息熵只有一個(gè)。不同的信源因統(tǒng)計(jì)特性不同,其熵也不同。 圖像熵是一種特征的統(tǒng)計(jì)形式,它反映了圖像中平均信息量的多少。圖像的一維熵表

6、示圖像中灰度分布的聚集特征所包含的信息量,令Pi 表示圖像中灰度值為i的像素所占的比例,則定義灰度圖像的一元灰度熵為: 圖像的一維熵可以表示圖像灰度分布的聚集特征,卻不能反映圖像灰度分布的空間特征,為了表征這種空間特征,可以在一維熵的基礎(chǔ)上引入能夠反映灰度分布空間特征的特征量來組成圖像的二維熵。選擇圖像的鄰域灰度均值作為灰度分布的空間特征量,與圖像的像素灰度組成特征二元組,記為( i, j ),其中i 表示像素的灰度值(0 <= i <= 255),j 表示鄰域灰度(0 <= j <= 255), 上式能反應(yīng)某像素位置上的灰度值與其周圍像素灰度分布的綜合特征,其中f(i

7、, j)為特征二元組(i, j)出現(xiàn)的頻數(shù),N 為圖像的尺度,定義離散的圖像二維熵為: 構(gòu)造的圖像二維熵可以在圖像所包含信息量的前提下,突出反映圖像中像素位置的灰度信息和像素鄰域內(nèi)灰度分布的綜合特征.2.2 圖像熵的計(jì)算的 MTALAB實(shí)現(xiàn)圖像熵計(jì)算過程:1) 輸入一幅圖像,并將其轉(zhuǎn)換成灰度圖像。2) 統(tǒng)計(jì)出圖像中每個(gè)灰度階象素概率。3) 統(tǒng)計(jì)出圖像中相鄰兩象素的灰度階聯(lián)合分布矩陣。4) 根據(jù)圖像熵和二階熵公式,計(jì)算出一幅圖像的熵。由此,可得圖像熵計(jì)算的MATLAB程序,如下:A=imread('E:Program FilesMATLABR2010bbinlena','

8、bmp'); %讀入圖像n(1:256)=0;p(1:256)=0;S=0;H=0;for i=1:256 %統(tǒng)計(jì)像素值 for j=1:256 n(A(i,j)=n(A(i,j)+1; endend for i=1:256 %計(jì)算每個(gè)像素值的概率 p(i)=n(i)/(256*256);end for i=1:256 %概率和為1 S=S+p(i);end for i=1:256 %熵的計(jì)算 if p(i)=0 H=H+p(i)*log2(1/p(i); endendH 2.3 仿真結(jié)果 3 基于DCT的JPEG圖像壓縮編碼 3.1 關(guān)于DCT變換及DCT系數(shù)3.1.1 DCT變換

9、離散余弦變換(Discrete Cosine Transform,DCT)是一種實(shí)數(shù)域變換,其變換核為實(shí)數(shù)余弦函數(shù)。對(duì)一幅圖像進(jìn)行離散余弦變換后,許多有關(guān)圖像的重要可視信息都集中在DCT變換的一小部分系數(shù)中。因此,離散余弦變換(DCT)是有損圖像壓縮JPEG的核心,同時(shí)也是所謂“變換域信息隱藏算法”的主要“變換域(DCT域)”之一。因?yàn)閳D像處理運(yùn)用二維離散余弦變換,所以直接介紹二維DCT變換。 一個(gè)矩陣的二維DCT定義如下: ,其中,x,y=0,1,2,N-1,式中表示的陣列為N*N。逆DCT變換定義如下: ,3.1.2 DCT 系數(shù)的量化 為了達(dá)到壓縮數(shù)據(jù)的目的DCT 系數(shù)需作量化量化表需針

10、對(duì)性地設(shè)計(jì)。DCT系數(shù)量化是一個(gè)十分重要的過程,是造成DCT編解碼信息損失(或失真) 的根源。量化過程即經(jīng)過DCT變換圖像的每個(gè)系數(shù)根據(jù)量化表除以各自對(duì)應(yīng)的量化步長,得到量化系數(shù)。量化的作用是在一定的主觀保真度圖像質(zhì)量的前提下,丟掉那些對(duì)視覺影響不大的信息,以獲得較高的壓縮比。量化公式: 量化值(u,v)= f(u,v)/量化矩陣(u,v)3.1.3 DCT系數(shù)的性質(zhì) 當(dāng)u,v不斷增大時(shí),相應(yīng)的余弦函數(shù)的頻率也不斷增大,得到的系數(shù)可認(rèn)為就是原始圖像信號(hào)在頻率不斷增大的余弦函數(shù)上的投影,所以也被稱為低頻系數(shù)、中頻系數(shù)和高頻系數(shù)。而且,一個(gè)圖像的DCT低頻系數(shù)分布在DCT系數(shù)矩陣的左上角,高頻系數(shù)

11、分布在右下角,低頻系數(shù)的絕對(duì)值大與高頻系數(shù)的絕對(duì)值。對(duì)DCT變換來說,圖像的主要能量是集中在其DCT系數(shù)的一小部分。這所謂的“一小部分”就是指的低頻部分。隨著u,v階數(shù)的不斷增大,圖像信號(hào)在兩組正交函數(shù)上的投影值出現(xiàn)了大量的正負(fù)相抵消的情景,從而導(dǎo)致了得到的頻率系數(shù)在數(shù)值(絕對(duì)值)上的不斷減小。中、低頻系數(shù)所含有的原始信號(hào)的成份較多,所以由其反變換重構(gòu)圖像就能得到圖像的近似部分。高頻系數(shù)是在眾多正交的余弦函數(shù)上投影的加權(quán),是這些不同頻率的余弦信號(hào)一起來刻畫原始信號(hào)的結(jié)果,圖像近似的部分在這些函數(shù)上被相互抵消了,剩下的就是圖像的細(xì)節(jié)部分了。3.2 程序設(shè)計(jì)3.2.1 DCT圖像壓縮模型 DCT圖

12、像壓縮模型如圖3.1所示: 圖3.1 DCT圖像壓縮模型 在編碼過程中,將圖像分解為8×8的象素塊,對(duì)這個(gè)8×8塊進(jìn)行二維離散余弦變換, 每個(gè)塊就產(chǎn)生了64個(gè)DCT系數(shù),其中一個(gè)DC系數(shù)位于左上角是直流(DC)系數(shù),它表示了8×8輸入矩陣全部值的平均數(shù),其余63個(gè)系數(shù)為交流(AC)系數(shù)。接下來對(duì)DCT系數(shù)進(jìn)行量化, 相鄰的8×8塊之間的DC系數(shù)有較強(qiáng)的相關(guān)性。最后將量化的DCT系數(shù)進(jìn)行編碼和傳送,就形成了壓縮后的圖像格式。在解碼過程中,先對(duì)已編碼的量化的系數(shù)進(jìn)行解碼,然后求逆量化并利用二維DCT反變換把DCT系數(shù)轉(zhuǎn)化為8×8樣本像塊,最后將反變

13、換后的塊組合成一幅圖像。這樣就完成了圖像的壓縮和解壓過程。 圖像塊處理的整個(gè)過程由函數(shù)blkproc自動(dòng)實(shí)現(xiàn)。函數(shù)blkproc的格式為 B=blkproc(A,M,N,FUN,P1,P2) 函數(shù)blkproc的參量為一幅輸入圖像A將被處理的塊的大小M,N,用于處理這些塊的函數(shù)FUN,以及塊處理函數(shù)FUN的一些可選輸入?yún)?shù)P1,P2,并重新將結(jié)果組合到輸出圖像。 3.3.2 程序流圖對(duì)一幅圖像進(jìn)行DCT壓縮編碼的MATLAB程序流程圖如圖3.2所示: 圖3.2 圖像DCT壓縮編碼的程序流程圖3.3.3 程序代碼I=imread('E:Program FilesMATLABR2010bb

14、inlena','bmp');I=im2double(I);T=dctmtx(8); %8*8的離散余弦變換矩陣B=blkproc(I,8,8,'P1*x*P2',T,T'); %對(duì)原圖像進(jìn)行DCT變換blkproc()函數(shù)是對(duì)f1矩陣中的%每個(gè)8,8模塊,用公式P1*x*P2進(jìn)行計(jì) 算。其中x=8,8,P1=T,P2=T'。用*表示的是%矩陣乘法,而.*表示的矩陣中相應(yīng)數(shù)的乘積。由線性代數(shù)的知識(shí),很快就能知道B1的%size和f1的size是一樣的。 mask=1 1 1 1 0 0 0 0; 1 1 1 0 0 0 0 0; 1 1

15、0 0 0 0 0 0; 1 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0; ;B2=blkproc(B,8 8,'P1.*x',mask); %數(shù)據(jù)壓縮,只保留DCT系數(shù)矩陣最左上角的10個(gè)系數(shù)I2=blkproc(B2,8 8,'P1*x*P2',T',T);%進(jìn)行DCT反變換,得到壓縮后的圖像subplot(2,2,1);imshow(I);title('原圖像');subplot(2,2,2);imshow(I2)

16、;title('重構(gòu)后圖像');subplot(2,2,3);imshow(abs(I-I2);title('原圖象和復(fù)原后圖象的差')subplot(2,2,4);imshow(B);title('DCT系數(shù)');3.3 MATLAB仿真經(jīng)過MATLAB軟件進(jìn)行仿真,仿真結(jié)果如圖3.3所示: 圖 3.1 原圖像和重構(gòu)后圖像比較,及DCT系數(shù)總結(jié)分析: 仿真中取了10個(gè)DCT系數(shù),占15%.比較原圖和重構(gòu)圖像,可以發(fā)現(xiàn):在拋棄85%的DCT系數(shù)后,重構(gòu)圖像時(shí)并不會(huì)因此而帶來其畫面質(zhì)量的顯著下降,即重構(gòu)圖像的失真不大。當(dāng)然,采用這種方法來實(shí)現(xiàn)壓縮算

17、法時(shí),可以通過修改mask變量中的DCT系數(shù)來更好地比較仿真結(jié)果。4 圖像的信噪比4.1 原理簡介圖像的信噪比應(yīng)該等于信號(hào)與噪聲的功率譜之比,但通常功率譜難以計(jì)算,有一種方法可以近似估計(jì)圖像信噪比,即信號(hào)與噪聲的方差之比。首先計(jì)算圖像所有象素的局部方差,將局部方差的最大值認(rèn)為是信號(hào)方差,最小值是噪聲方差,求出它們的比值,再轉(zhuǎn)成dB數(shù),最后用經(jīng)驗(yàn)公式修正。數(shù)字圖像處理中,我們一般用均方誤差和峰值信噪比來表示圖像壓縮效果。4.1.1 均方誤差均方誤差(Mean Squared Error, MSE)在相同測(cè)量條件下進(jìn)行的測(cè)量稱為等精度測(cè)量,例如在同樣的條件下用同一個(gè)游標(biāo)卡尺測(cè)量銅棒的直徑若干次這就

18、是等精度測(cè)量。對(duì)于等精度測(cè)量來說還有一種更好的表示誤差的方法就是標(biāo)準(zhǔn)誤差。標(biāo)準(zhǔn)誤差定義為各測(cè)量值誤差的平方和的平均值的平方根故又稱為均方誤差。 數(shù)理統(tǒng)計(jì)中均方誤差是指參數(shù)估計(jì)值與參數(shù)真值之差平方的期望值記為MSE。4.1.2 峰值信噪比 峰值信噪比,其英文縮寫是PSNR,英文全稱為“Peak Signal to Noise Ratio”。peak的中文意思是頂點(diǎn)。而radio的意思是比率或比列的。整個(gè)意思就是到達(dá)噪音比率的頂點(diǎn)信號(hào),psnr是一般是用于最大值信號(hào)和背景噪音之間的一個(gè)工程項(xiàng)目。通常在經(jīng)過影像壓縮之后,輸出的影像通常都會(huì)有某種程度與原始影像一樣。為了衡量經(jīng)過處理后的影像品質(zhì),我們通

19、常會(huì)參考PSNR 值來認(rèn)定某個(gè)處理程序夠不夠令人滿意。 峰值信噪比定義為: Peak就是指8 bits表示法的最大值255。MSE指 Mean Square Error(均方誤差各值相差的n次方和的平均值的n次平方根(這幾個(gè)字應(yīng)該沒有)),I(角標(biāo)n)指原始影像第n個(gè)pixel值,P(角標(biāo)n)指經(jīng)處理后的影像第n個(gè)pixel值。PSNR 的單位為dB。所以PSNR值越大,就代表失真越少。PSNR 是最普遍,最廣泛使用的評(píng)鑒畫質(zhì)的客觀量測(cè)法,不過許多實(shí)驗(yàn)結(jié)果都顯示,PSNR的分?jǐn)?shù)無法和人眼看到的視覺品質(zhì)完全一致,有可能PSNR較高者看起來反而比PSNR較低者差,這是因?yàn)槿搜鄣囊曈X對(duì)于誤差的敏感度

20、并不是絕對(duì)的,其感知結(jié)果會(huì)受到許多因素的影響而產(chǎn)生變化例如人眼對(duì)空間頻率較低的對(duì)比差異敏感度較高人眼對(duì)亮度對(duì)比差異的敏感度較色度高,人眼對(duì)一個(gè)區(qū)域的感知結(jié)果會(huì)受到其周圍鄰近區(qū)域的影響。4.2 程序設(shè)計(jì)程序函數(shù):function PSNR = PSNR(A,B) %計(jì)算輸入兩圖像A,B的峰值信噪比PSNR(dB) A = double(A); %圖像數(shù)據(jù)類型轉(zhuǎn)換 B = double(B); Row,Col = size(A); %輸入圖像的大小 Row,Col = size(B); MSE = sum(sum(A - B).2) / (Row * Col); %均方誤差MSE PSNR = 1

21、0 * log10(2552/MSE); %峰值信噪比PSNR(dB) function MSE = MSE(A,B) A=double(A); B=double(B); Row,Col = size(A); %輸入圖像的大小 Row,Col = size(B); MSE = sum(sum(A - B).2) / (Row * Col); %均方誤差MSE 主程序代碼:disp('DCTJPEG壓縮前后均方誤差MSE:') mse0=mse(I,I2) disp('DCTJPEG壓縮前后圖像峰值信噪比(dB):') PSNR0=PSNR(I,I2) 4.3 MATLAB仿真經(jīng)過MATLAB軟件進(jìn)行仿真,仿真結(jié)果如圖4.1所示: 圖4.1 均方誤差及峰值信噪比5 心得體會(huì)這次的課程設(shè)計(jì),讓我對(duì)單MATLAB的理論有了更加深入的了解,同時(shí)在具體的制作過程中,我們發(fā)現(xiàn)現(xiàn)在書本上的知識(shí)與實(shí)際的應(yīng)用存在著不小的差距。這次實(shí)踐使我更深刻的體會(huì)到了理論聯(lián)系實(shí)際的重要性,我們?cè)诮窈蟮?/p>

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論