From 7ffe06a6a7e539954d05483494367f27bfe3279a Mon Sep 17 00:00:00 2001
From: Christopher Rhodes <christopher.rhodes@embl.de>
Date: Fri, 20 Sep 2024 12:04:45 +0200
Subject: [PATCH] Working functionally but still need to verify that bounding
 box-generated RoiSet matches content of one with segmentation;

---
 model_server/base/roiset.py | 12 +++++++-----
 tests/base/test_roiset.py   |  6 +++---
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/model_server/base/roiset.py b/model_server/base/roiset.py
index fa622930..c558c549 100644
--- a/model_server/base/roiset.py
+++ b/model_server/base/roiset.py
@@ -438,8 +438,14 @@ class RoiSet(object):
             params.expand_box_by,
         )
 
-        # TODO: don't even make binary_mask column in obj det case
+        def _make_binary_mask(r):
+            return np.ones((r.h, r.w), dtype=bool)
 
+        df['binary_mask'] = df.apply(
+            _make_binary_mask,
+            axis=1,
+            result_type='reduce',
+        )
         return RoiSet(acc_raw, df, params)
 
 
@@ -987,10 +993,6 @@ class RoiSet(object):
 
         return self._df.apply(_poly_from_mask, axis=1)
 
-    @property
-    def contains_segmentation(self):
-        return 'binary_mask' in self._df.columns
-
     @property
     def acc_obj_ids(self):
         return make_object_ids_from_df(self._df, self.acc_raw.shape_dict)
diff --git a/tests/base/test_roiset.py b/tests/base/test_roiset.py
index 6a516be0..585ded21 100644
--- a/tests/base/test_roiset.py
+++ b/tests/base/test_roiset.py
@@ -660,10 +660,10 @@ class TestRoiSetObjectDetection(unittest.TestCase):
 
         )
 
-        # test segments reside in bounding boxes
-
-        self.assertFalse(roiset.contains_segmentation)
         patches = roiset.get_patches_acc()
+        self.assertEqual(len(table), patches.count)
+
+        # TODO: test segments reside in bounding boxes
         self.assertTrue(False)
 
 class TestRoiSetPolygons(BaseTestRoiSetMonoProducts, unittest.TestCase):
-- 
GitLab