I have a 3D Skeletonized Micro-CT Fiber model which obtains completely seperated 7 volumes(fibers). I would like to find the endpoints of each and every fiber and I used below commands to find the end points.
B1=bwskel(testvol,'Minbranchlength',20);
BP = bwmorph3(B1,'endpoints');
Endpoints_Cor=regionprops3(BP,'VoxelList');
stats4=regionprops3(B1,'Volume','VoxelList');
However, my model obtains 7 volumes which are completely seperated. But it gives only 13 endpoints(But I am expecting 14 end points.7*2=14). I noticed one of the endpoint of my third volume does not obtain in the end point list. only one end point is in the list. Could you please explain how I should obtain all the endpoints in each and every volume and why I am missing one endpoint of the third volume? And also, is there anyway to categorise which endpoints belongs to which volume?
Your answers are highly appreciated!

 採用された回答

Image Analyst
Image Analyst 2021 年 4 月 7 日

0 投票

bwmorph() has an 'endpoints' option. The image should be a skeleton. bwmorph() also has a skeleton option but I think bwskel() has a better algorithm.

5 件のコメント

Hege
Hege 2021 年 4 月 7 日
Thank you Image Analyst!
Yes. After importing denoised and binarised CT Volume, I used bwskel() in order to acquire the skeleton and then used bwmorph3() to detect the endpoints under 'endpoints' option. But I really dont have idea why one of the endpoint is missing in the output result. However, regionprops3() of the whole volume clearly says whole domain obtains 7 volumes and I expected 14 endpoints. Unfortunately, it gives me 13 endpoints that I have no idea to rectify the issue and why and how it occurs. But I went through all the points of each and every volume manually and found that one of the endpoint of the volume (3) missed in the endpoints list.
I really apperciate your valuable comments and advices!
Hege
Hege 2021 年 4 月 8 日
Thank you so much Image Analyst.
I tried bwferet(). Unfortunately, I have a CT Volume (3D Image) and bwferet() doesnot work. I searched whether there is any 3D syntax for bwferet() is available or not. But I could not find.
Apprecite if you could give me a tip if there is any available solution!
Image Analyst
Image Analyst 2021 年 4 月 8 日
You can do a brute force loop to find the distance of every point to every other point.
Hege
Hege 2021 年 4 月 12 日
Thank you so much Image Analyst! I really appreciate your answer.
What I did was, found the minimum distance for each and every voxel and rearranged the regionporops3() data as I want using a one ending point of each volume.
Thank you so much!

サインインしてコメントする。

その他の回答 (0 件)

質問済み:

2021 年 4 月 6 日

コメント済み:

2021 年 4 月 12 日

Community Treasure Hunt

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

Start Hunting!

Translated by