Skip to content

Commit 36ded05

Browse files
committed
Fix #8442: simplify channel-first call and add regression test
Apply review suggestion: pass meta_data unconditionally to EnsureChannelFirst — when img is a MetaTensor, EnsureChannelFirst overrides meta_dict with img.meta internally, so the explicit if/else is not needed. Add regression test covering set_track_meta(False) with ensure_channel_first=True on LoadImage. Signed-off-by: UGBOMEH OGOCHUKWU WILLIAMS <williamsugbomeh@gmail.com>
1 parent 052d055 commit 36ded05

2 files changed

Lines changed: 11 additions & 4 deletions

File tree

monai/transforms/io/array.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -300,10 +300,7 @@ 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-
if not isinstance(img, MetaTensor):
304-
img = EnsureChannelFirst()(img, meta_dict=meta_data)
305-
else:
306-
img = EnsureChannelFirst()(img)
303+
img = EnsureChannelFirst()(img, meta_dict=meta_data)
307304
if self.image_only:
308305
return img
309306
return img, img.meta if isinstance(img, MetaTensor) else meta_data

tests/transforms/test_load_image.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -497,6 +497,16 @@ def test_correct(self, input_param, expected_shape, track_meta):
497497
self.assertNotIsInstance(r, MetaTensor)
498498
self.assertFalse(hasattr(r, "affine"))
499499

500+
def test_track_meta_false_ensure_channel_first(self):
501+
try:
502+
set_track_meta(False)
503+
r = LoadImage(image_only=True, ensure_channel_first=True)(self.test_data)
504+
self.assertTupleEqual(r.shape, (1, 128, 128, 128))
505+
self.assertIsInstance(r, torch.Tensor)
506+
self.assertNotIsInstance(r, MetaTensor)
507+
finally:
508+
set_track_meta(True)
509+
500510

501511
if __name__ == "__main__":
502512
unittest.main()

0 commit comments

Comments
 (0)