code: def create_settings(self):
      self.images_list = ImageListSubscriber(
          "Select images to measure",
          [],
          doc="""Select the grayscale images whose intensity you want to measure.""",
      )
  
      self.objects_list = LabelListSubscriber(
          "Select objects to measure",
          [],
          doc="""\
          Select the objects whose texture you want to measure. If you only want
          to measure the texture for the image overall, you can remove all objects
          using the “Remove this object” button.
  
          Objects specified here will have their texture measured against *all*
          images specified above, which may lead to image-object combinations that
          are unnecessary. If you do not want this behavior, use multiple
          **MeasureTexture** modules to specify the particular image-object
          measures that you want.
          """,
      )
  
      self.gray_levels = Integer(
          "Enter how many gray levels to measure the texture at",
          256,
          2,
          256,
          doc="""\
          Enter the number of gray levels (ie, total possible values of intensity) 
          you want to measure texture at.  Measuring at more levels gives you 
          _potentially_ more detailed information about your image, but at the cost
          of somewhat decreased processing speed.  
  
          Before processing, your image will be rescaled from its current pixel values
          to 0 - [gray levels - 1]. The texture features will then be calculated. 
  
          In all CellProfiler 2 versions, this value was fixed at 8; in all 
          CellProfiler 3 versions it was fixed at 256.  The minimum number of levels is
          2, the maximum is 256.
          """,
      )
  
      self.scale_groups = []
  
      self.scale_count = HiddenCount(self.scale_groups)
  
      self.image_divider = Divider()
  
      self.object_divider = Divider()
  
      self.add_scale(removable=False)
  
      self.add_scales = DoSomething(
          callback=self.add_scale,
          label="Add another scale",
          text="",
          doc="""\
              Add an additional texture scale to measure. Useful when you
              want to measure texture features of different sizes.
              """,
      )
  
      self.images_or_objects = Choice(
          "Measure whole images or objects?",
          [IO_IMAGES, IO_OBJECTS, IO_BOTH],
          value=IO_BOTH,
          doc="""\
  This setting determines whether the module computes image-wide
  measurements, per-object measurements or both.
  
  -  *{IO_IMAGES}:* Select if you only want to measure the texture
     across entire images.
  -  *{IO_OBJECTS}:* Select if you want to measure the texture
     on a per-object basis only.
  -  *{IO_BOTH}:* Select to make both image and object measurements.
  """.format(
              **{
                  "IO_IMAGES": IO_IMAGES,
                  "IO_OBJECTS": IO_OBJECTS,
                  "IO_BOTH": IO_BOTH,
              }
          ),
      )
  
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 1 for calling the MeasureTexture obj's underlying member method code with example usage: obj.create_settings() without return types