code: def run(self, workspace):
      col_labels = ["Image name"] + [
          "GS%d" % n
          for n in range(1, self.granular_spectrum_length.value + 1)
      ]
      statistics = []
      for image_name in self.images_list.value:
          statistic = self.run_on_image_setting(workspace, image_name)
          statistics.append(statistic)
      if self.show_window:
          workspace.display_data.statistics = statistics
          workspace.display_data.col_labels = col_labels
  
imports: import logging
  import cellprofiler_core.workspace
  import numpy
  import scipy.ndimage
  import skimage.morphology
  from cellprofiler_core.constants.measurement import COLTYPE_FLOAT
  from cellprofiler_core.module import Module
  from cellprofiler_core.setting import Divider, Binary, ValidationError
  from cellprofiler_core.setting.subscriber import ImageListSubscriber, LabelListSubscriber
  from cellprofiler_core.setting.text import Float, Integer
  from centrosome.cpmorphology import fixup_scipy_ndimage_result
  from cellprofiler.gui.help.content import image_resource
label_desc: Use image node_id 5 for calling the MeasureGranularity obj's underlying member method code with example usage: obj.run(workspace) without return types