reconstruct 3D image
5 次查看(过去 30 天)
显示 更早的评论
Hi, i have 20 of 2D images in dicom format and i want to reconstruct the 3D image. How can i do this in MATLAB? here i attached my code and i hope anyone could help me to fix it. Many thanks
a = dicomread ('brain_001.dcm')
mask = zeros(size(a));
mask(100:end-50,100:end-50) = 1;
bw = activecontour(a,mask,1000);
% for p=1:20
% filename = sprintf('brain_%03d.dcm', p);
% a(:,:,1,p) =double(dicomread(filename));
% end
c = im2double(bw);
shading flat
d = imgaussfilt3 (c,2);
for p=1:20
filename = sprintf('brain_%03d.dcm', p);
a(:,:,1,p) =double(dicomread(filename));
end
colormap(copper)
e = mesh(d.*100)
3 个评论
回答(1 个)
Ahmet Cecen
2016-11-10
编辑:Ahmet Cecen
2016-11-10
Too vague to answer directly, but here are two helpful tips:
1) Whatever you are doing, in the end you need to stack the images on the 3rd dimension not 4th.
NOT
a(:,:,1,p) =double(dicomread(filename));
BUT
a(:,:,p) =double(dicomread(filename));
2) Do not try to visualize 3D data in MATLAB, unless it is a surface. MATLAB figures (as far as I know) do not support pixel shading, so your figures will look very flat. Instead use Paraview. You can use this function to export your 3D matrix once you have that in MATLAB. Below is an example of a 3D reconstruction I visualized following the same procedure.Notice the depth/shading.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/175464/image.png)
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!