code: def pre(self, img):
      if not self._processed:
          image_dims = utils.get_img_shape(img)[2:]
          self._process_jitter_values(image_dims)
  
      dim_offsets = [
          np.random.randint(-value, value + 1) for value in self.jitter
      ]
      if K.image_data_format() == "channels_first":
          shift_vector = np.array([0, 0] + dim_offsets)
      else:
          shift_vector = np.array([0] + dim_offsets + [0])
  
      return shift(img, shift_vector, mode="wrap", order=0)
  
file_path: keras-vis/vis/input_modifiers.py
imports: from __future__ import absolute_import
  import numpy
  from scipy.ndimage.interpolation import shift
  from .utils import utils
  from keras import backend
label_desc: Use image node_id 3 for calling the Jitter obj's underlying member method code with example usage: obj.pre(img) and returns: shift