フィルターのクリア

MRI Slice image reconstruction

38 ビュー (過去 30 日間)
Roshtha
Roshtha 2016 年 3 月 17 日
回答済み: FELIPE COSTA 2019 年 11 月 26 日
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.
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.

採用された回答

zoey yang
zoey yang 2017 年 9 月 21 日
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.

その他の回答 (2 件)

Whae five
Whae five 2017 年 5 月 21 日
https://www.mathworks.com/help/images/examples/exploring-slices-from-a-3-dimensional-mri-data-set.html

FELIPE COSTA
FELIPE COSTA 2019 年 11 月 26 日
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.

カテゴリ

Help Center および File ExchangeMRI についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by