code: def run(self, workspace):
      header = (
          "Image",
          "Objects",
          "Bin # (innermost=1)",
          "Bin count",
          "Fraction",
          "Intensity",
          "COV",
      )
  
      stats = []
  
      d = {}
  
      for image in self.images_list.value:
          for o in self.objects:
              for bin_count_settings in self.bin_counts:
                  stats += self.do_measurements(
                      workspace,
                      image,
                      o.object_name.value,
                      o.center_object_name.value
                      if o.center_choice != C_SELF
                      else None,
                      o.center_choice.value,
                      bin_count_settings,
                      d,
                  )
  
      if self.wants_zernikes != Z_NONE:
          self.calculate_zernikes(workspace)
  
      if self.show_window:
          workspace.display_data.header = header
  
          workspace.display_data.stats = stats
  
          workspace.display_data.heatmaps = []
  
      for heatmap in self.heatmaps:
          heatmap_img = d.get(id(heatmap))
  
          if heatmap_img is not None:
              if self.show_window or heatmap.wants_to_save_display:
                  labels = workspace.object_set.get_objects(
                      heatmap.object_name.get_objects_name()
                  ).segmented
  
              if self.show_window:
                  workspace.display_data.heatmaps.append(
                      (heatmap_img, labels != 0)
                  )
  
              if heatmap.wants_to_save_display:
                  colormap = heatmap.colormap.value
  
                  if colormap == matplotlib.cm.gray.name:
                      output_pixels = heatmap_img
                  else:
                      if colormap == "Default":
                          colormap = get_default_colormap()
  
                      cm = matplotlib.cm.ScalarMappable(cmap=colormap)
  
                      output_pixels = cm.to_rgba(heatmap_img)[:, :, :3]
  
                      output_pixels[labels == 0, :] = 0
  
                  parent_image = workspace.image_set.get_image(
                      heatmap.image_name.get_image_name()
                  )
  
                  output_img = Image(
                      output_pixels, parent_image=parent_image
                  )
  
                  img_name = heatmap.display_name.value
  
                  workspace.image_set.add(img_name, output_img)
  
imports: import centrosome.cpmorphology
  import centrosome.propagate
  import centrosome.zernike
  import matplotlib.cm
  import numpy
  import numpy.ma
  import scipy.ndimage
  import scipy.sparse
  from cellprofiler_core.constants.measurement import COLTYPE_FLOAT
  from cellprofiler_core.image import Image
  from cellprofiler_core.module import Module
  from cellprofiler_core.preferences import get_default_colormap
  from cellprofiler_core.setting import HiddenCount, Divider, SettingsGroup, Binary, ValidationError
  from cellprofiler_core.setting.choice import Choice, Colormap
  from cellprofiler_core.setting.do_something import DoSomething, RemoveSettingButton
  from cellprofiler_core.setting.subscriber import LabelSubscriber, ImageListSubscriber, ImageSubscriber
  from cellprofiler_core.setting.text import Integer, ImageName
  from cellprofiler_core.utilities.core.object import crop_labels_and_image, size_similarly
  import cellprofiler.gui.help.content
label_desc: Use image node_id 10 for calling the MeasureObjectIntensityDistribution obj's underlying member method code with example usage: obj.run(workspace) without return types