-
Notifications
You must be signed in to change notification settings - Fork 124
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
TTK Crashes when ttk::AtomicUF::mergeStates() is called and one of the states is empty #488
Comments
hi josiah, thanks for the issue. cheers, |
Hello, I am not sure how we can have an empty state here,the propagation should at least contains one vertex. Is your data set clean ? Can it have disconnected points ? Eventually without cells associated ? If we keep them, we may want to put these checks only when Kamikaze is off as they impact methods called really often during the computation of the tree. The performance of FTM / FTR really depends on these. Charles |
@josiahblaisdell
if you just run tetrahedralize after a voxel selection, it is likely your domain is not manifold (see the manifold check example https://topology-tool-kit.github.io/img/gallery/manifoldCheck.jpg).
ftm supports only manifold domains at the moment (although it would be cool to extend it to non-manifold cases, without sacrificing performances).
for your analysis, maybe you can walk around the voxel selection and simply work with the original data.
cheers,
--
Dr Julien Tierny
CNRS Researcher
Sorbonne Universite
http://lip6.fr/Julien.Tierny
…On Monday, 14 September 2020 13:51:27 CEST Charles Gueunet wrote:
Hello,
I am not sure how we can have an empty state here,the propagation should at least contains one vertex. Is your data set clean ? Can it have disconnected points ? Eventually without cells associated ?
If we keep them, we may want to put these checks only when Kamikaze is off as they impact methods called really often during the computation of the tree. The performance of FTM / FTR really depends on these.
Charles
|
Describe the bug
This bug occurred when trying to create the persistence diagram for a tumor from an MRI stored in a "Structured Grid". I used a threshold to remove voxels with enhancement of 0 and I used tetrahedralize in order to create a persistence diagram.
I modified the CurrentState struct's "merge" function to check if the "other" state's propagation is empty. This seemed to fix the bug on my end. I am not sure why the propogation was empty in the first place though, and this may be indicative of a larger issue. I am using the dev branch here: #487
The error I get says: /usr/include/boost/heap/fibonacci_heap.hpp:352: const value_type& boost::heap::fibonacci_heap<T, A0, A1, A2, A3, A4>::top() const [with T = int; A0 = boost::heap::compare<std::function<bool(int, int)> >; A1 = boost::parameter::void_; A2 = boost::parameter::void_; A3 = boost::parameter::void_; A4 = boost::parameter::void_; boost::heap::fibonacci_heap<T, A0, A1, A2, A3, A4>::value_type = int]: Assertion `!empty()' failed.
To Reproduce
I'm not sure how to reproduce this without my data... I attached a screenshot of the data. If you need to reproduce this with my data let me know and I can email it to you.
Expected behavior
The persistence diagram is computed.
Screenshots
If applicable, add screenshots to help explain your problem.
Potential Fix
I have gotten the (currently) latest code included in this pull: #487 , here are the changes I made:
In FTMStructures.h:
In FTMAtomicUF.h:
System (please complete the following information):
Additional context
I have written my own vtk+c++ program to compute the distance between MRI data. This is occurring in my program, but I can reproduce in Paraview.
The text was updated successfully, but these errors were encountered: