MATLAB Answers


3D volume visualization through 2D slices of Tomography

Asked by Haimon
on 14 Aug 2013
Accepted Answer by Matt J

I have some 2D images - reconstruction or transaxial slices of tomography - that I want to "put together" so I can build a 3D volume.

Does anyone know how to?




No products are associated with this question.

1 Answer

Answer by Matt J
on 15 Aug 2013
 Accepted answer

You could use the CAT command, e.g.,



Matt J
on 18 Aug 2013

Only you understand the purpose of any of this. I don't quite understand why it makes sense to assign a different color scale to different slices in a volume. If you switch to sagittal or coronal slices, it will look crazy.

on 19 Aug 2013

The color scale is the same for all new slices.

My purpose is simple: I have a grayscale image, which is - in physics - directly related to the attenuation coefficient of my sample in relation to radiation, in this case, X-rays.

However attenuation coefficient depends on density and atomic number. So using some equations, I can obtain new images, one that is related to density and other related to atomic number. The color scale is just so I can know which colors assign to which values of density or atomic number.

To sum it up, I need this new color scale so I can identify those tiny variations of my variables. I don't really care how strange it may look, I just want to obtain my slices and my volume. The slices I have already obtained. I just need my volume to finish it.

I can even change my scale to make things easier, as long as I can identify, through a new scale, which colors are related to which values.

Matt J
on 21 Aug 2013

I think the bottom line is that the 3D volume data that you feed to the 3D viewer code must not be pre-divided into color components. Each slice of the volume A(:,:,i) must represent an intensity distribution only. However, the intensity does not necessarily have to be as originally reconstructed from the tomograph. It sounds like you could apply all the post-transformations you mention to the 3D intensity distribution and then call that final 3D array of intensities your input volume to the viewer.

If f I've understood it right, then the bottom-line solution is simply to avoid intermediately storing the data as bitmap. The bitmap format splits the image into color channels, which it sounds like you don't need. So, store the transformed volume data to a .mat file instead.

Join the 15-year community celebration.

Play games and win prizes!

Learn more
Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!