docstr: Warping with python itk
  Args:
      image: itk image of array shape 2D: (H, W) or 3D: (D, H, W)
      ddf: numpy array of shape 2D: (2, H, W) or 3D: (3, D, H, W)
  Returns:
      warped_image: numpy array of shape (H, W) or (D, H, W)
code: def itk_warp(self, image, ddf):
      """
      Warping with python itk
      Args:
          image: itk image of array shape 2D: (H, W) or 3D: (D, H, W)
          ddf: numpy array of shape 2D: (2, H, W) or 3D: (3, D, H, W)
      Returns:
          warped_image: numpy array of shape (H, W) or (D, H, W)
      """
      # MONAI -> ITK ddf
      displacement_field = monai_to_itk_ddf(image, ddf)
  
      # Resample using the ddf
      interpolator = itk.LinearInterpolateImageFunction.New(image)
      warped_image = itk.warp_image_filter(
          image,
          interpolator=interpolator,
          displacement_field=displacement_field,
          output_parameters_from_image=image,
      )
  
      return np.asarray(warped_image)
  
imports: from __future__ import annotations
  import itertools
  import os
  import tempfile
  import unittest
  import numpy
  import torch
  from parameterized import parameterized
  import monai
  import monai.transforms
  from monai.apps import download_url
  from monai.data import ITKReader
  from monai.data.itk_torch_bridge import get_itk_image_center, itk_image_to_metatensor, itk_to_monai_affine, metatensor_to_itk_image, monai_to_itk_affine, monai_to_itk_ddf
  from monai.networks.blocks import Warp
  from monai.transforms import Affine
  from monai.utils import optional_import, set_determinism
  from tests.utils import assert_allclose, skip_if_downloading_fails, skip_if_quick, test_is_quick, testing_data_config
label_desc: Use image node_id 7 for calling the TestITKTorchAffineMatrixBridge obj's underlying member method code with example usage: obj.itk_warp(image, ddf) and returns: np