Find 3d branch points - Remove smaller branches

4 views (last 30 days)
Hello all,
I want to remove small branches from this skeleton of a vessel, and to be left with just the main binary centerline. To do this I want to set a minimum branch length on the centrelines. But to do this I need to find the branch points...
BWMORPH works in 2D to find branch point/ end point locations, but this is a 3D skeleton...
Many thanks,
Will

Accepted Answer

Sean de Wolski
Sean de Wolski on 17 Mar 2015
I don't have time right now to implement it, but you should be able to use bwlookup with a 3x3x3 lookup table to identify the branch points.
The algorithm would be: is the middle pixel connected two more than three or more pixels on the periphery of the 3x3x3 box. If it is, then it's a branch point.
  2 Comments
William
William on 17 Mar 2015
Edited: William on 17 Mar 2015
Not sure how to define a lookup table... something like...?
f = @(x) (sum(x(:)) >= 3);
lut = makelut(f,3)
branch_point = bwlookup(skeleton, lut)
William
William on 31 Mar 2015
Found a premade function called Skel2Graph3D which you can define a threshold branch length and then convert it back into a skeleton with Graph2Skel3D.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!