Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Write up new image-label proposal #71

Merged
merged 4 commits into from
Sep 14, 2020
Merged

Conversation

joshmoore
Copy link
Member

Follows on from #70 with the color specification. Comments from #70 (review) may need re-reviewing.

spec.md Outdated
@@ -47,7 +47,7 @@ for public re-use.
└── 0 # Multiscale, labeled image. The name is unimportant but is registered in "labels".
├── .zgroup # Each labeled image is also a multiscaled image, and therefore a Zarr group.
├── .zattrs # Metadata of the related image and has an extra key, "color", with display information.
├── .zattrs # Metadata of the related image and as well as display information under the "label" key.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should it be

Suggested change
├── .zattrs # Metadata of the related image and as well as display information under the "label" key.
├── .zattrs # Metadata of the related image and as well as display information under the "image-label" key.

as per the changes in this PR?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Extra 'and' not needed?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is marked as 'resolved' but it hasn't been changed to "image-label" as per @sbesson's comment?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should it also contain "multiscales" metadata?

Co-authored-by: Sébastien Besson <[email protected]>
Groups containing the `image-label` dictionary represent an image segmentation
in which each unique pixel value represents a separate segmented object.
`image-label` groups MUST also contain `multiscales` metadata and the two
"datasets" series MUST have the same number of entries.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a bit confused where in the hierarchy the image-label metadata goes compared with the multiscales metadata.

Re:

└── labels
        │
        ├── .zgroup           # The labels group is a container which holds a list
        ├── .zattrs           # of labels to make the objects easily discoverable,
        │                     # All labels will be listed in `.zattrs` e.g. `{ "labels": [ "original/0" ] }`
        │                     # Each dimension of the label `(t, c, z, y, x)` should be either the same as the
        │                     # corresponding dimension of the image, or `1` if that dimension of the label
        │                     # is irrelevant.
        │
        └── original          # Intermediate folders are permitted but not necessary
            │                 # and currently contain no extra metadata.
            │
            └── 0             # Multiscale, labeled image. The name is unimportant but is registered in "labels".
                ├── .zgroup   # Each labeled image is also a multiscaled image, and therefore a Zarr group.
                ├── .zattrs   # Metadata of the related image and as well as display information under the "label" key.
                │
                ├── 0         # Each multiscale level is stored as a separate Zarr array, as above.
                │   ...
                └── n

The "group that contains image-label dictionary" is the lower-level .zgroup (sibling of the .zattrs that contains the "image-label" metadata)? So this group "MUST also contain multiscales metadata"?

Copy link
Member

@sbesson sbesson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Last changes match my understanding of the recent discussions especially with regard to the handling of unique values. My vote goes towards committing to this proposal in its current form by getting this merged and released, start pointing our community at it and drive it via our own use cases.

### "image-label" metadata

Groups containing the `image-label` dictionary represent an image segmentation
in which each unique pixel value represents a separate segmented object.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
in which each unique pixel value represents a separate segmented object.
in which each unique pixel value represents a separate segmented object.
Only integer pixel types are supported.

Trying to compare a floating-point pixel value with the floating point in the JSON metadata is difficult.

Copy link
Member

@manics manics left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One suggestion to prevent floating-point being used as labels, but otherwise looks fine to me.

@joshmoore
Copy link
Member Author

Added. We can work on the wording in the follow ups with the community.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants