1.矩阵奇异值分解定义及数学原理
矩阵的奇异值分解英文全称为Singular value decomposition,简称SVD分解。
基本数学原理如下:
那么矩阵的奇异值分解是怎样实现图像压缩的呢?假设一副为height*width的图像,则原图的像素点个数为height*width个,进行奇异值为r的分解之后,像素点就变为height*r+r*r+width*r个,压缩比为(height*width)/(height*r+r*r+width*r),使得存储空间大大降低。
2.奇异值分解的MATLAB程序简单仿真
我们在MATLAB中通过调用svd这个内置函数,来简单看一下矩阵奇异值分解的一个具体实际效果,很简单的一段代码,代码如下:
A=imread('timg.jpg');%读入图像
A=rgb2gray(A);%rgb转灰度
[m,n]=size(A);
subplot(2,2,1);
imshow(A);
title('原始图像');
[U,S,V]=svd(double(A),'econ');%进行奇异值分解
r1=1;%奇异值个数
B=U(:,1:r1)*S(1:r1,1:r1)*V