# build a single boolean 3d mask (objects v. bboxes) and return bounding boxes
defbuild_stack_mask(desc,obmap:GenericImageDataAccessor,stack:GenericImageDataAccessor,filters=None,mask_type='contour',expand_box_by=(0,0)):# TODO: specify boxes data type
defbuild_zmask_from_object_mask(
obmask:GenericImageDataAccessor,
stack:GenericImageDataAccessor,
filters=None,
mask_type='contour',
expand_box_by=(0,0)
):
"""
Given a 2D
filters: dict of (min, max) tuples
expand_box_by: (xy, z) pixelsf
"""
# validate inputs
# assert len(stack.shape) == 3, stack.shape
assertstack.chroma==1
assertstack.shape_dict['Z']>1
assertmask_typein('contours','boxes'),mask_type# TODO: replace with call to validator