資源描述:
《區(qū)域編碼閥值編碼.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、第八章作業(yè):實驗作業(yè)7分別用區(qū)域編碼和閾值編碼方法實現(xiàn)圖像壓縮,用8×8DCT變換,保留50%的系數(shù)(區(qū)域編碼保留前50%個系數(shù),閾值編碼保留50%的大系數(shù)),并對解碼圖像進行比較。要求:DCT要自己實現(xiàn),不能用matlab中的DCT函數(shù)(1)區(qū)域編碼I=imread('E:大三下數(shù)字圖像處理MATLAB圖像處理1.jpg');I=double(rgb2gray(I));figureimshow(uint8(I));title('原圖');g=zeros(8,8);[m,n]=size(g);a=0;fori=1:mforj=1:mifi==1a=sqrt(1/m);elsea
2、=sqrt(2/m);endq=((2*(j-1)+1)*(i-1)*pi)/(2*m);g(i,j)=a*cos(q);endendI1=blkproc(I,[88],'P1*x*P2',g,g');figureimshow(uint8(I1));title('DCT變換');a=[];a0=ones(1,8);a1=zeros(1,8);fori=1:8ifi<=4a(i,:)=a0;elsea(i,:)=a1;endend;I2=blkproc(I1,[88],'P1.*x',a);figureimshow(uint8(I1));title('對DCT區(qū)域編碼');I3=blkp
3、roc(I2,[88],'P1*x*P2',g',g);figureimshow(uint8(I3));title('對DCT區(qū)域編碼后反DCT變換的圖');(2)閥值編碼I=imread('E:大三下數(shù)字圖像處理MATLAB圖像處理1.jpg');I=double(rgb2gray(I));figureimshow(uint8(I));title('原圖');g=zeros(8,8);[m,n]=size(g);a=0;fori=1:mforj=1:mifi==1a=sqrt(1/m);elsea=sqrt(2/m);endq=((2*(j-1)+1)*(i-1)*pi)/(
4、2*m);g(i,j)=a*cos(q);endendI1=blkproc(I,[88],'P1*x*P2',g,g');figureimshow(uint8(I1));title('DCT變換');a=ones(8,8);b=reshape(g,1,64);c=median(b);fori=1:8forj=1:8if(abs(g(i,j))5、,g',g);figureimshow(uint8(I3));title('對DCT閥值編碼后反DCT變換的圖');心得體會:無論區(qū)域編碼還是閥值編碼,對兩種編碼進行解碼后,效果都比較好,視覺上看和原圖沒什么差異。剛開始沒弄懂區(qū)域編碼和閥值編碼是怎么一回事,看書?書上講得太粗糙,最后自己上網(wǎng)查閱。在弄懂了區(qū)域編碼和閥值編碼后,加上之前掌握的關(guān)于DCT變換的知識,再來做就先得不是那么棘手了。