Comments (7)
Another example of showing / hiding / coloring labels: https://downloads.openmicroscopy.org/presentations/2020/community-call-2020-10-29/OMERO%20Plus,%20PathViewer%20and%20NGFF%202020-10-27.mp4
from vizarr.
Ah, I wasn't aware that the labels data were dense arrays. What are the non-zero elements for the labels (value wise)? I think we should be able to reuse the loader modules (to fetch data tiles), but I think transparaent for 0 values will require a new layer (or shaders at minimum) perhaps @ilan-gold has some input.
from vizarr.
Having just been reading #32, I can imagine that an API for showing/hiding or setting colors on masks would be very cool. Similar to what you're doing in vitessce http://vitessce.io/?dataset=linnarsson-2018
I think we use a deck.gl polygon layer for the segmentation in vitessce because the data are in a columnar format (not dense pixel arrays). Both @keller-mark and @ilan-gold have more experience with writing custom layers in deck.gl, and hopefully they have some ideas of how to do something similar for dense array masks
With that said, I like the idea of having different layers because then we can render UI elements based on different layerProps
for each layer.
from vizarr.
Yes we use selectable polygon layers from deck.gl which requires pre-processing the data to get polygons but likely will not require any sort of pyramid/multi-resolution handling.
We could certainly write shaders to handle this concept of value-per-color, raster/pixel-based-storage, segmentation mask, especially if this is the direction OMERO is headed - it would be very straightforward to do and could scale very well to lots of different labels if what I have in my head is right for the implementation. I agree @manzt that we should be able to reuse the loaders for it - we would change the layer (or really just the shaders) used by XRLayer
to accommodate this new data and reuse the MultiscaleImageLayer
with a few tweaks to the APIs.
from vizarr.
We could certainly write shaders to handle this concept of value-per-color, raster/pixel-based-storage, segmentation mask, especially if this is the direction OMERO is headed
See Will's link above (https://github.com/ome/omero-ms-zarr/blob/master/spec.md#image-label-metadata). The OME-Zarr specification uses (dense) zarr arrays for masks.
from vizarr.
Ilan and I talked about this today and I think we have an idea for implementation (likely a new layer with custom shaders). I would be useful to have an example dataset with these arrays to work with. I can't seem to find the an image with "image-label" metadata? Is this different from "masks"?
I've tried opening the examples in ome/ome-zarr-py#30 with the ome-zarr-py
plugin and the masks don't seem to load the masks layers. Again, I'm not sure if mask / image-label are different.
$ napari https://s3.embassy.ebi.ac.uk/idr/zarr/v0.1/6001240.zarr # just opens image layers
from vizarr.
Yeah, I had to ask around to find an image with labels. (we are planning a directory page to list all our ome-zarr images soon).
This one has labels:
napari https://s3.embassy.ebi.ac.uk/idr/zarr/v0.1/6001247.zarr
The presence of labels is specified by the existence of https://s3.embassy.ebi.ac.uk/idr/zarr/v0.1/6001247.zarr/labels/.zattrs
Labels are multi-resolution arrays (same as pixel data) but tiles may be missing if they are all zeros to save space when you have sparsely-populated labels.
from vizarr.
Related Issues (20)
- Visualzation of ROIs embedded in ome.zarr? HOT 7
- Vizarr demo for Jupyterlab and JupyterLite in the browser HOT 1
- Example image link is broken HOT 3
- 3D visualization of volumetric data (e.g. segmentations) HOT 3
- View zarr loaded with napari_lazy_openslide HOT 6
- Allow setting z/t plane
- Issue with tissue image display HOT 4
- Channel range widget input HOT 1
- Support bioformats2raw layout HOT 11
- Counter-intuitive layer ordering
- colab notebook not working with zarr HOT 2
- Loading issue for OME-NGFF 0.4 dataset with large number of channels HOT 2
- Allow to set position via URL HOT 1
- Use naming convention for event listener names
- Display of HCS Plate not fully working HOT 7
- Question about vizarr's mandelbrot demo HOT 1
- Image origin in Vizarr HOT 1
- How to load local zarr files through imjoy_plugin.py HOT 1
- Explore a custom store for tiled
- OME-NGFF v0.5 (coordinateSystems) support
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vizarr.