code: def bbox_xywh_to_xyxy(xywh):
      """Convert bounding boxes from format (xmin, ymin, w, h) to (xmin, ymin, xmax, ymax)
  
      Parameters
      ----------
      xywh : list, tuple or numpy.ndarray
          The bbox in format (x, y, w, h).
          If numpy.ndarray is provided, we expect multiple bounding boxes with
          shape `(N, 4)`.
  
      Returns
      -------
      tuple or numpy.ndarray
          The converted bboxes in format (xmin, ymin, xmax, ymax).
          If input is numpy.ndarray, return is numpy.ndarray correspondingly.
  
      """
      if isinstance(xywh, (tuple, list)):
          if not len(xywh) == 4:
              raise IndexError(
                  "Bounding boxes must have 4 elements, given {}".format(
                      len(xywh)
                  )
              )
          w, h = np.maximum(xywh[2] - 1, 0), np.maximum(xywh[3] - 1, 0)
          return xywh[0], xywh[1], xywh[0] + w, xywh[1] + h
      elif isinstance(xywh, np.ndarray):
          if not xywh.size % 4 == 0:
              raise IndexError(
                  "Bounding boxes must have n * 4 elements, given {}".format(
                      xywh.shape
                  )
              )
          xyxy = np.hstack(
              (
                  xywh[:, :2],
                  xywh[:, :2] + np.maximum(0, xywh[:, 2:4] - 1),
              )
          )
          return xyxy
      else:
          raise TypeError(
              "Expect input xywh a list, tuple or numpy.ndarray, given {}".format(
                  type(xywh)
              )
          )
  
imports: from __future__ import division
  import numpy
label_desc: Use image node_id 2 for calling a global function with example usage: bbox_xywh_to_xyxy(xywh) and returns: xywh,  xywh,  unknown,  unknown, xyxy