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 . Please read the specific MATLAB files for detailed information about them. All our functions assume undersampling on a Cartesian grid.
 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. 10281041, 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.
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 ), but these may not necessarily provide the best or even acceptable performance for your 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.
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.
 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. 43114322, 2006.