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

13 vues (au cours des 30 derniers jours)
May
May le 16 Sep 2017
Réponse apportée : Rik le 16 Sep 2017
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.

Réponse acceptée

Rik
Rik le 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]));

Plus de réponses (0)

Catégories

En savoir plus sur Geometric Transformation and Image Registration dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by