diff --git a/model_server/extensions/chaeo/products.py b/model_server/extensions/chaeo/products.py index c9acc1fd023ea28b164cb78f42a08b81f8c14e73..82699fb20ab30ec1f29e5e749d09897004cdbf88 100644 --- a/model_server/extensions/chaeo/products.py +++ b/model_server/extensions/chaeo/products.py @@ -57,23 +57,13 @@ def write_patch_to_file(where, fname, yxcz): raise Exception(f'Unsupported file extension: {ext}') -def get_patch_masks(roiset, pad_to: int = 256) -> MonoPatchStack: +def get_patch_masks(roiset, pad_to: int = 256) -> MonoPatchStack: patches = [] - for mi in roiset.zmask_meta: - sl = mi['slice'] - - rbb = mi['relative_bounding_box'] # TODO: call DF rbb fields - x0 = rbb['x0'] - y0 = rbb['y0'] - x1 = rbb['x1'] - y1 = rbb['y1'] - - sp_sl = np.s_[y0: y1, x0: x1, :, :] - - h, w = roiset.acc_raw.data[sl].shape[0:2] - patch = np.zeros((h, w, 1, 1), dtype='uint8') - patch[sp_sl][:, :, 0, 0] = mi['mask'] * 255 + for ob in roiset.get_df().itertuples('Roi'): + sp_sl = roiset.get_rel_slice_at(ob.Index) + patch = np.zeros((ob.ebb_h, ob.ebb_w, 1, 1), dtype='uint8') + patch[sp_sl][:, :, 0, 0] = roiset.get_mask_at(ob.Index) * 255 if pad_to: patch = pad(patch, pad_to) @@ -82,7 +72,7 @@ def get_patch_masks(roiset, pad_to: int = 256) -> MonoPatchStack: return MonoPatchStack(patches) -def export_patch_masks_from_zstack(roiset, where: Path, pad_to: int = 256, prefix='mask') -> list: +def export_patch_masks(roiset, where: Path, pad_to: int = 256, prefix='mask') -> list: patches_acc = roiset.get_patch_masks(pad_to=pad_to) exported = [] diff --git a/model_server/extensions/chaeo/zmask.py b/model_server/extensions/chaeo/zmask.py index b70afeb3939d3d9e20cd6962d29ec76eaede6d8f..2cef8230ad1a4ed334d3d922dc003bca1a2f1f96 100644 --- a/model_server/extensions/chaeo/zmask.py +++ b/model_server/extensions/chaeo/zmask.py @@ -18,7 +18,7 @@ from model_server.extensions.chaeo.products import export_patches_from_zstack, e from extensions.chaeo.params import RoiFilter, RoiSetMetaParams, RoiSetExportParams from model_server.extensions.chaeo.accessors import MonoPatchStack from model_server.extensions.chaeo.process import mask_largest_object -from model_server.extensions.chaeo.products import get_patches_from_zmask_meta, get_patch_masks, export_patch_masks_from_zstack +from model_server.extensions.chaeo.products import get_patches_from_zmask_meta, get_patch_masks, export_patch_masks def get_label_ids(acc_seg_mask): @@ -188,7 +188,7 @@ class RoiSet(object): return get_patch_masks(self, **kwargs) def export_patch_masks(self, where, **kwargs) -> list: - return export_patch_masks_from_zstack(self, where, **kwargs) + return export_patch_masks(self, where, **kwargs) def get_raw_patches(self, channel): return get_patches_from_zmask_meta(