- new skeletonization method:
skeletor.skeletonize.by_wavefront_exact - new post-processing methods:
skeletor.post.recenter_verticesandskeletor.post.fix_outside_edges(by @zyx287) - a number of small fixes
- new method:
Skeleton.mend_breaks - fix
Skeleton.radius - follow changes in
igraphandtrimesh - a large number of small fixes
New post-processing methods:
skeletor.post.smoothto smooth the skeletonskeletor.post.despikeremove spikes from skeletonskeletor.post.remove_bristlesto remove single-node bristles from the skeleton
This release mainly improves skeletor.skeletonize.by_wavefront but it also
adds a new method to get a graph representation of skeletons:
Skeleton.get_graph.
This is a small release that adds a single method to the Skeleton class to
quickly save results as
SWC
file:
>>> skel.to_swc('skeleton.swc')This release represents a major rework of skeletor. Notably, functions that
were previously exposed at top level (e.g. skeletor.contract) have been
moved to submodules sorting them by their purpose:
| < 1.0.0 | >= 1.0.0 |
|---|---|
skeletor.fix_mesh |
skeletor.pre.fix_mesh |
skeletor.simplify |
skeletor.pre.simplify |
skeletor.remesh |
skeletor.pre.remesh |
skeletor.contract |
skeletor.pre.contract |
skeletor.cleanup |
skeletor.post.clean_up |
skeletor.radii |
skeletor.post.radii |
Similarly skeletor.skeletonize(method='some method') has been broken out into
separate functions:
| < 1.0.0 | >= 1.0.0 |
|---|---|
skeletor.skeletonize(mesh, method='vertex_clusters') |
skeletor.skeletonize.by_vertex_clusters(mesh) |
skeletor.skeletonize(mesh, method='edge_collapse') |
skeletor.skeletonize.by_edge_collapse(mesh) |
- new skeletonization methods
skeletor.skeletonize.by_tangent_ball,skeletor.skeletonize.by_wavefrontandskeletor.skeletonize.by_teasar - all skeletonization functions return a
Skeletonobject that bundles the results (SWC, nodes/vertices, edges, etc.) and allows for quick visualization - SWC tables are now strictly conforming to the format (continuous node IDs, parents always listed before their childs, etc)
Skeletonresults contain a mesh to skeleton mapping as.mesh_mapproperty- added an example mesh: to load it use
skeletor.example_mesh() skeletornow has proper tests and a simple documentation
- removed
drop_disconnectedparameter from all skeletonization functions - pleases either usefix_meshto remove small disconnected pieces from the mesh or drop those in postprocessing outputparameter has been removed from all skeletonization functions as the output is now always aSkeleton
- plenty