My question very simply: I have a bunch of matricies, all stacked up on each other, so that I have a volume of data. I want to visualize this data, as this example image shows below:
It seems to me that some degree of transparency is needed, perhaps linked to the value of each voxel. That is, the higher the value, the less 'transparent' the voxel is to things behind it. I am not sure how to even start with this.
Here is some simple code that makes my data volume, so all I would like now is to try and visualize it.
clear all
%Make the random volume
mat = rand(50,50,100);
%Place high values in particular parts of the volume
sigCoors.rows = [23:33];
sigCoors.columns = [40:45];
sigCoors.time = [55:85];
mat(sigCoors.rows, sigCoors.columns, sigCoors.time) = 10.*rand(length(sigCoors.rows), length(sigCoors.columns), length(sigCoors.time));
%Visualize the volume:
% ?
That is basically it. How may I go about visualizing this data as above, or perhaps something similar? Thank you.
I strongly recommend to browse the MATLAB FileExchange. They have many user-contributed 3D volume visualization tools.
Personally I used the Volume Render some time ago (beware of known bug: changes with function colormap consume large amount of memory). Newer version from the same author seems more sophisticated (I did not use it yet). Sliceomatic may be also interesting for you.
Just a side note. I also did my first 3D visualization in MATLAB. But quite soon I realized that MATLAB is not strong enough in 3D volume visualization for big and complex data sets. Although I still process my data in MATLAB but for 3D volume visualization I use Voreen (you'll need a good GPU card for it to run, check its System Requirements).