Find 3d branch points - Remove smaller branches

8 visualizaciones (últimos 30 días)
William
William el 17 de Mzo. de 2015
Comentada: William el 31 de Mzo. de 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
  2 comentarios
Sean de Wolski
Sean de Wolski el 17 de Mzo. de 2015
Out of curiosity, how did you come up with the 3-dimensional skeleton?

Iniciar sesión para comentar.

Respuesta aceptada

Sean de Wolski
Sean de Wolski el 17 de Mzo. de 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 comentarios
William
William el 17 de Mzo. de 2015
Editada: William el 17 de Mzo. de 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 el 31 de Mzo. de 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.

Iniciar sesión para comentar.

Más respuestas (0)

Community Treasure Hunt

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

Start Hunting!

Translated by