Branch points of a 3D voxelated Image

5 ビュー (過去 30 日間)
Hege
Hege 2022 年 1 月 29 日
回答済み: aditi bagora 2023 年 10 月 9 日
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

回答 (1 件)

aditi bagora
aditi bagora 2023 年 10 月 9 日
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