-
Notifications
You must be signed in to change notification settings - Fork 7
MRI: Accelerated imaging in a non Cartesian trajectory
Here are routines to reconstruct MR images using an iterative solver. The purpose is to reconstruct images based on data encoded by either spatially linear or nonlinear gradient fields, including PatLoc or O-space imaging.
Note: Please refer to the page for the range for k-space coordinates and the strength of spatial encoding magnetic fields (gradients).
Data:
This code simulated the MRI acquisition and reconstruction using a radial trajectory.
The k-space coordinates were specified here.
%sampling of gradient-field encoded data
for g_idx=1:1
rr=[1:R{r_idx}(1):n_phase1];
k_r=((rr-1)-n_phase1./2)./n_phase1.*2;
theta=[0:R{r_idx}(2):(n_freq-1)]./n_freq.*pi;
k_freq=[];
k_phase1=[];
for theta_idx=1:length(theta)
k_freq=cat(2,k_freq,k_r.*cos(theta(theta_idx)));
k_phase1=cat(2,k_phase1,k_r.*sin(theta(theta_idx)));
end;
K_general=[k_phase1(:) k_freq(:)];
end;
This corresponds to the k-space sampling pattern shown below.
Here is the result of the reconstructed image over iterations.
Specifying the acceleration rate to be 2x2 down-samples the k-space data along both radial and angular directions by 2.
R={
[2 2],
};
Here is the result of the reconstructed image over iterations.
This code simulated the MRI acquisition and reconstruction using a radial trajectory.
The k-space coordinates were taken from here. We arbitrarily took the first leaf of the spiral and scaled it by 0.6.
%spiral trajectory from https://web.stanford.edu/class/rad229/Matlab.html
load('spiral.mat');
k_traj=ksp(:,1); %only the first leaf
...
%sampling of gradient-field encoded data
for g_idx=1:1
kx=real(k_traj);
ky=imag(k_traj);
kx=kx/(max(abs(real(k_traj)))).*.6;
ky=ky./(max(abs(imag(k_traj)))).*.6;
K_general=[kx(:) ky(:)];
end;
This corresponds to the k-space sampling pattern shown below.
Here is the result of the reconstructed image over iterations.