code: def label(array, Bc=None, out=None, output=None):
      """
      labeled, nr_objects = label(array, Bc={3x3 cross}, output={new array})
  
      Label the array, which is interpreted as a binary array
  
      This is also called *connected component labeled*, where the connectivity
      is defined by the structuring element ``Bc``.
  
      See: https://en.wikipedia.org/wiki/Connected-component_labeling
  
      Parameters
      ----------
      array : ndarray
          This will be interpreted as binary array
      Bc : ndarray, optional
          This is the structuring element to use
      out : ndarray, optional
          Output array. Must be a C-array, of type np.int32
  
      Returns
      -------
      labeled : ndarray
          Labeled result
      nr_objects : int
          Number of objects
      """
      output = _get_output(
          array, out, "labeled.label", np.int32, output=output
      )
      output[:] = array != 0
      Bc = get_structuring_elem(output, Bc)
      nr_objects = _labeled.label(output, Bc)
      return output, nr_objects
  
imports: from __future__ import division
  import numpy
  from .morph import get_structuring_elem
  from .None import _labeled
  from .internal import _get_output
  from ._filters import _checked_mode2int
  import mahotas
label_desc: Use image node_id 1 for calling a global function with example usage: label(array, Bc, out, output) and returns: output,  nr_objects