奇异值(Singular Value)往往对应着矩阵中的隐含的重要信息,且重要性与奇异值大小呈正相关。

关于奇异值的知识,可以参考:机器学习中的数学(5)-强大的矩阵奇异值分解(SVD)及其应用

一般来说,较少的奇异值就可以表达一个矩阵很重要的信息,所以我们可以舍掉一部分奇异值来实现压缩。

在图像处理中,奇异值小的部分往往代表着噪声,因此可以借助SVD算法来实现去噪。

选取图像如下,


可以看到,人物脸上的雀斑是我们需要去掉的噪声。

分别取前0.5%、1%、5%的奇异值,得到的图像依次是:

  

可以看到,随着奇异值的增多,图像的特征也逐渐显现出来。

奇异值取前10%时,去噪效果更好:



这样就实现了对图像简单的降噪处理。

python代码如下:

from numpy import *
from numpy import linalg as la
def svd_denoise(img):u, sigma, vt = la.svd(img)h, w = img.shape[:2]h1 = int(h * 0.1) #取前10%的奇异值重构图像sigma1 = diag(sigma[:h1],0) #用奇异值生成对角矩阵u1 = zeros((h,h1), float)u1[:,:] = u[:,:h1]vt1 = zeros((h1,w), float)vt1[:,:] = vt[:h1,:]return u1.dot(sigma1).dot(vt1)

需要注意的是,linalg中的svd 函数返回u、sigma、yt,而sigma是一个由大到小排列的一维向量,而在后续的处理中需要用numpy中的diag函数将其变成一个对角矩阵。

奇异值分解(SVD)实现简单的图像降噪处理相关推荐

  1. 奇异值的物理意义是什么?强大的矩阵奇异值分解(SVD)及其应用

    作者:郑宁 链接:https://www.zhihu.com/question/22237507/answer/53804902 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...

  2. 奇异值分解(SVD) --- 几何意义

     奇异值分解(SVD) --- 几何意义 2013-12-16 22:33:42 分类: 大数据 PS:一直以来对SVD分解似懂非懂,此文为译文,原文以细致的分析+大量的可视化图形演示了SVD的几何意 ...

  3. 【机器学习】这次终于彻底理解了奇异值分解(SVD)原理及应用

    奇异值分解(Singular Value Decomposition,以下简称SVD)是在机器学习领域广泛应用的算法,有相当多的应用与奇异值都可以扯上关系,它不光可以用于降维算法中的特征分解,比如做f ...

  4. 关于奇异值以及奇异值分解SVD的思考

    前言: SVD作为一个很基本的算法,在很多机器学习算法中都有它的身影,特别是在现在的大数据时代,由于SVD可以实现并行化,因此更是大展身手.SVD的原理不难,只要有基本的线性代数知识就可以理解,实现也 ...

  5. 【AI绘图学习笔记】奇异值分解(SVD)、主成分分析(PCA)

    这节的内容需要一些线性代数基础知识,如果你没听懂本文在讲什么,强烈建议你学习[官方双语/合集]线性代数的本质 - 系列合集 文章目录 奇异值分解 线性变换 特征值和特征向量的几何意义 什么是奇异值分解 ...

  6. 矩阵特征值分解与奇异值分解(SVD)含义解析及应用

    原文链接:http://blog.csdn.net/xiahouzuoxin/article/details/41118351 特征值与特征向量的几何意义 矩阵的乘法是什么,别只告诉我只是" ...

  7. 机器学习-Sklearn(第三版)Day4 主成分分析PCA与奇异值分解SVD

    目录 一.简介 什么是维度 sklearn中的降维算法 二.PCA与SVD 0.如何实现降维算法 思考:PCA和特征选择技术都是特征工程的一部分,它们有什么不同? 1.重要参数n_components ...

  8. tf 如何进行svd_一步步教你轻松学奇异值分解SVD降维算法

    摘要:奇异值分解(singular value decomposition)是线性代数中一种重要的矩阵分解,在生物信息学.信号处理.金融学.统计学等领域有重要应用,SVD都是提取信息的强度工具.在机器 ...

  9. 奇异值分解(SVD)原理详解及推导 (转)

    很不错的文章,适合入门. 转载出处http://blog.csdn.net/zhongkejingwang/article/details/43053513 在网上看到有很多文章介绍SVD的,讲的也都 ...

最新文章

  1. CNDO-INTGRL-SS-AINTGS-斯莱特轨道指数
  2. 第一夜 主公说啥俺做啥
  3. Microsoft MVC3 框架
  4. (int),Int32.Parse,Convert.ToInt3…
  5. django+echarts+ajax异步+显示优化--基本例子
  6. 基于Visual C++2013拆解世界五百强面试题--题8-数组的排序和查找
  7. [健康]生病了绝对不能吃的东西
  8. java计算交点高程_javascirpt怎样模仿块级作用域(js高程笔记)
  9. 偏微分方程数值解法python_微分方程数值方法和偏微分方程有什么区别吗?
  10. 3ds Max中Vray分布式渲染
  11. 怎样全面了解应聘者的实力
  12. c语言两矩阵相乘算法,用c语言实现两个矩阵相乘怎么做?
  13. C#里的InputBox
  14. react 脚手架创建后暴漏配置文件 运行yarn eject 报错 (已解决)
  15. 用计算机技术辅助语文教学,计算机技术相关论文范文文献,与计算机辅助语文教学相关毕业论文模板...
  16. Ubuntu18.04系统(优化工具+搜狗输入法+wine+微信+拨号上网)
  17. 【动漫整理】好番推荐(含微量剧透)
  18. Excel如何为单元格内的部分文字添加超链接
  19. 《金字塔原理》听书笔记
  20. Protege Tutorial

热门文章

  1. 乐观锁和悲观锁的底层实现原理
  2. VirtualBox安装轻量级Linux系统Boot2Docker
  3. 百度seo点击工具_百度站长平台及百度统计工具对SEO优化有什么作用?
  4. 微软摊牌了:ChatGPT的真正对手在我国
  5. 栾加芹:中医思维模型与现代数学
  6. 调通sina33m下的ap6181版本(分色排版)V1.0
  7. 试玩UML User Mode Linux
  8. [剑指offer]JT19---顺时针打印矩阵(正方形打野)
  9. malloc函数及memset函数用法详解
  10. rancher安装elasticsearch6.4.0的head插件