code: def resize_long(src, size, interp=2):
      """Resizes longer edge to size.
      Note: `resize_long` uses OpenCV (not the CV2 Python library).
      MXNet must have been built with OpenCV for `resize_long` to work.
      Resizes the original image by setting the longer edge to size
      and setting the shorter edge accordingly. This will ensure the new image will
      fit into the `size` specified.
      Resizing function is called from OpenCV.
  
      Parameters
      ----------
      src : NDArray
          The original image.
      size : int
          The length to be set for the shorter edge.
      interp : int, optional, default=2
          Interpolation method used for resizing the image.
          Possible values:
          0: Nearest Neighbors Interpolation.
          1: Bilinear interpolation.
          2: Area-based (resampling using pixel area relation). It may be a
          preferred method for image decimation, as it gives moire-free
          results. But when the image is zoomed, it is similar to the Nearest
          Neighbors method. (used by default).
          3: Bicubic interpolation over 4x4 pixel neighborhood.
          4: Lanczos interpolation over 8x8 pixel neighborhood.
          9: Cubic for enlarge, area for shrink, bilinear for others
          10: Random select from interpolation method mentioned above.
          Note:
          When shrinking an image, it will generally look best with AREA-based
          interpolation, whereas, when enlarging an image, it will generally look best
          with Bicubic (slow) or Bilinear (faster but still looks OK).
          More details can be found in the documentation of OpenCV, please refer to
          http://docs.opencv.org/master/da/d54/group__imgproc__transform.html.
      Returns
      -------
      NDArray
          An 'NDArray' containing the resized image.
      Example
      -------
      >>> with open("flower.jpeg", 'rb') as fp:
      ...     str_image = fp.read()
      ...
      >>> image = mx.img.imdecode(str_image)
      >>> image
      <NDArray 2321x3482x3 @cpu(0)>
      >>> size = 640
      >>> new_image = mx.img.resize_long(image, size)
      >>> new_image
      <NDArray 386x640x3 @cpu(0)>
      """
      from mxnet.image.image import _get_interp_method as get_interp
  
      h, w, _ = src.shape
      if h > w:
          new_h, new_w = size, size * w // h
      else:
          new_h, new_w = size * h // w, size
      return imresize(
          src,
          new_w,
          new_h,
          interp=get_interp(interp, (h, w, new_h, new_w)),
      )
  
file_path: gluon-cv/gluoncv/data/transforms/image.py
imports: from __future__ import division
  import random
  import numpy
  import mxnet
  from mxnet import nd
  from mxnet.base import numeric_types
label_desc: Use image node_id 2 for calling a global function with example usage: resize_long(src, size, interp) and returns: imresize