MATLAB: Find 3d branch points – Remove smaller branches

branch pointbwmorphcentreline

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

Best Answer

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.
Related Question