From 946ca9fdf60ad3b45a9f3186c37ef7d177fdd261 Mon Sep 17 00:00:00 2001 From: Wenqi Li Date: Tue, 7 Feb 2023 21:24:50 +0000 Subject: [PATCH 1/2] fixes #5935 Signed-off-by: Wenqi Li --- monai/transforms/spatial/array.py | 2 +- tests/test_spacing.py | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/monai/transforms/spatial/array.py b/monai/transforms/spatial/array.py index 3cb23a541d..947ef05650 100644 --- a/monai/transforms/spatial/array.py +++ b/monai/transforms/spatial/array.py @@ -553,7 +553,7 @@ def __call__( input_affine = np.eye(sr + 1, dtype=np.float64) affine_ = to_affine_nd(sr, convert_data_type(input_affine, np.ndarray)[0]) - out_d = self.pixdim[:sr] + out_d = self.pixdim[:sr].copy() if out_d.size < sr: out_d = np.append(out_d, [out_d[-1]] * (sr - out_d.size)) diff --git a/tests/test_spacing.py b/tests/test_spacing.py index 5e9b54ca16..72e683ca4c 100644 --- a/tests/test_spacing.py +++ b/tests/test_spacing.py @@ -351,6 +351,16 @@ def test_inverse_mn_mx(self, device, recompute, align, scale_extent): self.assertEqual(img_out.shape, img_t.shape) self.assertLess(((affine - img_out.affine) ** 2).sum() ** 0.5, 5e-2) + def test_property_no_change(self): + affine = torch.tensor( + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], dtype=torch.float32, device="cpu" + ) + affine[:3] *= 1 - 1e-4 # make sure it's not exactly target but close to the target + img = MetaTensor(torch.rand((1, 10, 9, 8), dtype=torch.float32), affine=affine, meta={"fname": "somewhere"}) + tr = Spacing(pixdim=[1.0, 1.0, 1.0]) + tr(img) + assert_allclose(tr.pixdim, [1.0, 1.0, 1.0], type_test=False) + if __name__ == "__main__": unittest.main() From eca50bb8d84aee91df0388be9729605295d8b272 Mon Sep 17 00:00:00 2001 From: Wenqi Li Date: Wed, 8 Feb 2023 08:54:39 +0000 Subject: [PATCH 2/2] only import npt when type checking Signed-off-by: Wenqi Li --- monai/metrics/rocauc.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/monai/metrics/rocauc.py b/monai/metrics/rocauc.py index 438d16f0df..56d9faa9dd 100644 --- a/monai/metrics/rocauc.py +++ b/monai/metrics/rocauc.py @@ -12,10 +12,13 @@ from __future__ import annotations import warnings -from typing import cast +from typing import TYPE_CHECKING, cast import numpy as np -import numpy.typing as npt + +if TYPE_CHECKING: + import numpy.typing as npt + import torch from monai.utils import Average, look_up_option