class_docstr: resize image by target_size and max_size
  Args:
      target_size (int): the target size of image
      keep_ratio (bool): whether keep_ratio or not, default true
      interp (int): method of resize
class_docstr_tok: ["resize","image","by","target_size","and","max_size","Args",":","target_size","(","int",")",":","the","target","size","of","image","keep_ratio","(","bool",")",":","whether","keep_ratio","or","not",",","default","true","interp","(","int",")",":","method","of","resize"]
docstr: Args:
      im (np.ndarray): image (np.ndarray)
      im_info (dict): info of image
  Returns:
      im (np.ndarray):  processed image (np.ndarray)
      im_info (dict): info of processed image
docstr_tok: ["Args",":","im","(","np.ndarray",")",":","image","(","np.ndarray",")","im_info","(","dict",")",":","info","of","image","Returns",":","im","(","np.ndarray",")",":","processed","image","(","np.ndarray",")","im_info","(","dict",")",":","info","of","processed","image"]
code: def __call__(self, im, im_info):
      """
      Args:
          im (np.ndarray): image (np.ndarray)
          im_info (dict): info of image
      Returns:
          im (np.ndarray):  processed image (np.ndarray)
          im_info (dict): info of processed image
      """
      assert len(self.target_size) == 2
      assert self.target_size[0] > 0 and self.target_size[1] > 0
      im_channel = im.shape[2]
      im_scale_y, im_scale_x = self.generate_scale(im)
      im = cv2.resize(
          im,
          None,
          None,
          fx=im_scale_x,
          fy=im_scale_y,
          interpolation=self.interp,
      )
      im_info["im_shape"] = np.array(im.shape[:2]).astype("float32")
      im_info["scale_factor"] = np.array(
          [im_scale_y, im_scale_x]
      ).astype("float32")
      return im, im_info
  
imports: import cv2
  import numpy
label_desc: Use image node_id 2 for calling the Resize obj's underlying member method code with example usage: obj.__call__(im, im_info) and returns: im,  im_info