From 2edf7e243d8d88322181847641c3218e3847460b Mon Sep 17 00:00:00 2001 From: ErinWeisbart <54687786+ErinWeisbart@users.noreply.github.com> Date: Mon, 7 Jul 2025 13:47:16 -0700 Subject: [PATCH 1/2] handle input of pre-objects with count 0 --- active_plugins/enforceobjectsonetoone.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/active_plugins/enforceobjectsonetoone.py b/active_plugins/enforceobjectsonetoone.py index ca98a379..653e17c7 100644 --- a/active_plugins/enforceobjectsonetoone.py +++ b/active_plugins/enforceobjectsonetoone.py @@ -163,16 +163,18 @@ def run(self, workspace): workspace.display_data.statistics = [] pre_primary = workspace.object_set.get_objects(self.x_name.value) - pre_primary_seg = pre_primary.segmented pre_secondary = workspace.object_set.get_objects(self.y_name.value) - pre_secondary_seg = pre_secondary.segmented - primary_seg = self.enforce_unique(pre_primary_seg, pre_secondary_seg, erode_excess=True) - - secondary_seg = self.enforce_unique(pre_secondary_seg, primary_seg) + if pre_secondary.count == 0: + secondary_seg = primary_seg = pre_primary_seg + elif pre_primary.count == 0: + primary_seg = secondary_seg = pre_secondary_seg + else: + primary_seg = self.enforce_unique(pre_primary_seg, pre_secondary_seg, erode_excess=True) + secondary_seg = self.enforce_unique(pre_secondary_seg, primary_seg) if not numpy.array_equal(numpy.unique(primary_seg),numpy.unique(secondary_seg)): raise RuntimeError(f"Something is wrong, there are {numpy.unique(primary_seg).shape[0]-1} primary objects (highest value: {numpy.unique(primary_seg)[-1]}) and {numpy.unique(secondary_seg).shape[0]-1} secondary objects (highest value: {numpy.unique(secondary_seg)[-1]})") From b95685f6c24c1c7db6ebe6469c98cae1db52dedb Mon Sep 17 00:00:00 2001 From: ErinWeisbart <54687786+ErinWeisbart@users.noreply.github.com> Date: Mon, 7 Jul 2025 13:54:36 -0700 Subject: [PATCH 2/2] I put my thang down, flip it and reverse it --- active_plugins/enforceobjectsonetoone.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/active_plugins/enforceobjectsonetoone.py b/active_plugins/enforceobjectsonetoone.py index 653e17c7..fdb81518 100644 --- a/active_plugins/enforceobjectsonetoone.py +++ b/active_plugins/enforceobjectsonetoone.py @@ -169,9 +169,9 @@ def run(self, workspace): pre_secondary_seg = pre_secondary.segmented if pre_secondary.count == 0: - secondary_seg = primary_seg = pre_primary_seg - elif pre_primary.count == 0: primary_seg = secondary_seg = pre_secondary_seg + elif pre_primary.count == 0: + secondary_seg = primary_seg = pre_primary_seg else: primary_seg = self.enforce_unique(pre_primary_seg, pre_secondary_seg, erode_excess=True) secondary_seg = self.enforce_unique(pre_secondary_seg, primary_seg)