Giter Site home page Giter Site logo

motion-estimation-compressed-sensing-mri's Introduction

Motion-Estimation-Compressed-Sensing-MRI

This repository contains MATLAB code for B-spline-based compressed sensing (SPLICS) method presented in the paper J F P J Abascal, P Montesinos, E Marinetto, J Pascau, M Desco. Comparison of total variation with a motion estimation based compressed sensing approach for self-gated cardiac cine MRI in small animal studies. PLOS ONE 9(10): e110594, 2014. DOI: http://dx.doi.org/10.1371/journal.pone.0110594

SPLICS generalizes spatiotemporal total variation (ST-TV) by modelling the motion between consecutive frames into the reconstruction framework. Motion is estimated using a nonrigid registration method based on hierarchical B-splines. SPLICS solves the following problem

where the first term corresponds to TV, T is the temporal sparsity operator, F is the Fourier transform, u is the reconstrcuted image and f is undersampled data. The optimization problem is efficiently solved using the Split Bregman formulation.

This Demo

This demo compares TV, spatiotemporal TV and SPLICS on cardiac cine MRI data.

This version of the SPLICS comprises two steps: i) motion is estimated from a previous reconstruction (image given by TV in this example) to build a sparse temporal operator encoding motion, ii) image reconstruction taking into account the previously estimated motion operator. This process could be iterated for further improvement. We found that if the previous reconstruction had good quality, motion could be accurately estimated. A demo that iterates these two steps will be added to the toolbox soon.

Cardiac cine data set

Requirements

To run SPLICS method you need the following MATLAB toolbox:

Repository files

The repository contains the following files: Data and MATLAB functions

  • Demo_MotionEstimationCompressedSensingMRI_Sim.m: Demo that loads data and shows how to use TV, ST-TV and SPLICS methods
  • SpatialTVSB.m: TV method. Solved efficiently in the Fourier domain
  • SpatioTemporalTVSB.m: Spatiotemporal TV method. Solved efficiently in the Fourier domain
  • SPLICS.m: SPLICS method. Solved in the Image domain
  • ComputeSplineRegTwoDirectionsPoolDouble.m: Function to compute the registration between consecutive gates
  • dataCine8fr.mat: Absolute image of retrospective cardiac cine small-animal data (8 frames, healthy rat) (Acquired data can be found at http://biig.uc3m.es/cardiac-cine-data)
  • TParameters_x5,x7,x10.mat: Registration results needed for SPLICS method for different acceleration factors, precomputed with ComputeSplineRegTwoDirectionsPoolDouble.m
  • genPDF.m: Function to generate a pdf with polynomial variable density sampling, by Michael Lustig 2007, downloaded from (SparseMRI V0.2), http://web.stanford.edu/~mlustig/SparseMRI.html, see M. Lustig, D.L
  • genSampling_LIM.m: Monte-carlo algorithm to generate a sampling pattern. Modified from the original function by Michael Lustig 2007
  • maxSidePeakRatio.m: Computes the maximum sidelobe to peak ratio of point spread function for undersampled data. Used within genSampling_LIM.m

If you use this code, please reference the paper JFPJ Abascal et al. Comparison of total variation with a motion estimation based compressed sensing approach for self-gated cardiac cine MRI in small animal studies. PLOS ONE 9(10): e110594, 2014. DOI: http://dx.doi.org/10.1371/journal.pone.0110594. If you need to contact the author, please do so at [email protected], [email protected], [email protected]

motion-estimation-compressed-sensing-mri's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.