⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 svd_cprs1.m

📁 利用奇异值分解压缩图像
💻 M
字号:
% 该程序是用矩阵的起奇异值分解实现对图像的压缩编码
% m,n为读入图像矩阵的维数
% X1为经过变换后的图像数据,t为特征向量图像,二者均是变换后应存数据
clear
close all
rdimg=imread('1','jpg');
%----读入灰度图像----------------
gryimg=double(rdimg);
[m,n]=size(gryimg);
X=zeros(m,n);
avimg=0;
for i=1:m
    for j=1:n
        avimg=avimg+gryimg(i,j);
    end
end
avimg=avimg/(m*n);
%-----------求图像像素均值---------
X=gryimg-avimg;
A=X*X';
%-----------求协方差矩阵-------------
[u,s,v]=svd(A);
%--------奇异值分解-----------
for i=1:m
    if i<=32
%-----------设定压缩比---------
       t(:,i)=u(:,i);
    else
        break;
    end
end
X1=t'*X;
%---------压缩数据------------------
X2=t*X1;
%-----恢复数据---------
X2=X2+avimg;
X2=uint8(X2);
%---------画出解压前后图像比较效果----------------
subplot(1,2,1),imshow(uint8(gryimg));
subplot(1,2,2),imshow(X2);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -