Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: respect connected components for invalidation + full voxel graph support #86

Merged
merged 8 commits into from
May 22, 2024

Conversation

william-silversmith
Copy link
Contributor

@william-silversmith william-silversmith commented May 22, 2024

This PR switches the invalidation method from roll_invalidation_cube to roll_invalidation_ball_inside_component, this has several consequences.

roll_invalidation_ball_inside_component is...

  • slower
  • understands voxel connectivity graph input
  • has a spherical area of effect rather than cuboid
  • respects the current path's connected component

In all, it represents a step up in skeleton quality at the moderate expense of speed.

The other change is we now use cc3d.color_connectivity_graph when a voxel graph is provided rather than cc3d.connected_components.

In all, this provides full support for connectivity graph based skeletonization, which enables the accurate processing of volumes containing a "self-touch" (autapse).

Example results

An autapse visualized as a mesh:

image (26)

Using PyChunkGraph information to create a voxel connectivity graph, processed with this PR:

image (25)

Using the old method:

Screenshot 2024-05-22 at 2 23 23 PM

Performance characterization of a 5123 task (black) this PR (blue) old method without voxel graph:
image (24)

@william-silversmith william-silversmith added feature New feature or request performance Lower memory or faster computation. labels May 22, 2024
@william-silversmith william-silversmith self-assigned this May 22, 2024
@william-silversmith william-silversmith added the redesign It may be flawed, but the code was working as designed. label May 22, 2024
@william-silversmith william-silversmith linked an issue May 22, 2024 that may be closed by this pull request
@william-silversmith william-silversmith merged commit 1b71a43 into master May 22, 2024
5 checks passed
@william-silversmith william-silversmith deleted the wms_invalidate_component branch May 22, 2024 18:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request performance Lower memory or faster computation. redesign It may be flawed, but the code was working as designed.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Handle Autapses / Mergers
1 participant