code: def run(self, workspace):
      x_name = self.x_name.value
  
      y_name = self.y_name.value
  
      images = workspace.image_set
  
      x = images.get_image(x_name)
  
      dimensions = x.dimensions
  
      x_data_orig = x.pixel_data
  
      x_data = x_data_orig.copy()
  
      th_abs = None
  
      if self.exclude_mode.value == MODE_THRESHOLD:
          th_abs = self.min_intensity.value
      elif self.exclude_mode.value == MODE_MASK:
          mask = images.get_image(
              self.mask_image.value
          ).pixel_data.astype(bool)
          x_data[~mask] = 0
      elif self.exclude_mode.value == MODE_OBJECTS:
          mask_objects = workspace.object_set.get_objects(
              self.mask_objects.value
          )
          mask = mask_objects.segmented.astype(bool)
          x_data[~mask] = 0
      else:
          raise NotImplementedError("Invalid background method choice")
  
      maxima_coords = peak_local_max(
          x_data,
          min_distance=self.min_distance.value,
          threshold_abs=th_abs,
      )
      y_data = numpy.zeros(x_data.shape, dtype=bool)
      y_data[tuple(maxima_coords.T)] = True
  
      if self.label_maxima:
          y_data = scipy.ndimage.label(y_data)[0]
  
      y = Image(
          dimensions=dimensions,
          image=y_data,
          parent_image=x,
          convert=False,
      )
  
      images.add(y_name, y)
  
      if self.show_window:
          workspace.display_data.x_data = x_data_orig
  
          workspace.display_data.y_data = y_data
  
          workspace.display_data.dimensions = dimensions
  
file_path: CellProfiler/src/frontend/cellprofiler/modules/findmaxima.py
imports: import numpy
  from skimage.feature import peak_local_max
  from skimage.morphology import disk, ball, dilation
  import scipy.ndimage
  from cellprofiler_core.image import Image
  from cellprofiler_core.module import ImageProcessing
  from cellprofiler_core.setting import Color, Binary
  from cellprofiler_core.setting.choice import Choice
  from cellprofiler_core.setting.subscriber import ImageSubscriber, LabelSubscriber
  from cellprofiler_core.setting.text import Integer, Float
  from cellprofiler_core.utilities.core.object import overlay_labels
label_desc: Use image node_id 4 for calling the FindMaxima obj's underlying member method code with example usage: obj.run(workspace) without return types