diff --git a/model_server/extensions/chaeo/accessors.py b/model_server/extensions/chaeo/accessors.py index 31d043e393ae1faf729cb42e4358c6299c2c17c5..bc65c6f357b27b7a7b334817a063f2b1862cc209 100644 --- a/model_server/extensions/chaeo/accessors.py +++ b/model_server/extensions/chaeo/accessors.py @@ -77,6 +77,7 @@ class MonoPatchStackFromFile(MonoPatchStack): def fpath(self): return self.file_acc.fpath +# TODO: unify this into one accessor class Multichannel3dPatchStack(InMemoryDataAccessor): def __init__(self, data): diff --git a/model_server/extensions/chaeo/zmask.py b/model_server/extensions/chaeo/zmask.py index 242033d8490c796a50269e57d8357b2df32db240..02e5922adc1adadc9dfaef567b90d05cc1aada7c 100644 --- a/model_server/extensions/chaeo/zmask.py +++ b/model_server/extensions/chaeo/zmask.py @@ -195,7 +195,7 @@ class RoiSet(object): else: patches_df = get_patches_from_zmask_meta(self, pad_to=pad_to) patches = list(patches_df['patch']) - if self.acc_raw.chroma == 1: + if channel is not None or self.acc_raw.chroma == 1: return MonoPatchStack(patches) else: return Multichannel3dPatchStack(patches) @@ -256,13 +256,13 @@ class RoiSet(object): # df['classify_by_' + f] # assign labels to object map: - for i in idx: + for i in range(0, len(idx)): # object_id = self.zmask_meta[i]['info'].label - object_id = df.loc[i, 'label'] + object_id = df.loc[idx[i], 'label'] result_patch = mask_largest_object(obmap_patches.iat(i)) object_class = np.unique(result_patch)[1] om[self.object_id_labels == object_id] = object_class - se.loc[i] = object_class + se.loc[idx[i]] = object_class self.add_df_col('classify_by_' + name, se) self.object_class_map[name] = InMemoryDataAccessor(om) @@ -279,7 +279,7 @@ class RoiSet(object): continue if k == 'patches_3d': files = export_patches_from_zstack( - subdir, raw_ch, self.zmask_meta, prefix=pr, make_3d=True, **kp + subdir, self, white_channel=channel, prefix=pr, make_3d=True, **kp ) if k == 'patches_2d_for_annotation': files = export_multichannel_patches_from_zstack(