It would be neat to add an IO module for this format!
We have an IO module for bioformats!
https://github.com/scifio/scifio-imageio
but, we could use more testing / infrastructure for the pyramids. Maybe it is worth a dedicated IO for OME-TIFF, too, based on the C++ library:
Efficient OME TIFF stream reading is very important to many microscopy modalities. I have been thinking about a native C++ implementation base on that reference OME library.
The Pyramid feature is a very important and interesting one which requires some thought to integration in ITK generically. There are other formats which support multi-resolutions or thumbnails as well. The questions is: “What is ther a general interface that can be added to the ImageIO and/or the ImageFileReader to support getting information about multi-image files, and specifying which image to read?”
Another example which comes to mind is the JPEG2000’s wavelet/multi-resolution compression.
Hi @blowekamp, @matt.mccormick and @phcerdan - did you guys have any further thoughts on OME-TIFF and pyramids in ITK?
I’m interested in support for operating on pyramid data in dicom as well.
Or both at the same time:
http://www.ncbi.nlm.nih.gov/pmc/articles/PMC6489422/
Note also that many of the proprietary WSI formats are pyramidal tiled TIFF but not OME (which selected one of various different ways to organize the IFDs). E.g. consider SVS, which is very common.
David
Along with @ctrueden’s, we recently updated the OME bioformats format in ITK C++:
In Python, you can new get nice OME bioformats support via pyimagej. pyimagej supports an Xarray conversion that preserves spatial metadata when working with Pyramids in the same way that the ITK Python wrapping does.
The standard way for serializing Xarray content is via Zarr, and OME is looking at Zarr for The Next OME-TIFF.
Regarding DICOM, the ideal implementation would present a simple, standard Zarr interface similar to how this is being approach with HDF5 / Zarr.