现在时间是:
当前位置:首 页 >> Matlab>> 教学区>> 文章列表

16074303 作业7 实训3 图片压缩

作者:黄彩双   发布时间:2019-05-21 19:11:17   浏览次数:130

1.   问题:通过SVD分解,压缩图像。

(1)灰色图片的压缩

(2)彩色图片的压缩

 

1)灰度图像压缩

     分析

灰色图片压缩,通过imread()读入图片数据I

转换图片数据存储类型为浮点型;

通过SVD分解矩阵,分解出USV,三个矩阵, [U S V]=svd(I);%svd奇异分解;

矩阵I=U*S*V’,取UV的前k列,S的前k行和前k列,即Ik=U(:,1:k)*S(1:k,1:k)*V(:,1:k)'

最后展示压缩的图片,这里要先把Ik数据存储类型转换回图片读入时的存储类型unit8,即imshow(uint8(Ik));

     代码:

I=imread('D:4.jpg');  %图片必须是灰度图片

% I=rgb2gray(I);%灰度化矩阵

I=double(I);%转换存储类型为浮点型

[U S V]=svd(I);%svd奇异分解

for k=1:100

    Ik=U(:,1:k)*S(1:k,1:k)*V(:,1:k)';%U的前k列,S的前k行,前k列,V的前k

    figure;

    imshow(uint8(Ik));

end

实验结果:


原图: