當前位置:編程學習大全網 - 源碼下載 - Matlab圖像壓縮源代碼

Matlab圖像壓縮源代碼

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

JPEG圖像壓縮算法;

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

JPEG文件解碼量化的DCT系數,計算每個塊的二維逆DCT變換,最後將得到的塊拼接成壹個完整的圖像。在DCT變換之後,那些接近0的、不嚴重影響圖像重建的系數被丟棄。

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

示例程序:

函數Jpeg

I = im read(' D:\ MATLAB 7 \ toolbox \ images \ im demos \ camera tor . TIF ');

%這張圖是在matlab安裝的目錄下找到的。原圖是灰度圖像。

I = im2 double(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 ',掩碼);

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

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

%進行DCT逆變換,得到壓縮圖像。

imshow(壹)

標題(“原始圖像”)

圖;

imshow(I2)

標題(“壓縮圖像”)

  • 上一篇:不同平行世界的同壹個人出現在同壹個位面會發生什麽?
  • 下一篇:請問量能怎麽看得?在那裏看?他和成交量什麽關系?
  • copyright 2024編程學習大全網