MCPcopy Create free account
hub / github.com/Project-MONAI/MONAI / __init__

Method __init__

monai/utils/ordering.py:44–87  ·  view source on GitHub ↗
(
        self,
        ordering_type: str,
        spatial_dims: int,
        dimensions: tuple[int, int, int] | tuple[int, int, int, int],
        reflected_spatial_dims: tuple[bool, bool] | None = None,
        transpositions_axes: tuple[tuple[int, int], ...] | tuple[tuple[int, int, int], ...] | None = None,
        rot90_axes: tuple[tuple[int, int], ...] | None = None,
        transformation_order: tuple[str, ...] = (
            OrderingTransformations.TRANSPOSE.value,
            OrderingTransformations.ROTATE_90.value,
            OrderingTransformations.REFLECT.value,
        ),
    )

Source from the content-addressed store, hash-verified

42 """
43
44 def __init__(
45 self,
46 ordering_type: str,
47 spatial_dims: int,
48 dimensions: tuple[int, int, int] | tuple[int, int, int, int],
49 reflected_spatial_dims: tuple[bool, bool] | None = None,
50 transpositions_axes: tuple[tuple[int, int], ...] | tuple[tuple[int, int, int], ...] | None = None,
51 rot90_axes: tuple[tuple[int, int], ...] | None = None,
52 transformation_order: tuple[str, ...] = (
53 OrderingTransformations.TRANSPOSE.value,
54 OrderingTransformations.ROTATE_90.value,
55 OrderingTransformations.REFLECT.value,
56 ),
57 ) -> None:
58 super().__init__()
59 self.ordering_type = ordering_type
60
61 if self.ordering_type not in list(OrderingType):
62 raise ValueError(
63 f"ordering_type must be one of the following {list(OrderingType)}, but got {self.ordering_type}."
64 )
65
66 self.spatial_dims = spatial_dims
67 self.dimensions = dimensions
68
69 if len(dimensions) != self.spatial_dims + 1:
70 raise ValueError(f"dimensions must be of length {self.spatial_dims + 1}, but got {len(dimensions)}.")
71
72 self.reflected_spatial_dims = reflected_spatial_dims
73 self.transpositions_axes = transpositions_axes
74 self.rot90_axes = rot90_axes
75 if len(set(transformation_order)) != len(transformation_order):
76 raise ValueError(f"No duplicates are allowed. Received {transformation_order}.")
77
78 for transformation in transformation_order:
79 if transformation not in list(OrderingTransformations):
80 raise ValueError(
81 f"Valid transformations are {list(OrderingTransformations)} but received {transformation}."
82 )
83 self.transformation_order = transformation_order
84
85 self.template = self._create_template()
86 self._sequence_ordering = self._create_ordering()
87 self._revert_sequence_ordering = np.argsort(self._sequence_ordering)
88
89 def __call__(self, x: np.ndarray) -> np.ndarray:
90 x = x[self._sequence_ordering]

Callers

nothing calls this directly

Calls 2

_create_templateMethod · 0.95
_create_orderingMethod · 0.95

Tested by

no test coverage detected