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

Separate method to mask out all but largest object

parent c02b572a
No related branches found
No related tags found
No related merge requests found
......@@ -11,6 +11,7 @@ from sklearn.model_selection import train_test_split
from extensions.chaeo.accessors import MonoPatchStack
from extensions.chaeo.annotators import draw_boxes_on_3d_image
from extensions.chaeo.models import PatchStackObjectClassifier
from extensions.chaeo.process import mask_largest_object
from extensions.chaeo.products import export_patches_from_zstack, export_patch_masks_from_zstack, export_multichannel_patches_from_zstack, get_patches_from_zmask_meta, get_patch_masks_from_zmask_meta
from extensions.chaeo.zmask import build_zmask_from_object_mask, project_stack_from_focal_points
from extensions.ilastik.models import IlastikPixelClassifierModel
......@@ -262,9 +263,7 @@ def infer_object_map_from_zstack(
)
# send patches and mask stacks to object classifier
result_acc, _ = MonoPatchStack(
object_classifier.infer(patches_acc, patch_masks_acc)
)
result_acc, _ = object_classifier.infer(patches_acc, patch_masks_acc)
object_labels_map = np.copy(interm['label_map'])
assert object_labels_map.shape == interm['label_map'].shape
......@@ -275,7 +274,7 @@ def infer_object_map_from_zstack(
mi = zmask_meta[ii]
object_label_id = mi['info'].label
result_label_map = result_acc.iat(ii)
assert (result_label_map.shape) == 2
assert result_label_map.ndim == 2
unique_values = np.unique(result_label_map)
assert len(unique_values) == 2
assert unique_values[0] == 0
......@@ -385,12 +384,7 @@ def transfer_ecotaxa_labels_to_patch_stacks(
mask = dilation(mask)
if not allow_multiple_objects:
ob_id = label(acc_bm.data[:, :, 0, 0])
num_obj = len(np.unique(ob_id)) - 1
if num_obj > 1:
print(f'Found multiple nonzero unique values in mask {fi}; keeping the one with largest area')
pr = regionprops_table(ob_id, properties=['label', 'area'])
idx_max_area = pr['area'].argmax()
mask = 255 * (ob_id == pr['label'][idx_max_area])
mask = mask_largest_object(ob_id)
zstacks[dfk + '_mask'][:, :, 0, fi] = mask
zstacks[dfk + '_label'][:, :, 0, fi] = (mask == 255) * aci
......
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