Branch Points from 3D Logical Skeleton

A function that returns branch points in a 3D skeleton logical image
239 téléchargements
Mise à jour 6 juin 2018

Afficher la licence

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.

Citation pour cette source

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

Compatibilité avec les versions de MATLAB
Créé avec R2018a
Compatible avec toutes les versions
Plateformes compatibles
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!
Version Publié le Notes de version
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