Find 3d branch points - Remove smaller branches

조회 수: 2 (최근 30일)
William
William 2015년 3월 17일
댓글: William 2015년 3월 31일
Hello all,
I want to remove small branches from this skeleton of a vessel, and to be left with just the main binary centerline. To do this I want to set a minimum branch length on the centrelines. But to do this I need to find the branch points...
BWMORPH works in 2D to find branch point/ end point locations, but this is a 3D skeleton...
Many thanks,
Will
  댓글 수: 2
Sean de Wolski
Sean de Wolski 2015년 3월 17일
Out of curiosity, how did you come up with the 3-dimensional skeleton?

댓글을 달려면 로그인하십시오.

채택된 답변

Sean de Wolski
Sean de Wolski 2015년 3월 17일
I don't have time right now to implement it, but you should be able to use bwlookup with a 3x3x3 lookup table to identify the branch points.
The algorithm would be: is the middle pixel connected two more than three or more pixels on the periphery of the 3x3x3 box. If it is, then it's a branch point.
  댓글 수: 2
William
William 2015년 3월 17일
편집: William 2015년 3월 17일
Not sure how to define a lookup table... something like...?
f = @(x) (sum(x(:)) >= 3);
lut = makelut(f,3)
branch_point = bwlookup(skeleton, lut)
William
William 2015년 3월 31일
Found a premade function called Skel2Graph3D which you can define a threshold branch length and then convert it back into a skeleton with Graph2Skel3D.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

Community Treasure Hunt

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

Start Hunting!

Translated by