Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Plotting volumetric data in MATLAB

I am working in Matlab and I have a 3d matrix with dimensions 384x512x160, which is made of 384x512 slices.

How can I plot data like that?

like image 919
user1367988 Avatar asked Dec 26 '14 16:12

user1367988


People also ask

How do you plot 3 dimensional data in Matlab?

plot3( X , Y , Z ) plots coordinates in 3-D space. To plot a set of coordinates connected by line segments, specify X , Y , and Z as vectors of the same length. To plot multiple sets of coordinates on the same set of axes, specify at least one of X , Y , or Z as a matrix and the others as vectors.

What is volume data in Matlab?

Typical scalar volume data is composed of a 3-D array of data and three coordinate arrays of the same dimensions. The coordinate arrays specify the x-, y-, and z-coordinates for each data point. The units of the coordinates depend on the type of data.


1 Answers

What you really have is Volumetric data.

I guess that you have is a value of C for every X,Y,Z. And it actually depends a lot in what type of data you have. You'd need to give more information for an specific answer.

In general have a look to Volumetric data visualization techniques, but there is not just one way of doing this. Following i will leave you some examples you may want to try.


Slideomatic

One option is to use the Sliceomatic from FE:

enter image description here


Plotting slices

If you have medical data (or data on a big range) you may want to use the typical approach of plotting just some of the slices. You can do that using subplot() and imshow(squeeze(:,:, slice)), or by just concatenating all slices together as img=[squeeze(:,:, slice1)) squeeze(:,:, slice2)); squeeze(:,:, slice3)) squeeze(:,:, slice4))], for example.

enter image description here


Isosurfaces

You may also just want to plot some equipotential surfaces of your data. You can create some surfaces and plot them using isosurface:

enter image description here


Vold3D for indexed images

Or if your image is indexed image you may want to use vol3D

enter image description here


Pcolor3

A useful tool if you have "smooth" 3D data is pcolor3, as it fills the 3D volume with semi-transparent surfaces that give the a nice visual 3D perception of "color clouds"

enter image description here


Disclaimer: I have no relation to any of the toolboxes presented here and I chose them by my own opinion. There are probably more, tools for this and if you think you want to add some, please edit the question freely.

like image 102
Ander Biguri Avatar answered Sep 20 '22 13:09

Ander Biguri