def watershed_with_seeds(image, seeds, mask=None):
    """Return :class:`jicbioimage.core.image.SegmentedImage`.

    :param image: input :class:`jicbioimage.core.image.Image`
    :param seeds: numpy.ndarray of same shape as image,
                  each seed needs to be a unique integer
    :param mask: bool numpy.ndarray of same shape as image,
                 only regions that are marked as True will be labelled
    :returns: :class:`jicbioimage.core.image.SegmentedImage`
    """
    ar = skimage.morphology.watershed(-image, seeds, mask=mask)
    segmentation = SegmentedImage.from_array(ar)
    return segmentation