Branch Points from 3D Logical Skeleton

A function that returns branch points in a 3D skeleton logical image
233 Downloads
Aktualisiert 6. Jun 2018

Lizenz anzeigen

This is a function that takes in a 3D skeletonized logical image of size MxNxP and prodcues a logical image containing location of branch points. I was motivated by the lack of a 3D lookup table (LUT) or bwlookup within MATLAB. This function is ideal for computing branchpoints in vasculature or pipes. This function uses a similar approach to a look-up table (LUT), but in 3D. It runs a SZ x SZ x SZ sized local region along the XY plane, and increments Z by one after each scan.
For a continuous line without any branch points running through a 3 x 3 x 3 local region, there will be 3 occupied voxels out of 27. Anytime the number of voxels in this region exceeds 3, there is a branch point present. The function applies this principle to find branch points.
Ensure that your image is padded padded first prior to calling this function. You can do so via I = padarray(I,[3 3],0,'both'), which pads all 6 sides of your 3D image with 3 voxels. Ideally, you should pad your image same size as one of the inputs to this function, 'sz'.
As of now, it is only working when sz = 3, producing a local region of size 3x3x3. So ONLY parse in sz = 3.
Function example:
BP = branchpoints3(skel,3);
where BP is the output logical array containing branchpoints; skel is the input logical skeletonized imaged and 3 is the size of local cubic region.

You can dilate the branch points by a couple pixels and subtract them from your skeleton to create perfectly separated branches. You can then call regionprops3 to obtain various parameters on these branches. If you'd like to get the location of end points of separated branched, vie my other file for calculating end points.

Zitieren als

Siddhartha Dhiman (2025). Branch Points from 3D Logical Skeleton (https://www.mathworks.com/matlabcentral/fileexchange/67600-branch-points-from-3d-logical-skeleton), MATLAB Central File Exchange. Abgerufen.

Kompatibilität der MATLAB-Version
Erstellt mit R2018a
Kompatibel mit allen Versionen
Plattform-Kompatibilität
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!
Version Veröffentlicht Versionshinweise
1.12.0.0

Fixed error produced from calling undefined variable 'sz'.

1.11.0.0

Added more usage details

1.1.0.0

Changed Title
Removed the input 'sz'. Now you just have to use call the function as BP = branchpoints3(skel). It now only uses a 3x3x3 local region.
Changed title again, silly me.

1.0.0.0