Skip to content

Commit 464a99d

Browse files
slicepasteeinsyang723IamTingTing
committed
Fix issue within TraceableTransform
Previously, a method was defined in `meta_tensor`, and using `data_array.clone()` introduced additional costs. After reevaluating the code, modifying the `TraceableTransform.track_transform_meta()` method executed by `SpatialResample` makes it much cleaner and more maintainable. Signed-off-by: Wei_Chuan, Chiang <[email protected]> Co-authored-by: einsyang723 <[email protected]> Co-authored-by: IamTingTing <[email protected]>
1 parent 3935ff5 commit 464a99d

File tree

3 files changed

+3
-8
lines changed

3 files changed

+3
-8
lines changed

monai/data/meta_tensor.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -477,10 +477,6 @@ def pixdim(self):
477477
return [affine_to_spacing(a) for a in self.affine]
478478
return affine_to_spacing(self.affine)
479479

480-
def set_pixdim(self) -> None:
481-
"""Update pixdim based on current affine."""
482-
self.meta[MetaKeys.PIXDIM][1 : 1 + len(self.pixdim)] = affine_to_spacing(self.affine)
483-
484480
def peek_pending_shape(self):
485481
"""
486482
Get the currently expected spatial shape as if all the pending operations are executed.

monai/transforms/inverse.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
from monai import transforms
2222
from monai.data.meta_obj import MetaObj, get_track_meta
2323
from monai.data.meta_tensor import MetaTensor
24-
from monai.data.utils import to_affine_nd
24+
from monai.data.utils import to_affine_nd, affine_to_spacing
2525
from monai.transforms.traits import InvertibleTrait
2626
from monai.transforms.transform import Transform
2727
from monai.utils import (
@@ -197,6 +197,8 @@ def track_transform_meta(
197197
else:
198198
raise
199199
out_obj.meta[MetaKeys.AFFINE] = convert_to_tensor(affine, device=torch.device("cpu"), dtype=torch.float64)
200+
out_obj.meta[MetaKeys.PIXDIM] = affine_to_spacing(out_obj.meta[MetaKeys.AFFINE])
201+
200202

201203
if not (get_track_meta() and transform_info and transform_info.get(TraceKeys.TRACING)):
202204
if isinstance(data, Mapping):

monai/transforms/spatial/array.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -535,9 +535,6 @@ def __call__(
535535
dtype=dtype,
536536
lazy=lazy_,
537537
)
538-
if isinstance(data_array, MetaTensor) and "pixdim" in data_array.meta:
539-
data_array = cast(MetaTensor, data_array.clone())
540-
data_array.set_pixdim()
541538
if self.recompute_affine and isinstance(data_array, MetaTensor):
542539
if lazy_:
543540
raise NotImplementedError("recompute_affine is not supported with lazy evaluation.")

0 commit comments

Comments
 (0)