原理上面两篇文章已经很清楚了,我在按自己的理解介绍一下吧。

通常矩阵分解如svd或其他什么的分解都会把矩阵分解为有正有负的矩阵,而他的这种分解方法就把矩阵完全分解成只有正数的矩阵,因为现实世界中如图像,负数是没什么意义的,所以这种只分解为正数矩阵的分解方法就很有意义了,要不也不会发在nature这样牛B的杂志上。

这里是分解的公式:

这里r是分解矩阵的秩,V是原矩阵的一个近似,W与H就是分解而成的两个矩阵。

下面是W和H的求法,是一个迭代算法,初始的W与H是随机的就行了:

下面是代码:

clear all;

close all;

clc;

V=double(imread('lena.jpg'));

imshow(mat2gray(V));

[i u]=size(V); %计算V的规格

r=100; %设置分解矩阵的秩

W=rand(i,r); %初始化WH,为非负数

H=rand(r,u);

maviter=100; %最大迭代次数for iter=1:maviter

W=W.*((V./(W*H))*H'); %注意这里的三个公式和文中的是对应的

W=W./(ones(i,1)*sum(W));

H=H.*(W'*(V./(W*H)));

endimg_V=W*H;

figure;

imshow(mat2gray(img_V));

下面是原图和重构后的效果,如果秩和迭代次数越大,那么重构后的图越接近原图:

原图

重构图

因为这个是看自己相关方向论文偶然在一篇论文的引用中看到了这个算法,所以就稍微了解了一下,肯定有不妥的地方,就这样吧。

非负矩阵分解 java_matlab练习程序(非负矩阵分解)相关推荐

  1. 稀疏表示与非负矩阵分解(3)矩阵分解基本原理和chirp信号处理的简单python实现

    稀疏表示与非负矩阵分解(3)矩阵分解基本原理和chirp信号处理的简单python实现 1. 非负矩阵分解 2. 时频图制作 2.1 时频图的指标与方法比较 2.1.1 时间分辨率和频域分辨率 2.1 ...

  2. 小波图像分解与重构程序存在的问题与解决办法

    (思远老师的好文章留着) 转载自http://blog.csdn.net/chenyusiyuan/article/details/2513126 去年11月发布了一系列有关小波变换和图像处理的文章, ...

  3. 用MATLAB实现plu分解,编制计算给定矩阵 A 的 LU 分解和 PLU 分解的通用程序

    用VB编写一个程序,计算出给定的10*10矩阵(存放在二维数组A中)每行元素的最大值和每列元素的最小值 ModuleModule1SubMain()DimA(,)AsInteger={{1,2,3,4 ...

  4. python分解质因数递归_Python 正整数分解质因数具体实现附代码

    时间:2019-02-02 概述:分解质因数 Python将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5.解题思路分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤 ...

  5. qr分解求线性方程组_矩阵分解

    矩阵分解 1. 矩阵的三角分解 1.1 高斯消去法解线性方程组 在聊起矩阵分解之前,先看一下我们小学二年级就学过的高斯消去法解线性方程组,其主要思想就是:将方程组写作写作增广矩阵(A|b)的形式,然后 ...

  6. 矩阵的LU分解,LU分解的推广,LU分解有什么意义,为什么要用LU分解。

    一点点数学!开干! 参考书籍:<矩阵分析与计算>李继根 张新发编著 矩阵的LU分解: LU分解定理:如果n阶方阵A的各阶顺序主子式≠0(K=1.2.3,-,n),即A的各阶顺序主子式矩阵都 ...

  7. 解方程AX=b与矩阵分解:奇异值分解(SVD分解) 特征值分解 QR分解 三角分解 LLT分解

    文章目录 1. 前言 2. LU三角分解 3. Cholesky分解 - LDLT分解 4. Cholesky分解 - LLT分解 5. QR分解 6. 奇异值分解 7. 特征值分解 1. 前言 本博 ...

  8. 视觉SLAM中的数学——解方程AX=b与矩阵分解:奇异值分解(SVD分解) 特征值分解 QR分解 三角分解 LLT分解

    前言 本博客主要介绍在SLAM问题中常常出现的一些线性代数相关的知识,重点是如何采用矩阵分解的方法,求解线性方程组AX=B.主要参考了<计算机视觉--算法与应用>附录A以及Eigen库的方 ...

  9. 任意整数有几种分解方法 java_整数的分解方法

    腾讯 2017春招真题 题目 如下示例: 1:共0种分解方法: 2:共0种分解方法: 3:3=2+1 共1种分解方法: 4:4=3+1=2+1+1 共2种分解方法: 5:5=4+1=3+2=3+1+1 ...

  10. 矩阵分解_满秩分解、三角分解、QR分解、奇异值分解

    矩阵的因子分解 满秩分解 分解方法 满秩分解例题 三角分解(LU分解) 分解方法 三角分解例题 LDU分解 分解方法 LDU分解例题 正交三角分解(QR分解) 分解方法 QR分解例题 奇异值分解(SV ...

最新文章

  1. EasyUI权限系统
  2. linux 垃圾桶快捷键,Linux的基本:为网上邻居配个垃圾桶
  3. tensorflow2中如何设置GPU的使用
  4. 4.2.4 磁盘的管理
  5. sohu读博——周忆清
  6. android.support.v7 fragme,打造最强RecyclerView侧滑菜单,长按拖拽Item,滑动删除Item
  7. 一步一步学ROP之linux_x64篇
  8. python自动打开浏览器下载zip,并且提取内容写入excel
  9. CNN进行新闻文本分类代码实战,包含分类文本
  10. ffmpeg 源代码简单分析 : avcodec_decode_video2()
  11. ffplay for mfc 代码备忘
  12. FMX控件演示(FireMonkey ControlsDemo)
  13. python培训 首选马哥教育
  14. web网关_配置手册
  15. 3D Food Printing【3D食物打印】
  16. Java入门教程笔记07(面向对象基础)
  17. 如何保证GIS图件中字体大小是所要求的
  18. VMware虚拟机安装macOS系统
  19. 【软件测试】linux命令-引用符号(反斜杠\、单引号‘‘、双引号““)
  20. 厦门one_理想汽车称厦门事故系因用户驾驶不慎碰撞所致,曾现多次起火情况

热门文章

  1. linux中rpm命令,linux中rpm命令使用介绍
  2. B站左程云算法笔记06
  3. 互联网产品经理的工作职责
  4. 大数据技术之Spark入门(一)概述
  5. 谷歌浏览器安装插件的方法
  6. 今天,我想和你聊聊读研这件事
  7. ubuntu局域网服务器搭建网站,ubuntu搭建局域网dns服务器
  8. SSD目标检测算法——通俗易懂解析
  9. JAVA实现生成GIF动态图加文字(完整版无License带锯齿优化处理)
  10. Springboot封装的好的发送post请求的工具类