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

2 次查看(过去 30 天)
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

回答(1 个)

Afiq Azaibi
Afiq Azaibi 2017-9-8
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.

类别

Help CenterFile Exchange 中查找有关 Images 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by