Skip to content

Commit 797cdb7

Browse files
committed
Fix #8442: pass meta_data to EnsureChannelFirst when track_meta is False
When set_track_meta(False) is active, MetaTensor.ensure_torch_and_prune_meta returns a plain tensor. The subsequent EnsureChannelFirst() call then has no metadata source, causing a ValueError. Fix: pass meta_data explicitly when img is not a MetaTensor. Signed-off-by: UGBOMEH OGOCHUKWU WILLIAMS <williamsugbomeh@gmail.com>
1 parent 851054c commit 797cdb7

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

monai/transforms/io/array.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,10 @@ def __call__(self, filename: Sequence[PathLike] | PathLike, reader: ImageReader
300300
img_array, meta_data, self.simple_keys, pattern=self.pattern, sep=self.sep
301301
)
302302
if self.ensure_channel_first:
303-
img = EnsureChannelFirst()(img)
303+
if not isinstance(img, MetaTensor):
304+
img = EnsureChannelFirst()(img, meta_dict=meta_data)
305+
else:
306+
img = EnsureChannelFirst()(img)
304307
if self.image_only:
305308
return img
306309
return img, img.meta if isinstance(img, MetaTensor) else meta_data

0 commit comments

Comments
 (0)