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)
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.
* more loose dimension-detection
Smoothed transition between measured signal and reconstructed data to reduce Gibbs ringing.