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

조회 수: 13 (최근 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 CenterFile Exchange에서 Geometric 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