Effacer les filtres
Effacer les filtres

Branch points of a 3D voxelated Image

2 vues (au cours des 30 derniers jours)
Hege
Hege le 29 Jan 2022
Hi all,
I created 5 voxelated lines as shown in the 1st image and tried to find the branch points of the voxelated models. Cleary, I have 6 intersections only as shown in the image. However, I received 8 branch points as shown in the second image, when I used the below code to find the branch points.
My intension is to find the number of branch points with its exact locations.
Apprecaite your kind support and help!
B1=logical(3D_Image); %Convert the image into binary image
B2=bwskel(B1); %Skeleton of the image
B3=bwmorph3(B2,'branchpoints'); %Get the branch Points
stats_Branchpoints=regionprops3(B3,'Volume','VoxelList','VoxelIdx'); %Details of the branch points as shown in the second image

Réponses (1)

aditi bagora
aditi bagora le 9 Oct 2023
Hello Hege,
I understand that you are trying to identify intersections in voxelated lines. Based on the provided image, it seems that there are 6 branch points, but when using the bwmorph3 function to find branch points, you are getting 8 points.
This behaviour could be due to the binary skeleton not being minimally connected, resulting in additional intersections.
To address this, you can try applying thinning to remove unnecessary pixels using the "thin" argument of the bwmorph() function:
thin = bwmorph(B2, 'thin');
B3 = bwmorph3(thin, 'branchpoints');
By incorporating thinning, you may obtain a more accurate representation of the branch points.
You can refer to the below documentation to understand how “bwmorph” defines a branch point.
I hope this helps.

Community Treasure Hunt

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

Start Hunting!

Translated by