Borrar filtros
Borrar filtros

how to build a graph from a skeleton

24 visualizaciones (últimos 30 días)
Dibanda Annick
Dibanda Annick el 17 de Mayo de 2019
Respondida: George Abrahams el 2 de En. de 2024
i got a 2D skeleton from a binary vessel map after applying thinning. Now i would like to build an undirected graph from this skeleton with nodes and edges linked together.
  2 comentarios
Kamya H
Kamya H el 7 de Jul. de 2021
Hey! I'm facing the same problem! Did you manage to find any answers/code to this question? tried skel2graph-3d too, but I'm getting quite a lot of errors!

Iniciar sesión para comentar.

Respuestas (2)

Mike Wharton
Mike Wharton el 18 de Oct. de 2023
Editada: Mike Wharton el 18 de Oct. de 2023
There is a blog post which explains what to do https://blogs.mathworks.com/steve/2015/12/14/image-based-graphs/
I think it is essentially something like this:
g = binaryImageGraph(bw);
figure
plotImageGraph(g)
This should work with a skeletonised binary image.

George Abrahams
George Abrahams el 2 de En. de 2024
Another method, using my bwgraph function from File Exchange.
% Load binary vessel map and skeletonize.
img = imread( "binaryVesselMap.png" );
img = bwskel( img );
% Construct an undirected graph from the skeletonized image.
G = bwgraph( img );
% For visual clarity and to save RAM, delete isolated nodes (those with no
% edges).
G = rmnode( G, find( ~img ) );
% Plot the graph, mimicking the layout of the source image.
[ Y, X ] = ind2sub( size( img ), find( img ) );
h = plot( G, 'XData', X(:), 'YData', Y(:), 'NodeLabel', [] );
axis tight equal
set( gca, 'YDir','reverse' )
% As an example application, use graph algorithms to find and highlight the
% longest branch of the graph. Distances are quasi-Euclidean.
d = distances( G );
d( isinf( d ) ) = -Inf;
[ ~, I ] = max( d(:) );
[ row, col ] = ind2sub( size( d ), I );
P = shortestpath( G, row, col );
highlight( h, P, 'NodeColor', 'r' )

Categorías

Más información sobre Geometric Transformation and Image Registration en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by