ilastik / hytra

Python module for multi HYpotheses TRAcking
https://github.com/ilastik/hytra
MIT License
2 stars 7 forks source link

Wrong timestep computation when numFrame > 99 #25

Closed LetiP closed 7 years ago

LetiP commented 7 years ago

This should fix an error I included. Encountered it today when numFrame >9 or >99. I wonder why it made no errors for anyone else, so here is the code so you can look at @chaubold .

LetiP commented 7 years ago

hm... I think the pluginPath is wrong again and the Tests are failing. I will look at it again after lunch.

LetiP commented 7 years ago

Now it should work. I finally took the pluginPath solution from master, not what is in the commits.

JaimeIvanCervantes commented 7 years ago

I'm overriding run() on IlastikMergerResolver which might explain why I'm not seeing the error. I'm a bit worried now, were there any changes to run() that I should include on IlastikMergerResolver?: https://github.com/chaubold/hytra/blob/master/hytra/core/ilastikmergerresolver.py#L46-L121

LetiP commented 7 years ago

Yes, there was this line https://github.com/chaubold/hytra/blob/master/hytra/core/mergerresolver.py#L408 which is in IlastikMergerResolver too, that now should be replaced by commit #41612c0 Fix timestep computation. It wants to cover the cases where there is NO cell in a frame. I guess you do not really encounter this case in big datasets. The current version of hytra does not exit with an error, but for me only the first 9 or 99 frames are considered in tracking.

JaimeIvanCervantes commented 7 years ago

I just added @LetiP fix to IlastikMergerResolver.

chaubold commented 7 years ago

Interesting. @LetiP What exactly was the error? Tracking did not run over the full video? To me it looks like the problem is that timesteps got processed in the wrong order, which might have caused problems in some other logic, right?

Looks good to me, I'm just worried that there might be other locations where this can cause problems.

LetiP commented 7 years ago

@chaubold I do not think it was the wrong order, since we compute there the min and the max frame. After that we go through the frames with range(min, max). But determining the maximum was wrong.