Volumetric slice plot of tomographic data

7 views (last 30 days)
Sordin
Sordin on 20 Apr 2017
Edited: Sordin on 30 Apr 2017
I am trying to use the slice function to stack the following 79 slices and display a 3D representation of an object.
The problem is that the black regions in each image are obstructing the image of the previous slice. So, I'm only seeing the very last slice on top, rather than a meaningful volumetric presentation of the data. So, how can I include only the non-zero elements of each image in the plot?
Any suggestions would be greatly appreciated.
  3 Comments
Philip G
Philip G on 24 Apr 2017
I found a nice way to use surf images ... see my anwer.

Sign in to comment.

Accepted Answer

Philip G
Philip G on 24 Apr 2017
Edited: Philip G on 24 Apr 2017
Hi, if you do not want to use a simple isosurface or volume viewer as I suggested in my comment, every image can have an alphadata property (that can be a matrix and not only a single value), as explained here:
https://www.mathworks.com/company/newsletters/articles/image-overlay-using-transparency.html
You can extend this behavior towards 3D with the help of this:
https://de.mathworks.com/help/matlab/visualize/add-transparency-to-graphics-objects.html
For example by using surf.
One example:
img=peaks; % this is the color
t=abs(img); % this is the transparency
%t=img>1; % if you want to have a binary mask
for i=1:10
surf(img*0+i,p,'linestyle','none','alphadata',t,'facealpha','flat')
hold on
end
I hope you get the idea.

More Answers (1)

Bjorn Gustavsson
Bjorn Gustavsson on 21 Apr 2017
If you change your colour-map from black-white to white-black then you might get some mileage out of experimentations with alpha-mapping, look at the help for alphamap and alim.
HTH

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by