Skip to content

ResampleToMatch changes filename_or_obj metadata. #4144

@karwojan

Description

@karwojan

There is a logical mistake in ResampleToMatch(d) transform, because this function copies whole dst metadata (which contains target affine) and put as src metadata into input image. This results in replacing of "filename_or_obj" field in src metadata.

>>> from monai.transforms import LoadImaged, ResampleToMatchd, AddChanneld
>>> data = {"image": "/tmp/image.nii.gz", "labels": "/tmp/labels.mgz"}
>>> data = LoadImaged(["image", "labels"], reader="nibabelreader")(data)
>>> data = AddChanneld(["image", "labels"])(data)
>>> 
>>> print("image filename:", data["image_meta_dict"]["filename_or_obj"])
image filename: /tmp/image.nii.gz
>>> print("labels filename:", data["labels_meta_dict"]["filename_or_obj"])
labels filename: /tmp/labels.mgz
>>> data = ResampleToMatchd("labels", "image_meta_dict")(data)
>>> 
>>> print("image filename:", data["image_meta_dict"]["filename_or_obj"])
image filename: /tmp/image.nii.gz
>>> print("labels filename:", data["labels_meta_dict"]["filename_or_obj"])
labels filename: /tmp/image.nii.gz

filename_or_obj field in labels_meta_dict should stay as it was before ResampleToMatchd transform.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type
No fields configured for issues without a type.

Projects

Relationships

None yet

Development

No branches or pull requests

Issue actions