Image Reconstruction Tools (MATLAB)

Hosted on Github, a set of tools for MR image reconstruction, including the encoding operators below, as well as operators for sensitivity encoding and B0/off-resonance encoding using multi-frequency interpolation. Included in the recon-tools-matlab repository are also various functions for iterative and constrained image reconstruction, which includes approaches based on ADMM, the Chambolle-Pock primal-dual algorithm, FISTA, POGM, and Bregman methods.

MR Linear Encoding Operators

This is a MATLAB-based set of classes that define linear encoding forward operators for MR imaging. These are primarily useful in iterative reconstruction algorithms. The classes implement forward and adjoint transforms, and for the non-Cartesian cases, they implement Toeplitz embedding for faster iterative evaluation. The following classes are included:

FFT-based Cartesian sampling, with coil sensitivies and B0 inhomogeneity effects
NUFFT-based non-Cartesian sampling, with Toeplitz embedding and coil-sensitivity encoding (uses J. Fessler’s NUFFT)
DFT-based non-Cartesian sampling, with Toeplitz embedding and coil-sensitivity encoding (no external dependencies, not recommended for 3D problems)

GRAPPA Reconstruction Tools

These are MATLAB-based tools for performing 2D or 3D GRAPPA parallel imaging reconstructions, estimating GRAPPA g-factor maps, and simultaneous multi-slice unaliasing GRAPPA methods. These use and extend the same framework as the GRAPPA tutorial provided here, and should all be completely self-contained without any external dependencies. Included are:

2D or 3D regular GRAPPA reconstruction
Same as above, but performs unaliasing in image space, and can provide analytical g-factor noise amplification maps
Slice-GRAPPA simultaneous multi-slice unaliasing
Split-Slice (LeakBlock) GRAPPA simultaneous multi-slice unaliasing

Sparse and Regularised MR Image Reconstruction

These are various tools for solving sparse and regularised MR image reconstruction problems, using first order iterative methods. The code is written to work with the encoding operators above. Tools for solving the following problems are included here:

L2 finite-difference regularised SENSE
conjugate gradient solver
Synthesis-based compressed sensing (L1 constraint)
fast iterative soft thresholding algorithm (FISTA)
Spatio-temproal total variation compressed sensing
fast gradient projection
split-Bregman iterations
Spatio-temporal second order total generalised variation regularisation
Chambolle-Pock primal-dual method
Patch-based sparse dictionary learning for under-sampled MR image reconstruction.
Fully self-contained package
k-SVD and orthogonal matching pursuit for dictionary learning and sparse coding.

Dynamic k-t MR Image Reconstruction

This is a simple example of a sensitivity encoded, non-Cartesian under-sampled k-t MRI reconstruction problem. Examples include both reconstructions using linear constraints (L2-based finite differences) and non-linear low-rank constraints (using convex singular value soft thresholding and heuristic, non-convex hard thresholding approaches). The examples are written to work with the MR linear encoding operators that can be found above. Included in the example:

Linear reconstructions
conjugate gradient (cg) SENSE
cg SENSE with L2- spatio-temporal finite difference regularisation
Non-linear low-rank reconstructions
singular value soft-thresholding (convex)
hard thresholding with shrinkage (non-convex)