MATLAB Answers

## how to convert 2D image into 3D ??

Asked by maha mohy

### maha mohy (view profile)

on 8 Mar 2012
Latest activity Commented on by Image Analyst

### Image Analyst (view profile)

on 27 Dec 2016
Accepted Answer by Image Analyst

### Image Analyst (view profile)

Hello everybody,my graduation project is about 3D mri visualization ,I want to convert 2D images into 3D ...could anyone help me plz

Bhoomika Ghosh

### Bhoomika Ghosh (view profile)

on 6 Aug 2013

@i have a similar project currently i have registered images from DICOM and need an algorithm / code to convert 64 slices into a 3D brain model.. can u plz help me! Walter Roberson

zee falcon

### zee falcon (view profile)

on 27 Dec 2016

I also need help for 3d conversion of MRI images. Need code to convert it into 3d model. Kindly help me out.

Image Analyst

### Image Analyst (view profile)

on 27 Dec 2016

Explain why cat() did not work for you.

Log in to comment.

## 2 Answers

### Image Analyst (view profile)

Answer by Image Analyst

### Image Analyst (view profile)

on 8 Mar 2012
Accepted Answer

try cat(3,...)

```image3D = cat(3, slice1, slice2, slice3, slice4, slice5);
```

You could put it into a loop

```for slice = 1 : totalNumberOfSlices
thisSlice = GetSlice();  % Whatever you have to do to get one 2D image.
if slice == 1
image3D = thisSlice;
else
image3D = cat(3, image3D, thisSlice);
end
end
```

Image Analyst

### Image Analyst (view profile)

on 31 May 2016

MATLAB does not have powerful 3D visualization capabilities. For that you can use something like Amira. MATLAB has only basic slice views and isosurfaces.

Charissa Enget

### Charissa Enget (view profile)

on 1 Jun 2016

oh that makes sense, what if the number of slices is unknown?

Image Analyst

### Image Analyst (view profile)

on 1 Jun 2016

When is it unknown? Certainly when it's a 3-D variable in MATLAB the number of slices is known:

```[rows, columns, numSlices] = size(array3D);
```

Log in to comment.

### Walter Roberson (view profile)

Answer by Walter Roberson

### Walter Roberson (view profile)

on 8 Mar 2012

The problem is not constructing the 3D array: the problem is displaying it. MATLAB does not have good voxel visualization routines. You could try http://www.mathworks.com/matlabcentral/fileexchange/3280-voxel

Image Analyst

### Image Analyst (view profile)

on 8 Mar 2012

How did you decide that? Displaying is converting a 3D volumetric image into a 2D projection image - the opposite of what he said.

Walter Roberson

### Walter Roberson (view profile)

on 8 Mar 2012

At my workplace we often build 3D MRI images from 2D MRI slices. MATLAB is okay for displaying the resulting datasets if you just want a planar slice, but it is far far below the 3-space imaging capabilities of some other products.

For example see
http://www.vitalimages.com/App_Themes/VitalStandard/Images/Common/04-HPHOTO.jpg
and look at the lower-left image in the "screen" in the middle foreground. Textured, shaded, cut-ins, real-time transparency control based upon data ranges so that you can see (e.g.) tumors and peer inside them...

Image Analyst

### Image Analyst (view profile)

on 8 Mar 2012

I definitely agree that MATLAB doesn't have anywhere near the power of other programs in doing volumetric visualization.

Log in to comment.

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!