-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Hello,
Excited to see this project going forward! I've already played quite a bit with it and it's really nice.
I have a question because for a better integration of Warpy and ABBA into QuPath I need to use BigDataViewer (support of transformed images, BigWarp), and BDV works better with data implementing the Source interface. Together with VolatileSource, this brings async loading to BDV and it's really life-changing for responsiveness.
However, for VolatileSource to work, there's this line which is called:
This wrapping requires that the RAI implements cell-based access:
So it's not an issue, you could say, because you're already providing a LazyCellImg, so that should work. Unfortunately, the Source interface requires a 3D RAI, which is an XYZ hyperslice for a certain c and t of the 5D LazyCellImg provided in this repo. And hyperslicing the LazyCellImg causes it to lose its cell-based structure (in the sense that WrapAsVolatile throws an IllegalArgumentException).
So I wonder if you have any idea how this could be fixed?
Sorry it's long; I hope it's clear. In brief, here's my ideal solution (and I don't know if it's doable):
Is it possible to add a method that creates a LazyCellImg, but for a specific c and t index, and thus return a LazyCell 3D image? Something like
public Img<T> createForLevelCT(int level, int c, int t)
This method needs to preserve the cell-based structure while providing the 3D RAI that BDV expects. Maybe that's not easily doable, I don't know, but I'd love to have your input on this. Also pinging @tpietzsch in case he has time to chime in!