ome / ZarrReader

Other
6 stars 9 forks source link

Incorrect handling of images with labels #18

Open sbesson opened 2 years ago

sbesson commented 2 years ago

Taking the examples of ome-ngff/0.3/idr/idr0095B/11511419.zarr

(java_dev) sbesson@Sebastiens-MacBook-Pro bftools % BF_CP=~/Downloads/OMEZarrReader-0.1.0-SNAPSHOT.jar ./showinf ~/Desktop/idr0095B/11511419.zarr/.zattrs -noflat -nopix
...
Series count = 7
Series #0 :
    Resolutions = 7
        sizeX[0] = 2048
        sizeX[1] = 1024
        sizeX[2] = 512
        sizeX[3] = 256
        sizeX[4] = 128
        sizeX[5] = 64
        sizeX[6] = 2048
    Image count = 3
    RGB = false (1) 
    Interleaved = false
    Indexed = false (false color)
    Width = 2048
    Height = 2048
    SizeZ = 3
    SizeT = 1
    SizeC = 1
    Tile size = 1 x 2048
    Thumbnail size = 128 x 128
    Endianness = intel (little)
    Dimension order = XYCZT (uncertain)
    Pixel type = uint16
    Valid bits per pixel = 16
    Metadata complete = false
    Thumbnail series = false
    -----
    Plane #0 <=> Z 0, C 0, T 0
    Plane #1 <=> Z 1, C 0, T 0
    Plane #2 <=> Z 2, C 0, T 0

Series #1 :
    Image count = 1
    RGB = false (1) 
    Interleaved = false
    Indexed = false (false color)
    Width = 1024
    Height = 1024
    SizeZ = 1
    SizeT = 1
    SizeC = 1
    Tile size = 1 x 256
    Thumbnail size = 128 x 128
    Endianness = intel (little)
    Dimension order = XYCZT (uncertain)
    Pixel type = double
    Valid bits per pixel = 64
    Metadata complete = false
    Thumbnail series = false
    -----
    Plane #0 <=> Z 0, C 0, T 0

Series #2 :
    Image count = 1
    RGB = false (1) 
    Interleaved = false
    Indexed = false (false color)
    Width = 512
    Height = 512
    SizeZ = 1
    SizeT = 1
    SizeC = 1
    Tile size = 1 x 128
    Thumbnail size = 128 x 128
    Endianness = intel (little)
    Dimension order = XYCZT (uncertain)
    Pixel type = double
    Valid bits per pixel = 64
    Metadata complete = false
    Thumbnail series = false
    -----
    Plane #0 <=> Z 0, C 0, T 0

Series #3 :
    Image count = 1
    RGB = false (1) 
    Interleaved = false
    Indexed = false (false color)
    Width = 256
    Height = 256
    SizeZ = 1
    SizeT = 1
    SizeC = 1
    Tile size = 1 x 128
    Thumbnail size = 128 x 128
    Endianness = intel (little)
    Dimension order = XYCZT (uncertain)
    Pixel type = double
    Valid bits per pixel = 64
    Metadata complete = false
    Thumbnail series = false
    -----
    Plane #0 <=> Z 0, C 0, T 0

Series #4 :
    Image count = 1
    RGB = false (1) 
    Interleaved = false
    Indexed = false (false color)
    Width = 128
    Height = 128
    SizeZ = 1
    SizeT = 1
    SizeC = 1
    Tile size = 1 x 128
    Thumbnail size = 128 x 128
    Endianness = intel (little)
    Dimension order = XYCZT (uncertain)
    Pixel type = double
    Valid bits per pixel = 64
    Metadata complete = false
    Thumbnail series = false
    -----
    Plane #0 <=> Z 0, C 0, T 0

Series #5 :
    Image count = 1
    RGB = false (1) 
    Interleaved = false
    Indexed = false (false color)
    Width = 64
    Height = 64
    SizeZ = 1
    SizeT = 1
    SizeC = 1
    Tile size = 1 x 64
    Thumbnail size = 64 x 64
    Endianness = intel (little)
    Dimension order = XYCZT (uncertain)
    Pixel type = double
    Valid bits per pixel = 64
    Metadata complete = false
    Thumbnail series = false
    -----
    Plane #0 <=> Z 0, C 0, T 0

Series #6 :
    Image count = 1
    RGB = false (1) 
    Interleaved = false
    Indexed = false (false color)
    Width = 32
    Height = 32
    SizeZ = 1
    SizeT = 1
    SizeC = 1
    Tile size = 1 x 32
    Thumbnail size = 32 x 32
    Endianness = intel (little)
    Dimension order = XYCZT (uncertain)
    Pixel type = double
    Valid bits per pixel = 64
    Metadata complete = false
    Thumbnail series = false
    -----
    Plane #0 <=> Z 0, C 0, T 0

Reading global metadata
Axis:0:0: c
Axis:0:1: y
Axis:0:2: x

Reading series #0 metadata

The first resolution of the label image is appended to the image resolutions and each follow-up label resolution is detected as a separate image of pixel type double.

Since labels are not really supported by the OME ROI model, I see two options to handle these datasets up for discussion: