code: def relabel_non_zero(label_image, start=1):
      r"""
      Relabel the regions of a label image.
      Re-processes the labels to make them consecutively and starting from start.
      Keeps all zero (0) labels, as they are considered background.
  
      Parameters
      ----------
      label_image : array_like
          A nD label map.
      start : integer
          The id of the first label to assign
  
      Returns
      -------
      relabel_map : ndarray
          The relabelled label map.
  
      See also
      --------
      relabel
      """
      if start <= 0:
          raise ArgumentError(
              "The starting value can not be 0 or lower."
          )
  
      l = list(scipy.unique(label_image))
      if 0 in l:
          l.remove(0)
      mapping = dict()
      mapping[0] = 0
      for key, item in zip(l, list(range(start, len(l) + start))):
          mapping[key] = item
  
      return relabel_map(label_image, mapping)
  
imports: import scipy
  from ..core.exceptions import ArgumentError
label_desc: Use image node_id 3 for calling a global function with example usage: relabel_non_zero(label_image, start) and returns: relabel_map