code: def run_image(self, image_name, scale, workspace):
      statistics = []
  
      image = workspace.image_set.get_image(
          image_name, must_be_grayscale=True
      )
  
      # mahotas.features.haralick bricks itself when provided a dtype larger than uint8 (version 1.4.3)
      gray_levels = int(self.gray_levels.value)
      pixel_data = skimage.util.img_as_ubyte(image.pixel_data)
      if gray_levels != 256:
          pixel_data = skimage.exposure.rescale_intensity(
              pixel_data,
              in_range=(0, 255),
              out_range=(0, gray_levels - 1),
          ).astype(numpy.uint8)
  
      features = mahotas.features.haralick(pixel_data, distance=scale)
  
      for direction, direction_features in enumerate(features):
          object_name = "{:d}_{:02d}".format(scale, direction)
  
          for feature_name, feature in zip(
              F_HARALICK, direction_features
          ):
              statistics += self.record_image_measurement(
                  feature_name=feature_name,
                  image_name=image_name,
                  result=feature,
                  scale=object_name,
                  workspace=workspace,
                  gray_levels="{:d}".format(gray_levels),
              )
  
      return statistics
  
imports: import cellprofiler.gui.help.content
  import cellprofiler.icons
  import mahotas.features
  import numpy
  import skimage.exposure
  import skimage.measure
  import skimage.util
  from cellprofiler_core.constants.measurement import COLTYPE_FLOAT
  from cellprofiler_core.module import Module
  from cellprofiler_core.setting import HiddenCount, Divider, SettingsGroup, ValidationError
  from cellprofiler_core.setting.choice import Choice
  from cellprofiler_core.setting.do_something import DoSomething, RemoveSettingButton
  from cellprofiler_core.setting.subscriber import ImageListSubscriber, LabelListSubscriber
  from cellprofiler_core.setting.text import Integer
  from cellprofiler_core.utilities.core.object import size_similarly
label_desc: Use image node_id 18 for calling the MeasureTexture obj's underlying member method code with example usage: obj.run_image(image_name, scale, workspace) and returns: statistics