code: def on(self, image):
          
          shape = normalize_shape(image)
          if shape[0:2] == self.shape[0:2]:
              return self.deepcopy()
          else:
              keypoints = [kp.project(self.shape, shape) for kp in self.keypoints]
              return self.deepcopy(keypoints, shape)
docs: Project keypoints from one image to a new one.
  
          Parameters
          ----------
          image : ndarray or tuple of int
              New image onto which the keypoints are to be projected.
              May also simply be that new image's shape tuple.
  
          Returns
          -------
          keypoints : imgaug.KeypointsOnImage
              Object containing all projected keypoints.