class_docstr: Randomly select a scale factor to resize the image according to given range.
  
  Args:
      min_scale_factor(float): The minimum scale factor for targeted scale.
      max_scale_factor(float): The maximum scale factor for targeted scale.
      scale_step_size(float): Scale interval.
class_docstr_tok: ["Randomly","select","a","scale","factor","to","resize","the","image","according","to","given","range",".","Args",":","min_scale_factor","(","float",")",":","The","minimum","scale","factor","for","targeted","scale",".","max_scale_factor","(","float",")",":","The","maximum","scale","factor","for","targeted","scale",".","scale_step_size","(","float",")",":","Scale","interval","."]
code: def __call__(self, im: np.ndarray):
      if self.min_scale_factor == self.max_scale_factor:
          scale_factor = self.min_scale_factor
  
      elif self.scale_step_size == 0:
          scale_factor = np.random.uniform(
              self.min_scale_factor, self.max_scale_factor
          )
  
      else:
          num_steps = int(
              (self.max_scale_factor - self.min_scale_factor)
              / self.scale_step_size
              + 1
          )
          scale_factors = np.linspace(
              self.min_scale_factor, self.max_scale_factor, num_steps
          ).tolist()
          np.random.shuffle(scale_factors)
          scale_factor = scale_factors[0]
      w = int(round(scale_factor * im.shape[1]))
      h = int(round(scale_factor * im.shape[0]))
  
      im = F.resize(im, (w, h), cv2.INTER_LINEAR)
      return im
  
imports: import random
  from typing import Callable, Union, List, Tuple
  import cv2
  import PIL
  import numpy
  import paddlehub.vision.functional
label_desc: Use image node_id 2 for calling the ResizeStepScaling obj's underlying member method code with example usage: obj.__call__(im) and returns: im