Find 3d branch points - Remove smaller branches

4 Ansichten (letzte 30 Tage)
William
William am 17 Mär. 2015
Kommentiert: William am 31 Mär. 2015
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

Akzeptierte Antwort

Sean de Wolski
Sean de Wolski am 17 Mär. 2015
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 Kommentare
William
William am 17 Mär. 2015
Bearbeitet: William am 17 Mär. 2015
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 am 31 Mär. 2015
Found a premade function called Skel2Graph3D which you can define a threshold branch length and then convert it back into a skeleton with Graph2Skel3D.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by