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

11 Ansichten (letzte 30 Tage)
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.

Akzeptierte Antwort

Rik
Rik am 16 Sep. 2017
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]));

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by