What kind of method should be used to stack 2D CT slices to get a 3D image?

3 ビュー (過去 30 日間)
May
May 2017 年 9 月 16 日
回答済み: Rik 2017 年 9 月 16 日
I am starting to study 3D reconstruction from multiple CT slices. I used the following coding to create a 3D array :
X = zeros(512,512,n);
for i = 1:n
fileName = ['D:\Image Folder\', srcFiles(i).name];
I=imread(fileName);
X(:,:,i) = I;
end
I would like to know just stacking 2D images is enough to create a 3D image or not. Do I need to use some algorithms e.g - interpolation (I am not sure)? And for visualization, what kind of method is used for the following coding?
load X.mat; %%3D array
map = hsv(90);
XR =Y;
Ds = smooth3(XR);
hiso = patch(isosurface(Ds,5),'FaceColor','blue','EdgeColor','none');
hcap = patch(isocaps(XR,5),'FaceColor','interp','EdgeColor','none');
colormap(map)
daspect(gca,[1,1,.4])
lightangle(305,30);
fig = gcf;
fig.Renderer = 'zbuffer';
lighting phong
isonormals(Ds,hiso)
hcap.AmbientStrength = .6;
hiso.SpecularColorReflectance = 0;
hiso.SpecularExponent = 50;
ax = gca;
ax.View = [215,30];
ax.Box = 'On';
axis tight
title('Original Data');
Please kindly help me to answer it. Thank you very much.

採用された回答

Rik
Rik 2017 年 9 月 16 日
MRI data can be discontinuous, but CT is almost always well-behaving, so you won't need interpolation. You do need to make certain the order of the slices is correct: the instance number in the dicom header will tell you the slice position.
As for that visualization, have a look at the documentation for smooth3, isosurface and patch.
I would advice you to also have a look at the montage function. You can use that like this:
montage(permute(X,[1 2 4 3]));

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeGeometric Transformation and Image Registration についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by