奇異值分解 SVD 映像壓縮 Matlab 壓縮率

來源:互聯網
上載者:User

基於奇異值分解(SVD)的映像壓縮

       基於Matlab,將奇異值分解(SVD)用於映像的壓縮,並同步顯示奇異值的大小分布曲線、奇異值個數對壓縮率的影響。對奇異值分解用於映像壓縮整個過程的關鍵步驟都有映像記錄。

       完整代碼如下:

%%%%%%%%%%%%%%%%%%%%%%%%%%%修改第9行的映像路徑即可,映像格式不限%2013.1.12 yangxin_szu%%%%%%%%%%%%%%%%%%%%%%%%%%%%clear all;clc;%匯入映像X = imread('F:\M_Material\egle.bmp');if (size(X,3) ~= 1)    X = rgb2gray(X);end%奇異值分解[U S V] = svd(double(X));%繪製奇異值的分布曲線plot(diag(S),'b-','LineWidth',3);title('映像矩陣的奇異值');ylabel('奇異值');%映像大小[m n] = size(X);%映像矩陣的秩Rank = rank(double(X));%顯示原圖figure,subplot(1,2,1),imshow(X);Image_Rank = ['映像矩陣的秩 = ' int2str(Rank)];title(Image_Rank,'Color','b');%%%迴圈改變奇異值選取的個數,動態觀察映像壓縮的效果%迴圈次數it = 1;iter = (Rank/4 - 1)/10 +1;%儲存奇異值的個數K_Store = ones(iter);%儲存不同奇異值個數對應的壓縮比CR_store = ones(iter);for K=1:10:Rank/4    K_Store(it) = K;    %選取K個奇異值,並恢複原圖    R = U(:,1:K)*S(1:K,1:K)*V(:,1:K)';    T = uint8(R);    %顯示恢複結果    subplot(1,2,2),imshow(T);    SVD_number = ['選取的奇異值的個數 = ' int2str(K)];    title(SVD_number,'Color','b');    %計算壓縮比    src_elements = m*n;    compress_elements = m*K + K*K + K*n;    compress_ratio = (1 - compress_elements/src_elements)*100;    CR_store(it) = compress_ratio;    it = it+1;    fprintf('Rank = %d : K = %d 個: compress_ratio = %.2f\n',Rank,K,compress_ratio);    %暫停0.5秒,便於觀察效果    pause(0.5);end%%%繪製奇異值個數與壓縮比的關係曲線figure,plot(K_Store,CR_store,'b-','LineWidth',3);title('奇異值個數與壓縮比的關係');xlabel('奇異值個數');ylabel('壓縮比');

 

程式運行結果:

原圖:

奇異值大小的分布曲線:

奇異值個數的不同對映像壓縮率的影響:

奇異值個數與映像壓縮比的關係:

 

 

 

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.