docs: def __skeleton_maximum(graph, image, boundary_term, spacing):
      """
      A skeleton for the calculation of maximum intensity based boundary terms.
      
      This function is equivalent to energy_voxel.__skeleton_difference(), but uses the
      maximum intensity rather than the intensity difference of neighbouring voxels. It is
      therefore suitable to be used with the gradient image, rather than the original
      image.
      
      The computation of the edge weights follows
      
      .. math::
      
          w(p,q) = g(max(I_p, I_q))
      
      ,where :math:`g(\cdot)` is the supplied boundary term function.
      
      @param graph An initialized graph.GCGraph object
      @type graph.GCGraph
      @param image The image to compute on
      @type image numpy.ndarray
      @param boundary_term A function to compute the boundary term over an array of
                           maximum intensities
      @type boundary_term function
      @param spacing A sequence containing the slice spacing used for weighting the
                     computed neighbourhood weight value for different dimensions. If
                     False, no distance based weighting of the graph edges is performed.
      @param spacing sequence | False    
      
      @see energy_voxel.__skeleton_difference() for more details.
      """
      def intensity_maximum(neighbour_one, neighbour_two):
          """
          Takes two voxel arrays constituting neighbours and computes the maximum between
          their intensities.
          """
          return scipy.maximum(neighbour_one, neighbour_two)
          
      __skeleton_base(graph, numpy.abs(image), boundary_term, intensity_maximum, spacing)