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

Debugging handling of multiple objects in patch

parent f686512c
No related branches found
No related tags found
No related merge requests found
...@@ -16,8 +16,8 @@ class MonoPatchStack(InMemoryDataAccessor): ...@@ -16,8 +16,8 @@ class MonoPatchStack(InMemoryDataAccessor):
assert data.ndim == 3 assert data.ndim == 3
self._data = np.expand_dims(data, 2) self._data = np.expand_dims(data, 2)
elif isinstance(data, list): # list of YX patches elif isinstance(data, list): # list of YX patches
nda = np.array(data) nda = np.array(data).squeeze()
assert nda.squeeze().ndim == 3 assert nda.ndim == 3
self._data = np.expand_dims( self._data = np.expand_dims(
np.moveaxis( np.moveaxis(
nda, nda,
......
...@@ -16,6 +16,12 @@ def mask_largest_object( ...@@ -16,6 +16,12 @@ def mask_largest_object(
""" """
binary = img > 0 binary = img > 0
ob_id = label(binary) ob_id = label(binary)
# separate problem for mask and object maps
# import skimage
# from pathlib import Path
# where = Path('c:/Users/rhodes/projects/proj0011-plankton-seg/tmp')
# skimage.io.imsave(where / 'raw.png', img)
num_obj = len(np.unique(ob_id)) - 1 num_obj = len(np.unique(ob_id)) - 1
if num_obj > max_allowed: if num_obj > max_allowed:
raise TooManyObjectError(f'Found {num_obj} objects in frame') raise TooManyObjectError(f'Found {num_obj} objects in frame')
......
...@@ -273,14 +273,21 @@ def infer_object_map_from_zstack( ...@@ -273,14 +273,21 @@ def infer_object_map_from_zstack(
for ii in range(0, len(zmask_meta)): for ii in range(0, len(zmask_meta)):
mi = zmask_meta[ii] mi = zmask_meta[ii]
object_label_id = mi['info'].label object_label_id = mi['info'].label
result_label_map = result_acc.iat(ii) result_label_map = mask_largest_object(result_acc.iat(ii))
assert result_label_map.ndim == 2 assert result_label_map.ndim == 2
unique_values = np.unique(result_label_map) unique_values = np.unique(result_label_map)
assert len(unique_values) == 2 if not len(unique_values) == 2:
mask_largest_object(result_label_map)
raise Exception()
assert unique_values[0] == 0 assert unique_values[0] == 0
ii_mask = object_labels_map == object_label_id ii_mask = object_labels_map == object_label_id
object_labels_map[ii_mask] = unique_values[1] object_labels_map[ii_mask] = unique_values[1]
patch = patches_acc.iat(ii) # object_labels_map[ii_mask] = np.unique(
# mask_largest_object(
# result_acc.iat(ii)
# )
# )[1]
# patch = patches_acc.iat(ii)
write_accessor_data_to_file( write_accessor_data_to_file(
Path(output_folder_path) / 'obj_classes_' / (fstem + '.tif'), Path(output_folder_path) / 'obj_classes_' / (fstem + '.tif'),
......
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