欠采样dMRI图像矩阵的低秩稀疏分解

欠采样dMRI图像矩阵的低秩稀疏分解_第1张图片

数据采样时,采用笛卡尔欠采样方式对空间编码数据进行随机采样,确定欠采样率,对式子3-4中的参数λ1和λ2进行选择,L+S 方法能更有效地去除动态图像中的运动伪影调节参数 λ1和 λ2能够调节优化模型中低秩成分和稀疏成分的权重,改变 λ1和 λ2取值会造成低秩矩阵和稀疏矩阵之间信息的混杂,从而影响低秩矩阵和稀疏矩阵的重建结果。但是由于我们关注的是动态磁共振图像的整体,而不是单独的动态前景或静态背景,改变 λ1和 λ2取值不会造成整体信息的丢失,因此重建算法对 λ1和 λ2的取值要求不严格。(当 λ1和 λ2取值改变较小时不会对重建图像质量造成明显的影响,但是当 λ1和 λ2取值变化较大时,会使重建图像的质量明显下降。)

共三个图像:分别是心脏灌注图像、心脏影像、腹部动态图像

  1. 对心脏灌注图像进行低秩稀疏分解(Example1)
  • 加载欠采样数据
  • 输入观测采样信号(即输入观测矩阵kdata)
  • 重建信号,其中所用到的算法是L+S重建(即函数[L,S] = lps_ist(param))
  1. L+S重建
  1. 输入参数

欠采样K空间编码算子(参数E)、稀疏变换算子(参数T)、奇异值阙值(参数λL)、稀疏值阙值(参数λS);

  1. 迭代循环

奇异值软阈值提取低秩成分;软阈值提取稀疏成分;

当(Lk+Sk-Lk-1+Sk-1)的范数<参数tol*(Lk-1+Sk-1的范数)停止迭代;

  1. 输出L、S的值。

算法流程步骤

Example1 图像低秩稀疏处理流程

欠采样dMRI图像矩阵的低秩稀疏分解_第2张图片

 

心脏灌注图像低秩稀疏处理

Example1 L+S重建算法流程图

欠采样dMRI图像矩阵的低秩稀疏分解_第3张图片

 欠采样dMRI图像矩阵的低秩稀疏分解_第4张图片

 

L+S重建流程图

程序部分

部分程序代码用法

  1. Function

用来定义函数,一般一个函数放在一个.m文件里。

假设定义比如最简单的一个函数如y=a+b。

例:function y=myfunction(a,b)

y=a+b;

保存为一个m文件myfunction.m,调用方式如下。

num=myfunction(3,4);

这样就可以由函数中的y=a+b得到num的值是3+4=7。

  1. Reshape 

b=reshape(a,m,n)与reshape(a,[m,n])

把矩阵a以列为单位,拆分,形成一个一列的向量,在间隔新的矩阵的行数,选值,形成新的要求的矩阵。若对向量b进行reshape也可还原成原矩阵b的结构。

  1. zeros(m,n)

生成m×n全零阵

  1. [U,S,V]=svd(A)

参数说明:A:要进行SVD分解的矩阵,且A不必为方阵。

概括地说,U、S、V返回SVD的分解的结果;

U:A的奇异向量组成的矩阵,AA’的正交单位特征向量组成U。

S:对角矩阵,对角元素是A的奇异值,非负且按降序排列。

V:A的奇异向量组成的矩阵,A’A的正交单位特征向量组成V

  1.  Diag

X = diag(v,k)

v为向量,X为矩阵

以向量v的元素作为矩阵X的第k条对角线元素,当k=0时,v为X的主对角线;当k>0时,v为上方第k条对角线;当k<0时,v为下方第k条对角线。

例:

>> v=[1 2 3];

>> x=diag(v,-1)

x =

     0     0     0     0

     1     0     0     0

     0     2     0     0

     0     0     3     0

v=diag(X,k)

X为矩阵,v为向量

取矩阵X的第K条对角线元素为向量v

例:

>> aa=randn(3,3)

aa =

   -1.3282   -1.7925    0.4092

   -0.3803    0.5858   -0.4684

   -0.9560    0.7356    0.8292

>> diag(aa)

ans =

   -1.3282

    0.5858

    0.8292

>> diag(aa,1)

ans =

   -1.7925

   -0.4684

>> diag(aa,2)

ans =

0.4092

(6)  Abs

数值的绝对值和复数的幅值

基本用法:y=abs(x)函数对数组元素进行绝对值处理的函数。

函数的定义域包括复数。

对于复数x=a+b*i,有abs(x)=a2+b2。

(7)  Isnan

判断数组中的元素是否为无穷大

tf=isnan(A):返回一个与A相同维数的数组,若A的元素为NaN(非数值),在对应位置上返回逻辑1(真),否则返回逻辑0(假)。对虚数z,如果z的实部或虚部都是NaN,那么isnan函数返回逻辑1,如果实部和虚部都是inf,则返回逻辑0。

(8) TempFFT

实现三个维度的时间FFT变换

调用子程序

主程序调用此函数[L,S] = lps_ist(param),此函数的定义位于 lps_ist.m 文件中,,通过修改文件名可以实现直接被调用.m文件。

其功能即是实现欠采样数据的L+S重建,在实验流程图中有很详细的介绍。

程序实现

所给参考代码所处的图像如下:

欠采样dMRI图像矩阵的低秩稀疏分解_第5张图片

心脏灌注图像

欠采样dMRI图像矩阵的低秩稀疏分解_第6张图片 

 

心脏影像

 

你可能感兴趣的:(矩阵,线性代数,matlab)