奇异值分解--图像分解恢复
2016-10-19 11:35
169 查看
因项目上需要用到特征提取算法,突然想起早些时候看吴军的数学之美里有讲到SVD分解,当时就大致浏览了下,今天在这里用图像作为例子加深下印象,显示下svd特征提取、降维效果。
奇异值分解(Singular Value Decomposition)定理:设A为m*n阶复矩阵,则存在m阶酉阵U和n阶酉阵V,使得:
A = U*S*V’
其中S=diag(σi,σ2,……,σr),σi>0 (i=1,…,r),r=rank(A)。
推论:设A为m*n阶实矩阵,则存在m阶正交阵U和n阶正交阵V,使得
A = U*S*V’
其中S=diag(σi,σ2,……,σr),σi>0 (i=1,…,r),r=rank(A)。
算法流程:
1. 读取图像:
2. 对图像进行svd分解,得到svd分解对应的图像
其中,上图第三幅代表分解后的特征值(这里用直方图显示其结果值),从图中可以看出,特征值从大到小依次排列,特征值分解可以用在主成分分析(PCA)中,可以利用分解的矩阵恢复或者近似原图像。比如,取前10特征值时恢复如下:
取前20个特征时时恢复如下:
取前40个特征时时恢复如下:
参考文献:吴军--数学之美
奇异值分解(SVD) --- 几何意义 http://blog.chinaunix.net/uid-20761674-id-4040274.html
奇异值分解(Singular Value Decomposition)定理:设A为m*n阶复矩阵,则存在m阶酉阵U和n阶酉阵V,使得:
A = U*S*V’
其中S=diag(σi,σ2,……,σr),σi>0 (i=1,…,r),r=rank(A)。
推论:设A为m*n阶实矩阵,则存在m阶正交阵U和n阶正交阵V,使得
A = U*S*V’
其中S=diag(σi,σ2,……,σr),σi>0 (i=1,…,r),r=rank(A)。
算法流程:
1. 读取图像:
2. 对图像进行svd分解,得到svd分解对应的图像
其中,上图第三幅代表分解后的特征值(这里用直方图显示其结果值),从图中可以看出,特征值从大到小依次排列,特征值分解可以用在主成分分析(PCA)中,可以利用分解的矩阵恢复或者近似原图像。比如,取前10特征值时恢复如下:
取前20个特征时时恢复如下:
取前40个特征时时恢复如下:
参考文献:吴军--数学之美
奇异值分解(SVD) --- 几何意义 http://blog.chinaunix.net/uid-20761674-id-4040274.html
相关文章推荐
- matlab练习程序(奇异值分解压缩图像)
- 【转】matlab练习程序(奇异值分解压缩图像)
- matlab练习程序(奇异值分解压缩图像)
- 奇异值分解压缩图像SVD
- PCA与奇异值分解用于人脸检测
- 图像的Mallat算法分解(Matlab代码)
- ML数学之矩阵奇异值分解及其应用
- 奇异值分解
- 奇异值分解SVD的理解与应用
- 图像恢复迭代算法的加速
- SVD奇异值分解
- GDI+在Delphi程序的应用:多帧(页)图像的分解与合成
- 数据挖掘 - 低秩矩阵恢复与非负矩阵分解
- python 奇异值分解小程序 分类:机器学习
- 恢复windows 右键菜单 新建BMP图像 Bitmap Image
- matlab图像恢复程序实例
- MFC opencv 中恢复图像(重新加载)
- matlab svd函数 矩阵的奇异值分解
- 并行计算奇异值分解--Jacobi旋转