glencoesoftware / bioformats2raw

Bio-Formats image file format to raw format converter
GNU General Public License v2.0
82 stars 36 forks source link

RGB support #215

Open melissalinkert opened 1 year ago

melissalinkert commented 1 year ago

Adds a --keep-rgb option, which omits ChannelSeparator from the reader stack and will return RGB planes if that's what is stored in the input data. The reader's isInterleaved() is used in this case to determine the axis order; isInterleaved() == true means that the order will by *YXC. We may want to think about either forcing interleaved across the board if --keep-rgb is used, or adding a sub-option to do that.

The case where there are multiple channels each consisting of an RGB plane is not supported with --keep-rgb. Same for downsampling types that require OpenCV. We could probably add both, just keeping it simpler for now.

DimensionOrder in METADATA.ome.xml is not altered, so that comes directly from the underlying reader. With --keep-rgb and input RGB data, I'd expect SamplesPerPixel on each Channel to be greater than 1.

This is barely tested and has no unit tests yet. Just opening this as a draft now in case I run out of time to do more this week.

Discussed earlier today with @sbesson, cc @kkoz, @muhanadz

180, https://github.com/glencoesoftware/isyntax2raw/pull/29, and https://github.com/glencoesoftware/raw2ometiff/issues/26 may be related.

perlman commented 11 months ago

I think we (with my JAX hat) would find this useful! We have a lot of RGB image data, and having an easy mechanism for the channels to be stored in the same chunk would certainly speed up visualization.