code: def jc(result, reference):
      """
      Jaccard coefficient
  
      Computes the Jaccard coefficient between the binary objects in two images.
  
      Parameters
      ----------
      result: array_like
              Input data containing objects. Can be any type but will be converted
              into binary: background where 0, object everywhere else.
      reference: array_like
              Input data containing objects. Can be any type but will be converted
              into binary: background where 0, object everywhere else.
  
      Returns
      -------
      jc: float
          The Jaccard coefficient between the object(s) in `result` and the
          object(s) in `reference`. It ranges from 0 (no overlap) to 1 (perfect overlap).
  
      Notes
      -----
      This is a real metric. The binary images can therefore be supplied in any order.
      """
      result = numpy.atleast_1d(result.astype(numpy.bool_))
      reference = numpy.atleast_1d(reference.astype(numpy.bool_))
  
      intersection = numpy.count_nonzero(result & reference)
      union = numpy.count_nonzero(result | reference)
  
      try:
          jc = float(intersection) / float(union)
      except ZeroDivisionError:
          jc = 1.0
  
      return jc
  
imports: import numpy
  from scipy.ndimage import _ni_support
  from scipy.ndimage import distance_transform_edt, binary_erosion, generate_binary_structure
  from scipy.ndimage import label, find_objects
  from scipy.stats import pearsonr
label_desc: Use image node_id 2 for calling a global function with example usage: jc(result, reference) and returns: jc