code: def transform(self, image_nd, clicks_lists):
      assert image_nd.shape[0] == 1 and len(clicks_lists) == 1
      image_height, image_width = image_nd.shape[2:4]
      self._counts = None
  
      if (
          image_height < self.crop_height
          or image_width < self.crop_width
      ):
          return image_nd, clicks_lists
  
      self.x_offsets = get_offsets(
          image_width, self.crop_width, self.min_overlap
      )
      self.y_offsets = get_offsets(
          image_height, self.crop_height, self.min_overlap
      )
      self._counts = np.zeros((image_height, image_width))
  
      image_crops = []
      for dy in self.y_offsets:
          for dx in self.x_offsets:
              self._counts[
                  dy : dy + self.crop_height, dx : dx + self.crop_width
              ] += 1
              image_crop = image_nd[
                  :,
                  :,
                  dy : dy + self.crop_height,
                  dx : dx + self.crop_width,
              ]
              image_crops.append(image_crop)
      image_crops = paddle.concat(image_crops, axis=0)
      self._counts = paddle.to_tensor(self._counts, dtype="float32")
  
      clicks_list = clicks_lists[0]
      clicks_lists = []
      for dy in self.y_offsets:
          for dx in self.x_offsets:
              crop_clicks = [
                  x.copy(coords=(x.coords[0] - dy, x.coords[1] - dx))
                  for x in clicks_list
              ]
              clicks_lists.append(crop_clicks)
  
      return image_crops, clicks_lists
  
file_path: PaddleSeg/EISeg/eiseg/inference/transforms/crops.py
imports: import math
  import paddle
  import numpy
  from inference.clicker import Click
  from .base import BaseTransform
label_desc: Use image node_id 2 for calling the Crops obj's underlying member method code with example usage: obj.transform(image_nd, clicks_lists) and returns: image_crops,  clicks_lists, image_nd,  clicks_lists