code: def measure(self, image, workspace):
      data = image.pixel_data
  
      data = data.astype(bool)
  
      measurements = workspace.measurements
  
      measurement_name = self.skeleton_name.value
  
      statistics = []
  
      name = "Skeleton_Branches_{}".format(measurement_name)
  
      value = numpy.count_nonzero(branches(data))
  
      statistics.append(value)
  
      measurements.add_image_measurement(name, value)
  
      name = "Skeleton_Endpoints_{}".format(measurement_name)
  
      value = numpy.count_nonzero(endpoints(data))
  
      statistics.append(value)
  
      measurements.add_image_measurement(name, value)
  
      return [statistics]
  
imports: import numpy
  import scipy.ndimage
  import skimage.segmentation
  import skimage.util
  from cellprofiler_core.module import Module
  from cellprofiler_core.setting.subscriber import ImageSubscriber
label_desc: Use image node_id 11 for calling the MeasureImageSkeleton obj's underlying member method code with example usage: obj.measure(image, workspace) and returns: list