當前位置:編程學習大全網 - 源碼下載 - 請幫忙在網上找基於Matalb的圖象壓縮技術方面的資料!!!越多越好,視情況給分...

請幫忙在網上找基於Matalb的圖象壓縮技術方面的資料!!!越多越好,視情況給分...

matlab實現離散余弦變換壓縮(JPEG壓縮原理)

JPEG圖像壓縮算法:

輸入圖像被分成8*8或16*16的小塊,然後對每壹小塊進行二維DCT(離散余弦變換)變換,變換後的系數量化、編碼並傳輸;

JPEG文件解碼量化了的DCT系數,對每壹塊計算二維逆DCT變換,最後把結果塊拼接成壹個完整的圖像。在DCT變換後舍棄那些不嚴重影響圖像重構的接近0的系數。

DCT變換的特點是變換後圖像大部分能量集中在左上角,因為左上放映原圖像低頻部分數據,右下反映原圖像高頻部分數據。而圖像的能量通常集中在低頻部分。

實例程序:

function Jpeg

I=imread('D:\MATLAB7\toolbox\images\imdemos\cameraman.tif');

%該圖片在安裝matlab的目錄中找,原圖為灰度圖象

I=im2double(I);%圖像存儲類型轉換

T=dctmtx(8);%離散余弦變換矩陣

B=blkproc(I,[8 8],'P1*x*P2',T,T');

%對原圖像進行DCT變換

mask=[1 1 1 1 0 0 0 0

1 1 1 0 0 0 0 0

1 1 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);

%數據壓縮,丟棄右下角高頻數據

I2=blkproc(B2,[8 8],'P1*x*P2',T',T);

%進行DCT反變換,得到壓縮後的圖像

imshow(I)

title('原始圖像')

figure;

imshow(I2)

title('壓縮後的圖像')

  • 上一篇:大型超市源代碼
  • 下一篇:森系風格可以跟其他裝修風格搭配嗎?
  • copyright 2024編程學習大全網