hms-dbmi/vizarr

Arbitrary plane slicing

tischi opened this issue · 1 comments

In BigDataViewer one can interactively change the viewing plane to any plane, non-orthogonal to the voxel space of the image.

In the long run we (EMBL) would need such a functionality in the web as well.

I know the logic of the BigDataViewer implementation in case there is interest and resources to implement this in vizarr.

Rough sketch:

For each pixel_coordinates_2D on the screen of the browser:
       voxel_coordinates_3D = applyTransform( currentViewerTransform, pixel_coordinates_2D );
       voxelValue = fetchDataFromZXarr( voxel_coordinates_3D, channel, time );
       paint( voxelValue, pixel_coordinates_2D );

The currentViewerTransform is what you change if you change the viewing angle.

Let me know if that is within scope and of interest for you.

manzt commented

Short answer, I'd love to have this an think it could be accomplished with a custom loader for your 3D data. It would require 1.) creating new UI state to manage changing the viewing angle, and 2.) a custom ZarrLoader for Viv that can do the special indexing for data that are chunked in this way.

That said, I'm working on another research rotation right now and doubt I'll have the time to implement. It might be something that we can investigate in the future or if I get the time over the holiday. I could schedule some time to walk through the code base if you'd or others would like give it a try.

Note: I believe this is something that nueroglancer supports. Is there a reason that wouldn't work for these data?