广义自动校准部分并行采集。

pygrappa的Python项目详细描述


关于

grappa是一种流行的并行成像重建算法。 不幸的是,没有很多易于使用的python实现 有,所以我决定发布这个简单的。

pygrappa模块中包含以下内容:

  • grappa()
  • tgrappa()
  • slicegrappa()
  • splitslicegrappa()

安装

这个包是在ubuntu 18.04中使用python 3.6.8开发的。那是 更不用说它在其他事情上是行不通的。你应该提交一个问题 当它不能像它说的那样工作时。整个想法是 有一个易于使用、pip可安装的grappa模块,所以让我们尝试 做那件事。

一般来说,在虚拟环境中工作是个好主意。我 像这样创建和激活我的:

python3 -m venv ~/Documents/venvs/pygrappa
source ~/Documents/venvs/pygrappa/bin/activate

更多信息可在VENV文档中找到: https://docs.python.org/3/library/venv.html

在基于unix的平台下安装应该很容易:

pip install pygrappa

有关在Windows下安装的详细信息,请参见installation.rst。

用法

pygrappa.grappa()使用欠采样的k空间数据调用,并且 校准数据(通常是 K空间)。k-空间中的未采样点应正好为0:

frompygrappaimportgrappasx,sy,ncoils=kspace.shape[:]cx,cy,ncoils=calib.shape[:]res=grappa(kspace,calib,kernel_size=(5,5),coil_axis=-1)sx,sy,ncoils=res.shape[:]

如果校准数据在K空间数据中,只需提取它(使 一定要调用ndarray.copy()方法,如果使用引用可能会中断 原始K空间数据):

frompygrappaimportgrappasx,sy,ncoils=kspace.shape[:]# center 20 lines are ACSctr,pd=int(sy/2),10calib=kspace[:,ctr-pd:ctr+pad,:].copy()res=grappa(kspace,calib,kernel_size=(5,5),coil_axis=-1)sx,sy,ncoils=res.shape[:]

具有相同接口的非常相似的grappa实现可以是 这样叫:

frompygrappaimportcgrappares=cgrappa(kspace,calib,kernel_size=(5,5),coil_axis=-1)

此函数使用的代码与python grappa()的代码大部分相同 实现,但有某些部分用C++编写,并全部编译 使用cython。它的速度大约是原来的两倍,但被认为是 实验性的。它可能会成为默认的图形 在将来的版本中实现。

TGRAppa不需要校准数据,可以称为:

frompygrappaimporttgrappasx,sy,ncoils,nt=kspace.shape[:]res=tgrappa(kspace,calib_size=(20,20),kernel_size=(5,5),coil_axis=-2,time_axis=-1)

必须提供校准区域大小和内核大小。这个 将以贪婪的方式构建校准区域:一次 花费了足够的时间来创建整个acs,grappa 将运行。tgrappa使用cgrappa实现 速度。

slice grappa()是一个切片grappa实现,可以调用 例如:

frompygrappaimportslicegrappasx,sy,ncoils,nt=kspace.shape[:]sx,sy,ncoils,sl=calib.shape[:]res=slicegrappa(kspace,calib,kernel_size=(5,5),prior='sim')

kspace假定为类似于sms的多个折叠切片和 需要分开的多个时间帧。校准 相同大小/分辨率的单个切片的kspace数据。之前的 告诉slice grappa算法如何构造源 即,如何求解t=s w,其中t是目标(校准数据), s是源,w是grappa权重。prior='sim'创建 S通过模拟SMS获取,即S=和(Calb,Seligyx轴)。 previor=“kspace”使用来自kspace数据的第一个时间帧, 即,S=K空间[第一时间帧]。结果是一个包含 kspace中所有时间帧的所有目标切片。

类似地,split slice grappa可以这样调用:

frompygrappaimportsplitslicegrappaasssgrappasx,sy,ncoils,nt=kspace.shape[:]sx,sy,ncoils,sl=calib.shape[:]res=ssgrappa(kspace,calib,kernel_size=(5,5))# Note that pygrappa.splitslicegrappa is an alias for# pygrappa.slicegrappa(split=True), so it can also be called# like this:frompygrappaimportslicegrappares=slicegrappa(kspace,calib,kernel_size=(5,5),split=True)

另请参见示例模块。它有几个脚本显示 用法。DocStrings也是一个很好的资源-请查看它们 可能的参数和用法信息。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java IntelliJ找不到依赖项选项卡   java向字符串数组string[]添加元素并在Junit中测试结果   如何在eclipse中获取活动java项目的名称   如何使用java在mysql中插入时间   java ArrayList更新了插入一行,但Jtable仍然没有刷新   如何在JavaSwing中命名坐标(点)   java Matcher/模式不打印   java错误地设置了arraylist   使用UsernamePasswordCredential提供程序的java列表Azure AD   java在HTTP请求中设置UTC时间   未加载事件:jquery完整日历Java集成   java Maven插件依赖项无法从内部repo解析依赖项   Maven更新重置Java版本   java如何向中添加图片。带有Apache POI XWPF的docx,但不指定其大小   Java最大函数递归