How to create 3D from 2D slices?

Operating system: MacOS
Slicer version:4.11.20210226
Expected behavior:
Actual behavior:
I want to reconstruct 10 2D images to 3D. I have tried MatLab but I am having difficulties interpolating the gaps in between the adjacent slices. A colleague told me to try Slicer but I don’t know how to navigate the app. Here is the link to the slices:Dropbox - OCT_42_pix - Simplify your life
I want to recreate a solid 3D. Thanks

To help us understand the context, here are few additional questions:

  • How were these images acquired ? Are these “Optical Coherence Tomography” images ?
  • What should be the spacing in mm between slices ?
  • Is the plan to use 3d printing ? Do you expect to generate a surface model ?

Edit: It looks like these images where generated using Matlab or similar ? It seems like you could use a different plotting function to generate a 3D representation.

For reference, here is one of the image you shared:

The images are acquired from OCT; after image processing, I have 10 (450x600 array) that was plotted on MatLab using the Imagesc function. Each slice represents a cross-section of a sample. My goal is to put the 10 slices together to reconstruct the surface of my sample.
I want to interpolate one slice into another so as to create a surface model of the sample. I tried Matlab and what I got is in the attachment. Thank you, I appreciate your response.


You can load a stack of images as described here, then remove the Matlab plot axes by using Crop volume.

You can then go to Data module and drag-and-drop the image to a 3D view to see it with volume rendering:

I would recommend to save the image array as nrrd (for example, using nrrdwrite.m) instead of saving resampled, color-mapped screenshots.

I have followed the steps you recommended but how do I use the volume rendering to view the image. Kindly see the attached file for what I got after the drag and drop in the data module. Thanks


Yes, the images were reconstructed using Matlab. I tried using Matlab to generate a 3D representation but I am not able to view the interested surface. The images represent the cross-sections of a surface, I want to put them together to reconstruct the surface. This is what I got when I tried it on matlab. Surface plot is not working as well. Thanks for the response.

You need to follow all the steps described here, specifically:

  • since you unnecessarily applied a color mapping to the image for plotting it in Matlab, you need to undo that using “Vector to scalar volume” module
  • since a bmp stack cannot store the image spacing, you need to specify the spacing between slices (third spacing value)

These steps would not be necessary and all the information in the original images would have been better preserved if you loaded the original image into Slicer (e.g., from DICOM, NRRD, etc.) instead of trying to recover them from Matlab plots.