matlabplot3dvisualization3d-reconstruction

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?


Solution

  • 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.