File Exchange

image thumbnail

MRI Partial Fourier reconstruction with POCS

version 1.2 (11.1 KB) by

Fast and robust reconstruction of Cartesian partial Fourier MRI data with POCS



View License

POCS (Projection Onto Convex Sets) is often used to reconstruct partial Fourier MRI data.
This implementation works with 2D or 3D data on a Cartesian grid. It is optimized for speed and automatically detects the asymmetrically sampled dimension.

Input data is generally assumed to be a multi-channel k-space signal, with the first dimension for the channels (or coils). You can, however, pass a pure 2D array.

[im, kspFull] = pocs( kspIn, iter, watchProgr )

=== Input ===

kspIn: Reduced Cartesian MRI Data-Set
Any dimension may be reduced,
but only one reduction dim. is allowed due to Physics/Math.

Allowed shapes for kspIn are...
... Ny x Nx
... Nc x Ny x Nx
... Nc x Ny x Nx x Nz

With Nc == number of receive Channels / Coils.

kspIn can either be a zero-padded array, so the partial Fourier property is obvious.
Or kspIn can be the measured data only, then we try to find k-space centre automagically
and create a zero-padded array with the full size, first.
Errors are however more likely to occur in the latter case.

iter: No. of iterations
(optional) default: iter = 20
Try on your own if larger iter improves your results!

watchProgr: true/false; Whether the progress of the reconstruction should
(optional) be monitored in an image window.
In 3D data, only the central partition will be shown.

=== Output ===

im: Reconstructed Images (channels not combined)

kspFull: Reconstructed full k-space data (just the Fourier transformed im)

Comments and Ratings (3)

Toygan KILIÇ

Zong Shenyan

Thanks for sharing!I met a question when I tried to use this function. For a 256×256 matrix, I filled in zeros in 253 columns, and then called this function to reconstruct. However, an error happened. It showed
"Error using pocs>findSymSampled (line 681)"
"Symmetric part of k-space out of bounds."
"The maximum k-space intensity is at index 1 whereas it should be centred => near 128."
"The way, zerofilling was done is probably wrong."
"Check your input k-space."
I don't know whether your codes is suitable to reconstruct this partial kspace data.
It is important for me to finish partial Fourier reconstruction using 256×256 matrix with 253-columns zeros.

Sen Jia



* more loose dimension-detection
* better before/after screenshot


Smoothed transition between measured signal and reconstructed data to reduce Gibbs ringing.
Added example script

MATLAB Release
MATLAB 8.0 (R2012b)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Win prizes and improve your MATLAB skills

Play today