MRI Slice image reconstruction
38 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Roshtha
el 17 de Mzo. de 2016
Respondida: FELIPE COSTA
el 26 de Nov. de 2019
Hello all,
I have an MRI K-Space data 320 x 320 x 256 x 8 (4D complex double) from < mridata.org > . The data represents 320 x 320 K-Space of 256 slices from 8 channels. I am trying to reconstruct images for each slice. Here is the matlab code I tried:
% Version - 1
kspacedata= kspacefile.kdata;
imRef = ifftshift(ifftn(kspacedata));
imSOS = squeeze(sqrt(sum( abs(imRef).^2, 4))); % sum-of-squares to combine all channels
% Version - 2
kspaceSlicedata = kspacedata(:,:,100,:);
imSliceRef = ifftshift(ifftn(kspaceSlicedata));
imSliceSOS = squeeze(sqrt(sum(abs(imSliceRef).^2, 4))); % sum-of-squares to combine all channels
% Plotting
figure;
subplot(1,2,1); imagesc(imSOS(:,:,100));title('Version - 1');axis image; colormap(gray);
subplot(1,2,2); imagesc(imSliceSOS);title('Version - 2');axis image; colormap(gray);
In Version - 1, I take inverse transform on entire kspace data and plot image data corresponding to slice 100. In Version - 2, I take kspace data corresponding to slice 100 and do inverse transform on this kspace and plot the image data. Here is the output images I obtained.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/158011/image.png)
I thought both versions will reconstruct the same way. But images appeared different. How can I take kspace data corresponding to one slice and perform inverse transform to reconstruct slice image?
Thanks.
0 comentarios
Respuesta aceptada
zoey yang
el 21 de Sept. de 2017
the version 1 is 3D FFT, and version 2 is 2D FFT. It is about the way you acquired data. version 1: encode the entire 3D space and acquire the data to fill the k space. version 2: encode the slice and acquire the slice data then you encode the next slice and acquire data. That's the difference.
0 comentarios
Más respuestas (2)
Whae five
el 21 de Mayo de 2017
https://www.mathworks.com/help/images/examples/exploring-slices-from-a-3-dimensional-mri-data-set.html
0 comentarios
FELIPE COSTA
el 26 de Nov. de 2019
I tested here with another dataset and I was having the same problem. The function ifftn can be used for 3 or more dimensions. So it worked in your first version. Your second version is a 2D, so you must use ifft2 instead.
0 comentarios
Ver también
Categorías
Más información sobre MRI en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!