資源描述:
《圖像壓縮綜合實(shí)驗(yàn)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、《網(wǎng)絡(luò)通信實(shí)驗(yàn)與設(shè)計(jì)》實(shí)驗(yàn)報(bào)告華北電力大學(xué)實(shí)驗(yàn)報(bào)告院/系:電子與通信工程系課程名稱:數(shù)字圖像處理日期:2010-11-2專業(yè)通信工程學(xué)號實(shí)驗(yàn)時間:14:10-16:10班級通信0703姓名實(shí)驗(yàn)名稱圖像壓縮綜合實(shí)驗(yàn)操作成績報(bào)告成績教師簽名實(shí)驗(yàn)環(huán)境MATLAB實(shí)驗(yàn)任務(wù)要求(1)進(jìn)一步熟悉DCT的概念和原理;(2)掌握對灰度和彩色圖像作離散余弦變換和反變換的方法;(3)能選擇適當(dāng)?shù)牧炕g隔、閾值和區(qū)域進(jìn)行編碼;(4)綜合利用變換、量化、Huffman編碼等知識,實(shí)現(xiàn)JPEG壓縮編碼。實(shí)驗(yàn)原理與方案JPEG壓縮原理:基于DCT的JPEG壓縮過程主要是對圖像的空間
2、冗余進(jìn)行壓縮,其基本過程為:首先進(jìn)行DCT正變換,再對DCT系數(shù)進(jìn)行量化,并對量化后的直流系數(shù)和交流系數(shù)分別進(jìn)行差分編碼和行程編碼,最后進(jìn)行熵編碼。編碼的簡化框圖如圖3.1所示,解碼為其逆過程。壓縮后圖像數(shù)據(jù)熵編碼器量化器源圖像數(shù)據(jù)8×8FDCT量化表Huffman碼表圖3.1JPEG壓縮編碼器框圖2-DCT變換原理:JPEG將源數(shù)據(jù)圖像分成8×8大小的子塊,然后進(jìn)行DCT變換,2-DCT變換公式如下:其中:f(x,y)—輸入/輸出圖像取樣值(基準(zhǔn)系統(tǒng)的取值為[-128,127]);C(u,v)—DCT系數(shù)(基準(zhǔn)系統(tǒng)中C(u,v)的取值范圍為[-1023
3、,1023]);C(0,0)代表DC系數(shù),其余63個為AC系數(shù)。第6頁《網(wǎng)絡(luò)通信實(shí)驗(yàn)與設(shè)計(jì)》實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)程序DCT變換、量化、區(qū)域編碼、閾值編碼參考程序num2=0;num3=0;I=imread('cameraman.tif');I=im2double(I)*255;T=dctmtx(8);%計(jì)算離散余弦變換矩陣figure,imshow(I/255),Q=10;B=blkproc(I,[88],'P1*x*P2',T,T');%對圖像進(jìn)行不同的快處理mask=[111110001111000011100000110000001000000000000
4、0000000000000000000];B2=blkproc(B,[88],'P1.*x',mask);B2=round(B2/Q);%round功能為取整fori=1:256forj=1:256if(B2(i,j)==0)num3=num3+1;endendendB3=B2*Q;I2=blkproc(B3,[88],'P1*x*P2',T',T);figure,imshow(I2/255)fori=1:256forj=1:256if(abs(B(i,j))<40)B(i,j)=0;num2=num2+1;endendendI3=blkproc(B,[
5、88],'P1*x*P2',T',T);figure,imshow(I3/255)a2=num2,a3=num3JPEG壓縮程序:clearallclcdisp('Enter...')disp('0(default)-loada64x64image,or')disp('1-Usetextbook8x8data(example8.28)')第6頁《網(wǎng)絡(luò)通信實(shí)驗(yàn)與設(shè)計(jì)》實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)程序chos=input('Enteryourchoice:');ifisempty(chos)chos=0;endifchos==0,loadlena.matf=x;imshow
6、(mat2gray(f))clearxelsef=[139144149153155155155155144151153156159156156156150155160163158156156156159161162160160159159159159160161162162155155155161161161161160157157157162162161163162157157157162162161161163158158158];f1=[52556166706164736359669010985697262596811314410466736358
7、711221541067069676168104126886870796560707768587585716459556165838779696865767894];endifchos==0,f=f-128;elseifchos==1,f=f-128,enddrawnow[mf,nf]=size(f);mb=mf/8;nb=nf/8;ifchos==0,Ff=blkproc(f,[88],'dct');Ff=blkproc(Ff',[88],'dct');Ff=round(Ff');elseifchos==1,Ff=blkproc(f,[88],'dct
8、'),Ff=blkproc(Ff',[88],'dct'),Ff=round(F