Displacements are multiscales#145
Conversation
Automated Review URLs |
|
Maybe should add a recommendation/statement about which resolution level of the displacement field implementations should use? If multiple resolution levels are provided, implementations MAY choose any resolution level to compute the output. Also, do we need to add constraints/hints on possible pathologies that can arise when downsampling vector fields/coordinate lists? |
👍 And possibly SHOULD use the finest resolution if the result is used beyond quick visualization purposes.
We could also recommend that anti-alias filtering SHOULD be applied when downsampling, similar to an intensity image multiscale. |
|
This pull request has been mentioned on Image.sc Forum. There might be relevant details there: https://forum.image.sc/t/serialise-displacement-field-as-ome-zarr/121117/6 |
|
@bogovicj @clbarnes @melonora @LucaMarconato @thewtex @tischi @kevinyamauchi @jni @DragaDoncila @perlman @d-v-b last call - any more feedback on this? |
|
One comment not in the diff of this PR:
I haven't worked with this yet so I may be missing something, but aren't the two representations (coordinate and displacements) equivalent? Why do we have 2 different "if"? Shouldn't be the implication the same? EDIT: ah I see below that " So the text it's correct, but it can be confusing if someone is new with the concept because the definition of how displacement and coordinates operates as a function is missing. The specs start right away in showing how to represent them, but not how they would behave as functions. |
|
Thanks @jo-mueller for opening this! My comments are most about the text that is not touched by this PR, but that I reviewed together with the changes. I think the changes are mostly ok (and with the new usage of multiscales the text is shorter and clearer). |
|
@LucaMarconato thanks for the review! I expanded the example below the hint box a bit to make the procedure more clear on how the retrieved, interpolated vector is obtained from a given input point I'm considering the |
Fixes ome/ngff#520
This changes how displacement fields and coordinate arrays are expected to be stored in displacement/coordinate transforms, as discussed in the 06/2026 Hackathon at EMBL.
The gist: The arrays are now simply multiscale groups and the displacement/coordinate dimension should go into the channel dimension of the data.
@bogovicj @clbarnes @melonora @LucaMarconato @thewtex @tischi @kevinyamauchi @jni @DragaDoncila @perlman
...who am I forgetting?