@grothausmann.roman I agree that is such an important feature! If I have time I will be glad to work on ITKBoostGraph feature in the short future. I have contributed a thinning algorithm to DGtal, a digital topology library, and a way to treat a DGtal::Object (basically a set of points with a topology aka, connectivity) as a boost graph.
I then transform that raw boost graph, where all adjacent pixels/voxels are connected with an edge into a SpatialGraph, where only nodes that are end-points (degree = 1) or branch-points (degree >=3) are kept. The bending or chain-nodes (degree = 2) are stored in the edges between these nodes, as
I do this using a depth_first_visit in boost, with a custom visitor, that might be slightly over-complicated, but it works well.
To export/import the graphs I use graphviz with labels (storing position in nodes, and edge_points in edges).
All that work can be ported to a ITKExternalModule, just with the easy step of creating the initial raw boost graph from an image. Basically each pixel is a node, and adjacent pixels are connected via an edge (depending on the desired topology). This graph would be huge for regular images, but for thin images is pretty manageable.
This is the work I have done as the last chapter of my thesis, I will be glad to port it for ITK.
In this area, a nice thing to have would be extra thinning algorithms, and more importantly, a way to compute them in parallel. Amira/Avizo I think do it setting the pixels in the borders of the parallel regions as non removable, run the thinning, then change the regions for the border to be now in the middle, and re-run the thinning. It is quite effective, and I think it would be worth to do it in GPU (but I have no experience with GPU computing right now) .