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

Method __call__

monai/transforms/spatial/array.py:268–338  ·  view source on GitHub ↗

Args: img: input image to be resampled to match ``img_dst``. It currently supports channel-first arrays with at most three spatial dimensions. mode: {``"bilinear"``, ``"nearest"``} or spline interpolation order 0-5 (integers). Interpol

(  # type: ignore
        self,
        img: torch.Tensor,
        img_dst: torch.Tensor,
        mode: str | int | None = None,
        padding_mode: str | None = None,
        align_corners: bool | None = None,
        dtype: DtypeLike = None,
        lazy: bool | None = None,
    )

Source from the content-addressed store, hash-verified

266 """
267
268 def __call__( # type: ignore
269 self,
270 img: torch.Tensor,
271 img_dst: torch.Tensor,
272 mode: str | int | None = None,
273 padding_mode: str | None = None,
274 align_corners: bool | None = None,
275 dtype: DtypeLike = None,
276 lazy: bool | None = None,
277 ) -> torch.Tensor:
278 """
279 Args:
280 img: input image to be resampled to match ``img_dst``. It currently supports channel-first arrays with
281 at most three spatial dimensions.
282 mode: {``"bilinear"``, ``"nearest"``} or spline interpolation order 0-5 (integers).
283 Interpolation mode to calculate output values. Defaults to ``"bilinear"``.
284 See also: https://pytorch.org/docs/stable/generated/torch.nn.functional.grid_sample.html
285 When it's an integer, the numpy (cpu tensor)/cupy (cuda tensor) backends will be used
286 and the value represents the order of the spline interpolation.
287 See also: https://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.map_coordinates.html
288 padding_mode: {``"zeros"``, ``"border"``, ``"reflection"``}
289 Padding mode for outside grid values. Defaults to ``"border"``.
290 See also: https://pytorch.org/docs/stable/generated/torch.nn.functional.grid_sample.html
291 When `mode` is an integer, using numpy/cupy backends, this argument accepts
292 {'reflect', 'grid-mirror', 'constant', 'grid-constant', 'nearest', 'mirror', 'grid-wrap', 'wrap'}.
293 See also: https://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.map_coordinates.html
294 align_corners: Geometrically, we consider the pixels of the input as squares rather than points.
295 Defaults to ``None``, effectively using the value of `self.align_corners`.
296 See also: https://pytorch.org/docs/stable/generated/torch.nn.functional.grid_sample.html
297 dtype: data type for resampling computation. Defaults to ``self.dtype`` or
298 ``np.float64`` (for best precision). If ``None``, use the data type of input data.
299 To be compatible with other modules, the output data type is always `float32`.
300 lazy: a flag to indicate whether this transform should execute lazily or not
301 during this call. Setting this to False or True overrides the ``lazy`` flag set
302 during initialization for this call. Defaults to None.
303
304 Raises:
305 ValueError: When the affine matrix of the source image is not invertible.
306 Returns:
307 Resampled input tensor or MetaTensor.
308 """
309 if img_dst is None:
310 raise RuntimeError("`img_dst` is missing.")
311 dst_affine = img_dst.peek_pending_affine() if isinstance(img_dst, MetaTensor) else torch.eye(4)
312 lazy_ = self.lazy if lazy is None else lazy
313 img = super().__call__(
314 img=img,
315 dst_affine=dst_affine,
316 spatial_size=img_dst.peek_pending_shape() if isinstance(img_dst, MetaTensor) else img_dst.shape[1:],
317 mode=mode,
318 padding_mode=padding_mode,
319 align_corners=align_corners,
320 dtype=dtype,
321 lazy=lazy_,
322 )
323 if not lazy_:
324 if isinstance(img, MetaTensor):
325 img.affine = dst_affine

Callers

nothing calls this directly

Calls 6

peek_pending_affineMethod · 0.80
peek_pending_shapeMethod · 0.80
getMethod · 0.80
popMethod · 0.80
__call__Method · 0.45
updateMethod · 0.45

Tested by

no test coverage detected