SVD图片有损压缩测试

时间:2023-03-09 00:39:21
SVD图片有损压缩测试

注意文件名别保持成svd.m,这样与系统的默认svd程序冲突

图片处理函数生成的三组二维数组对应RGB,处理时保留一组

clear all;
close all;
clc; a1=imread('C:\1.jpg'); [m n]=size(a1);
a1=double(a1);
a=a1(:,:,); %图片有三个通道
imshow(mat2gray(a))
r=rank(a);
[U S V]=svd(a); %re=s*v*d';
re=U(:,:)*S(:,:)*V(:,:)';
figure;
imshow(mat2gray(re));
imwrite(mat2gray(re),'a.jpg')
%实际保存是S可以只保存20个字节,U,V按二维数组保存
re=U(:,:)*S(:,:)*V(:,:)';
figure;
imshow(mat2gray(re));
imwrite(mat2gray(re),'b.jpg') re=U(:,:)*S(:,:)*V(:,:)';
figure;
imshow(mat2gray(re));
imwrite(mat2gray(re),'c.jpg') re=U(:,:)*S(:,:)*V(:,:)';
figure;
imshow(mat2gray(re));
imwrite(mat2gray(re),'d.jpg') re=U(:,:)*S(:,:)*V(:,:)';
figure;
imshow(mat2gray(re));
imwrite(mat2gray(re),'e.jpg')