注意文件名別保持成svd.m,這樣與系統的默認svd程序衝突數組
圖片處理函數生成的三組二維數組對應RGB,處理時保留一組ide
clear all; close all; clc; a1=imread('C:\1.jpg'); [m n]=size(a1); a1=double(a1); a=a1(:,:,3); %圖片有三個通道 imshow(mat2gray(a)) r=rank(a); [U S V]=svd(a); %re=s*v*d'; re=U(:,:)*S(:,1:1)*V(:,1:1)'; figure; imshow(mat2gray(re)); imwrite(mat2gray(re),'a.jpg') %實際保存是S能夠只保存20個字節,U,V按二維數組保存 re=U(:,1:20)*S(1:20,1:20)*V(:,1:20)'; figure; imshow(mat2gray(re)); imwrite(mat2gray(re),'b.jpg') re=U(:,1:80)*S(1:80,1:80)*V(:,1:80)'; figure; imshow(mat2gray(re)); imwrite(mat2gray(re),'c.jpg') re=U(:,1:150)*S(1:150,1:150)*V(:,1:150)'; figure; imshow(mat2gray(re)); imwrite(mat2gray(re),'d.jpg') re=U(:,1:250)*S(1:250,1:250)*V(:,1:250)'; figure; imshow(mat2gray(re)); imwrite(mat2gray(re),'e.jpg')