-
Notifications
You must be signed in to change notification settings - Fork 13
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
Make euclidean_distance_field Faster #7
Comments
It's possible to exactly compute the distance in a burst from the point, however, the soon as there is a direction change, a more complex algorithm is needed. Since burst would be far faster than dijkstra and could cover large fractions of a shape, doing a hybrid algorithm would be essentially guaranteed to be faster. |
Can we combine dijkstra with serial free space bursts? The problem is that if there's a loop in the structure, duplicate effort may be required to correctly deal with overlapping empty spaces. |
Filling then fixing doesn't seem like it makes things much easier. Dijkstra would then have to look for ways to make the field distance larger, but this would cause dijkstra to go haywire. Might be able to use a similar scanline fill strategy as in fill_voids. However, what would be the stopping criteria? We can try to detect critical regions and stop there? |
We got a good speedup for somata, but there's still a lot on the table. |
Got another speedup from prefetching (for sufficiently large images). |
Distance field computation seems amenable to a scan-line algorithm and may be a rate-limiting step in Kimimaro.
The text was updated successfully, but these errors were encountered: