Пример #1
0
def ring_dilation_above_offset_buffer(labels, img, MARGIN=0, RINGWIDTH=2, BUFFER=2,
                                      OFFSET=100, FILSIZE=50):
    """Dilate from label to make a ring.
    Calculate the local minimum as a background, and if image is less brighter
    than background + offset, remove the region from the ring.
    """
    sub_label = dilate_to_cytoring_buffer(labels, RINGWIDTH, MARGIN, BUFFER)
    minimg = minimum_filter(img, size=FILSIZE)
    sub_label[img < (minimg + OFFSET)] = 0
    return sub_label
Пример #2
0
def ring_dilation_above_adaptive(labels,
                                 img,
                                 MARGIN=0,
                                 RINGWIDTH=4,
                                 BUFFER=2,
                                 RATIO=1.05,
                                 FILSIZE=10):
    sub_labels = dilate_to_cytoring_buffer(labels, RINGWIDTH, MARGIN, BUFFER)
    bw = adaptive_thresh(img, R=RATIO, FILTERINGSIZE=FILSIZE)
    sub_labels[-bw] = 0
    return sub_labels
Пример #3
0
def ring_dilation(labels, MARGIN=0, RINGWIDTH=4, BUFFER=0):
    """Create a ring around label.
    :param RINGWIDTH (int): Width of rings
    :param MARGIN (int): A region of rings is ignored if they are within MARGIN pixels away from label.

    Examples:
        >>> arr = np.zeros((5, 5));arr[2, 2] = 10
        >>> ring_dilation(None, arr, None, MARGIN=1, RINGWIDTH=2)
        array([[ 0, 10, 10, 10,  0],
               [10,  0,  0,  0, 10],
               [10,  0,  0,  0, 10],
               [10,  0,  0,  0, 10],
               [ 0, 10, 10, 10,  0]], dtype=uint16)
    """
    if BUFFER == 0:
        return dilate_to_cytoring(labels, RINGWIDTH, MARGIN)
    else:
        return dilate_to_cytoring_buffer(labels, RINGWIDTH, MARGIN, BUFFER)
Пример #4
0
def ring_dilation_buffer(labels, MARGIN=0, RINGWIDTH=4, BUFFER=2):
    return dilate_to_cytoring_buffer(labels, RINGWIDTH, MARGIN, BUFFER)