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

14 visualizaciones (últimos 30 días)
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.

Respuesta aceptada

Rik
Rik el 16 de Sept. de 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]));

Más respuestas (0)

Categorías

Más información sobre Geometric Transformation and Image Registration 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!

Translated by