**DLMRI-Lab: Dictionary
Learning MRI Software**

The following is a very brief description of the MATLAB files, which can be
used to simulate the various experimental scenarios in our DLMRI Paper [1].
Please read the specific MATLAB files for detailed information about them. All
our functions assume undersampling on a Cartesian grid.

[1] S. Ravishankar and Y. Bresler, “MR image reconstruction from
highly undersampled *k*-space data by dictionary
learning,” IEEE Trans. Med. Imag., vol. 30, no. 5, pp. 1028–1041, 2011.

** MAIN AND SIMULATION CODE**:

1. DLMRI.m - accepts raw undersampled (complex) k-space
data as input along with sampling mask and produces a DLMRI reconstruction.

2. DLMRIDemoComplex.m - accepts a complex-valued MR image and a Fourier/DFT k-space sampling
mask (Center
of mask is center of k-space) as inputs and simulates the performance of the DLMRI algorithm
with/without noise. This code calls DLMRI.m during
execution.

3. DLMRIDemoReal.m – accepts a real-valued MR magnitude image and a DFT sampling mask (Center
of k-space corresponds to corners of mask here) as inputs and simulates the performance of the
DLMRI algorithm with/without noise for this special (synthetic) case. This code
includes a version of the DLMRI algorithm code adapted to the real-valued
(non-negative) reconstruction case.

__PARAMETER SETTINGS__**:**

All the above matlab files have various
parameters that need to be carefully/optimally set at the time of use. Examples
of parameter values are given in the Matlab files
(some example values can also be found in our DLMRI Paper [1]), but these may
not necessarily provide the best or even acceptable performance for your data.

__DATA__**: **

The folder - SamplingMasksDLMRI_TMI - contains
the sampling masks used in the various figures in the paper. The sampling masks
are either .mat files or images. The center of k-space may correspond to either
the center of the mask, or the corners of the mask (note that the center of
k-space always has a higher density of sampled points!).

The image 'BMR2.jpg' is an image used in the simulations of the paper. This
image was previously available online. However, it seems currently unavailable
and is included here for researchers.

** OTHER FILES**:

Note that the following files may be exact or modified versions of the matlab files in the K-SVD package available from Michael Elad's website - http://www.cs.technion.ac.il/~elad/software/

4. KSVD.m, KSVDC.m, KSVDC2.m - various implementations of
the K-SVD algorithm for real/complex data.

5. OMP.m, OMPerr.m, OMPerrn.m -
Implementations of orthogonal matching pursuit for sparse coding and dictionary
learning.

6. my_im2col.m -
generates image patches.

The K-SVD algorithm is presented in the following paper, which should be
cited when using the files listed under 4,5, and 6
above.

[2] M. Aharon, M. Elad, and A. Bruckstein, “K-SVD: An algorithm for designing overcomplete dictionaries for sparse representation,” *IEEE
Transactions on signal processing*, vol. 54, no. 11, pp. 4311–4322, 2006.