code: def rruunn(
      input_labels,
      relabel_option,
      merge_option=cellprofiler.modules.splitormergeobjects.UNIFY_DISTANCE,
      unify_method=cellprofiler.modules.splitormergeobjects.UM_DISCONNECTED,
      distance_threshold=5,
      minimum_intensity_fraction=0.9,
      where_algorithm=cellprofiler.modules.splitormergeobjects.CA_CLOSEST_POINT,
      image=None,
      parent_object="Parent_object",
      parents_of=None,
  ):
      """Run the SplitOrMergeObjects module
  
      returns the labels matrix and the workspace.
      """
      module = (
          cellprofiler.modules.splitormergeobjects.SplitOrMergeObjects()
      )
      module.set_module_num(1)
      module.objects_name.value = INPUT_OBJECTS_NAME
      module.output_objects_name.value = OUTPUT_OBJECTS_NAME
      module.relabel_option.value = relabel_option
      module.merge_option.value = merge_option
      module.merging_method.value = unify_method
      module.parent_object.value = parent_object
      module.distance_threshold.value = distance_threshold
      module.minimum_intensity_fraction.value = (
          minimum_intensity_fraction
      )
      module.wants_image.value = image is not None
      module.where_algorithm.value = where_algorithm
  
      pipeline = cellprofiler_core.pipeline.Pipeline()
  
      def callback(caller, event):
          assert not isinstance(
              event, cellprofiler_core.pipeline.event.RunException
          )
  
      pipeline.add_listener(callback)
      pipeline.add_module(module)
  
      image_set_list = cellprofiler_core.image.ImageSetList()
      image_set = image_set_list.get_image_set(0)
      if image is not None:
          img = cellprofiler_core.image.Image(image)
          image_set.add(IMAGE_NAME, img)
          module.image_name.value = IMAGE_NAME
  
      object_set = cellprofiler_core.object.ObjectSet()
      o = cellprofiler_core.object.Objects()
      o.segmented = input_labels
      object_set.add_objects(o, INPUT_OBJECTS_NAME)
  
      workspace = cellprofiler_core.workspace.Workspace(
          pipeline,
          module,
          image_set,
          object_set,
          cellprofiler_core.measurement.Measurements(),
          image_set_list,
      )
      if parents_of is not None:
          m = workspace.measurements
          ftr = FF_PARENT % parent_object
          m[INPUT_OBJECTS_NAME, ftr] = parents_of
      module.run(workspace)
      output_objects = workspace.object_set.get_objects(
          OUTPUT_OBJECTS_NAME
      )
      return output_objects.segmented, workspace
  
imports: import numpy
  import six.moves
  import cellprofiler_core.image
  import cellprofiler_core.measurement
  import cellprofiler_core.measurement
  from cellprofiler_core.constants.measurement import M_LOCATION_CENTER_X, M_LOCATION_CENTER_Y, FF_COUNT, FF_PARENT, COLTYPE_FLOAT, M_NUMBER_OBJECT_NUMBER, COLTYPE_INTEGER, FF_CHILDREN_COUNT
  import cellprofiler.modules.splitormergeobjects
  import cellprofiler_core.object
  import cellprofiler_core.pipeline
  import cellprofiler_core.workspace
  import tests.frontend.modules
label_desc: Use image node_id 3 for calling a global function with example usage: rruunn(input_labels, relabel_option, merge_option, unify_method, distance_threshold, minimum_intensity_fraction, where_algorithm, image, parent_object, parents_of) and returns: output_objects,  workspace