code: def run(self, workspace):
      image = workspace.image_set.get_image(
          self.x_name.value, must_be_grayscale=True
      )
  
      radius = self.object_size.value / 2
  
      if self.method == ENHANCE:
          if self.enhance_method == E_SPECKLES:
              result = self.enhance_speckles(
                  image, radius, self.speckle_accuracy.value
              )
          elif self.enhance_method == E_NEURITES:
              result = self.enhance_neurites(
                  image, radius, self.neurite_choice.value
              )
              if self.wants_rescale.value:
                  result = skimage.exposure.rescale_intensity(result)
          elif self.enhance_method == E_DARK_HOLES:
              min_radius = max(1, int(self.hole_size.min / 2))
  
              max_radius = int((self.hole_size.max + 1) / 2)
  
              result = self.enhance_dark_holes(
                  image, min_radius, max_radius
              )
          elif self.enhance_method == E_CIRCLES:
              result = self.enhance_circles(image, radius)
          elif self.enhance_method == E_TEXTURE:
              result = self.enhance_texture(image, self.smoothing.value)
          elif self.enhance_method == E_DIC:
              result = self.enhance_dic(
                  image,
                  self.angle.value,
                  self.decay.value,
                  self.smoothing.value,
              )
          else:
              raise NotImplementedError(
                  "Unimplemented enhance method: %s"
                  % self.enhance_method.value
              )
      elif self.method == SUPPRESS:
          result = self.suppress(image, radius)
      else:
          raise ValueError("Unknown filtering method: %s" % self.method)
  
      result_image = Image(
          result, parent_image=image, dimensions=image.dimensions
      )
  
      workspace.image_set.add(self.y_name.value, result_image)
  
      if self.show_window:
          workspace.display_data.x_data = image.pixel_data
  
          workspace.display_data.y_data = result
  
          workspace.display_data.dimensions = image.dimensions
  
imports: import centrosome.filter
  import numpy
  import scipy.ndimage
  import skimage.exposure
  import skimage.filters
  import skimage.morphology
  import skimage.transform
  from cellprofiler_core.image import Image
  from cellprofiler_core.module import ImageProcessing
  from cellprofiler_core.setting import Binary
  from cellprofiler_core.setting.choice import Choice
  from cellprofiler_core.setting.range import IntegerRange
  from cellprofiler_core.setting.text import Float
  from cellprofiler_core.setting.text import Integer
  from cellprofiler.modules import _help
label_desc: Use image node_id 4 for calling the EnhanceOrSuppressFeatures obj's underlying member method code with example usage: obj.run(workspace) without return types