code: def add_measurements(
      self, workspace, input_object_name=None, output_object_name=None
  ):
      if input_object_name is None:
          input_object_name = self.x_name.value
  
      if output_object_name is None:
          output_object_name = self.y_name.value
  
      super(ObjectProcessing, self).add_measurements(
          workspace, output_object_name
      )
  
      objects = workspace.object_set.get_objects(output_object_name)
  
      parent_objects = workspace.object_set.get_objects(
          input_object_name
      )
  
      (
          children_per_parent,
          parents_of_children,
      ) = parent_objects.relate_children(objects)
  
      workspace.measurements.add_measurement(
          input_object_name,
          FF_CHILDREN_COUNT % output_object_name,
          children_per_parent,
      )
  
      workspace.measurements.add_measurement(
          output_object_name,
          FF_PARENT % input_object_name,
          parents_of_children,
      )
  
imports: from cellprofiler_core.setting.subscriber import LabelSubscriber
  from ._image_segmentation import ImageSegmentation
  from ...constants.measurement import COLTYPE_INTEGER
  from ...constants.measurement import C_CHILDREN
  from ...constants.measurement import C_NUMBER
  from ...constants.measurement import C_PARENT
  from ...constants.measurement import FF_CHILDREN_COUNT
  from ...constants.measurement import FF_COUNT
  from ...constants.measurement import FF_PARENT
  from ...constants.measurement import FTR_OBJECT_NUMBER
  from ...object import Objects
label_desc: Use image node_id 1 for calling the ObjectProcessing obj's underlying member method code with example usage: obj.add_measurements(workspace, input_object_name, output_object_name) without return types