diff --git a/model_server/base/roiset.py b/model_server/base/roiset.py index e11450aab8602f3775a17b7f34d21d2b1090db0b..5afa6e40ccd22d77c121e00bde6921cfa9060bdd 100644 --- a/model_server/base/roiset.py +++ b/model_server/base/roiset.py @@ -713,6 +713,11 @@ class RoiSet(object): else: return acc_out + def export_object_identities_overlay_map(self, where, white_channel, prefix='obmap_overlay', **kwargs) -> str: + acc = self.get_object_identities_overlay_map(white_channel=white_channel, **kwargs) + fp = where / (prefix + '.tif') + return acc.write(fp, composite=True).name + def get_serializable_dataframe(self) -> pd.DataFrame: return self._df.drop(['expanded_slice', 'slice', 'relative_slice', 'binary_mask'], axis=1) @@ -973,6 +978,8 @@ class RoiSet(object): fp.parent.mkdir(exist_ok=True, parents=True) dacc.export_pyxcz(fp) record[k].append(str(fp)) + if k == 'labels_overlay': + record[k] = str(Path(k) / self.export_object_identities_overlay_map(subdir, white_channel=channel, **kp)) # export dataframe and patch masks record = {**record, **self.serialize(where, prefix=prefix)} diff --git a/tests/base/test_roiset.py b/tests/base/test_roiset.py index 9956b84b5954766655f77f9067912c649375ba1d..f262d6a261507ced1be5866feb3685edabdb008e 100644 --- a/tests/base/test_roiset.py +++ b/tests/base/test_roiset.py @@ -390,6 +390,14 @@ class TestRoiSetMultichannelProducts(BaseTestRoiSetMonoProducts, unittest.TestCa self.assertEqual(acc_out.nz, 1) acc_out.write(where / 'overlay_composite_mip.tif', composite=True) + # export via .run_exports() method + self.roiset.run_exports( + where, + channel=-1, + prefix='run_exports', + params=RoiSetExportParams(**{'labels_overlay': {'transparency': 0.2, 'mip': True, 'rescale_clip': 0.00}}) + ) + def test_multichannel_annotated_zstack(self):