MATLAB Answers

How do you calculate the radius in a 3D tubular structure?

9 views (last 30 days)
charles
charles on 5 Sep 2017
Answered: Afiq Azaibi on 8 Sep 2017
I'm trying to calculate the radius at every point in a root of a plant. What I have is a 3D image of that root. I have already segmented the root, so that every branche is seperated and can be viewed individually. However, I still cannot think of a proper way to calculate the radius at every point.
Right now I have some code, using bwdist on a binary image of the root, after which I multiply it with the skeleton of the root. This gives me the minimum radius at every point, however I also want to know the average and maximum radius.
I was thinking of slicing every branche up in small pieces and calculating the volume, so I could obtain the data about the average radius if I know the length of those pieces. But in order to do so I would need to 'cut' the root orthogonal to the direction, and I cannot figure out how to do that.
Does someone have an idea how I could accomplish 'cutting' the root in those small pieces? Or maybe know of another method which works better? Any help is very welcome!
Thanks in advance,
Charles

Answers (1)

Afiq Azaibi
Afiq Azaibi on 8 Sep 2017
Given that every point on the branch has a cross section that can be measured, I would suggest using the 'slice' function:
https://www.mathworks.com/help/matlab/ref/slice.html
This allows an orthogonal slice through the root.

Community Treasure Hunt

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

Start Hunting!