Skip to content
Snippets Groups Projects
Commit 1de55e7c authored by Christopher Randolph Rhodes's avatar Christopher Randolph Rhodes
Browse files

filter_df_overlap_bbox now includes both sides of an overlapping Roi pair as separate rows

parent 1de38621
No related branches found
No related tags found
No related merge requests found
...@@ -122,7 +122,8 @@ def filter_df(df: pd.DataFrame, filters: RoiFilter = None) -> pd.DataFrame: ...@@ -122,7 +122,8 @@ def filter_df(df: pd.DataFrame, filters: RoiFilter = None) -> pd.DataFrame:
def filter_df_overlap_bbox(df: pd.DataFrame) -> pd.DataFrame: def filter_df_overlap_bbox(df: pd.DataFrame) -> pd.DataFrame:
""" """
Return subset of DataFrame whose bounding boxes overlap in 3D space Return subset of DataFrame whose bounding boxes overlap in 3D space, with possible duplicate entries where a ROI
overlaps with multiple neighbors.
""" """
def _compare(r0, r1): def _compare(r0, r1):
...@@ -137,6 +138,8 @@ def filter_df_overlap_bbox(df: pd.DataFrame) -> pd.DataFrame: ...@@ -137,6 +138,8 @@ def filter_df_overlap_bbox(df: pd.DataFrame) -> pd.DataFrame:
if _compare(df.iloc[pair[0]], df.iloc[pair[1]]): if _compare(df.iloc[pair[0]], df.iloc[pair[1]]):
first.append(pair[0]) first.append(pair[0])
second.append(pair[1]) second.append(pair[1])
first.append(pair[1])
second.append(pair[0])
sdf = df.iloc[first] sdf = df.iloc[first]
sdf['bbox_overlaps_with'] = second sdf['bbox_overlaps_with'] = second
...@@ -145,7 +148,7 @@ def filter_df_overlap_bbox(df: pd.DataFrame) -> pd.DataFrame: ...@@ -145,7 +148,7 @@ def filter_df_overlap_bbox(df: pd.DataFrame) -> pd.DataFrame:
# TODO: get overlapping segments # TODO: get overlapping segments
def filter_df_overlap_seg(df: pd.DataFrame) -> pd.DataFrame: def filter_df_overlap_seg(df: pd.DataFrame) -> pd.DataFrame:
""" """
Return subset of DataFrame whose segmentations overlap in 3D space Return subset of DataFrame whose segmentations overlap in 3D space.
""" """
dfbb = filter_df_overlap_bbox(df) dfbb = filter_df_overlap_bbox(df)
......
...@@ -650,9 +650,9 @@ class TestRoiSetPolygons(BaseTestRoiSetMonoProducts, unittest.TestCase): ...@@ -650,9 +650,9 @@ class TestRoiSetPolygons(BaseTestRoiSetMonoProducts, unittest.TestCase):
}) })
res = filter_df_overlap_bbox(df) res = filter_df_overlap_bbox(df)
self.assertEqual(len(res), 2) self.assertEqual(len(res), 4)
self.assertTrue((res.loc[0, 'bbox_overlaps_with'] == 1).all()) self.assertTrue((res.loc[0, 'bbox_overlaps_with'] == [1]).all())
self.assertTrue((res.loc[1, 'bbox_overlaps_with'] == 2).all()) self.assertTrue((res.loc[1, 'bbox_overlaps_with'] == [0, 2]).all())
return res return res
def test_overlap_seg(self): def test_overlap_seg(self):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment