Exemple #1
0
def morphology_oco_alternate_sequential_filter(input_image, max_radius=None, **kwds):
    """
    Opening Closing Opening alternate sequential filter

    Parameters
    ----------
    :param SpatialImage input_image: input *SpatialImage*

    :param int max_radius: max radius

    Returns
    ----------
    :return: *SpatialImage* instance -- image and associated informations
    """
    conds = isinstance(input_image, SpatialImage)
    if conds:
        if max_radius is None:
            max_radius = 1
            output_img = morphology_oco_alternate_sequential_filter(input_image, max_radius)
            return output_img
        elif max_radius is not None:
            max_radius = abs(int(max_radius))
            sizes = range(1,max_radius+1)
            output_img = input_image
            for size in sizes:
                param_str_2 = "-operation opening -R " + str(size)
                output_img = morpho(output_img, param_str_2=param_str_2)
                param_str_2 = "-operation closing -R " + str(size)
                output_img = morpho(output_img, param_str_2=param_str_2)
                param_str_2 = "-operation opening -R " + str(size)
                output_img = morpho(output_img, param_str_2=param_str_2)
            return output_img
    else:
        raise TypeError('Input image must be a SpatialImage')
        return
Exemple #2
0
def morphology_contrast(input_image, radius=None, iterations=None, **kwds):
    """
    Contrast enhancement

    Parameters
    ----------
    :param *SpatialImage* input_image: input *SpatialImage*

    :param int radius: optinal, radius. Default: radius=1

    :param int iterations: optional, number of iterations. Default: iterations=1

    Returns
    ----------
    :return: ``SpatialImage`` instance -- image and metadata
    """
    conds = isinstance(input_image, SpatialImage)
    if conds:
        if radius is None:
            radius = 1
        elif radius is not None:
            radius = int(radius)
        if iterations is None:
            iterations = 1
        elif iterations is not None:
            iterations = int(iterations)
        params = '-operation contrast -iterations %d -radius %d' % (iterations,
                                                                    radius)
        return morpho(input_image, param_str_2=params)
    else:
        raise TypeError('Input image must be a SpatialImage')
        return
Exemple #3
0
def morphology_contrast(input_image, radius=None, iterations=None, **kwds):
    """
    Contrast enhancement

    Parameters
    ----------
    :param *SpatialImage* input_image: input *SpatialImage*

    :param int radius: optinal, radius. Default: radius=1

    :param int iterations: optional, number of iterations. Default: iterations=1

    Returns
    ----------
    :return: ``SpatialImage`` instance -- image and metadata
    """
    conds = isinstance(input_image, SpatialImage)
    if conds:
        if radius is None:
            radius = 1
        elif radius is not None:
            radius = int(radius)
        if iterations is None:
            iterations = 1
        elif iterations is not None:
            iterations = int(iterations)
        params = '-operation contrast -iterations %d -radius %d' % (iterations, radius)
        return morpho(input_image, param_str_2=params)
    else:
        raise TypeError('Input image must be a SpatialImage')
        return
Exemple #4
0
def morphology_oco_alternate_sequential_filter(input_image,
                                               max_radius=None,
                                               **kwds):
    """
    Opening Closing Opening alternate sequential filter

    Parameters
    ----------
    :param SpatialImage input_image: input *SpatialImage*

    :param int max_radius: max radius

    Returns
    ----------
    :return: *SpatialImage* instance -- image and associated informations
    """
    conds = isinstance(input_image, SpatialImage)
    if conds:
        if max_radius is None:
            max_radius = 1
            output_img = morphology_oco_alternate_sequential_filter(
                input_image, max_radius)
            return output_img
        elif max_radius is not None:
            max_radius = abs(int(max_radius))
            sizes = range(1, max_radius + 1)
            output_img = input_image
            for size in sizes:
                param_str_2 = "-operation opening -R " + str(size)
                output_img = morpho(output_img, param_str_2=param_str_2)
                param_str_2 = "-operation closing -R " + str(size)
                output_img = morpho(output_img, param_str_2=param_str_2)
                param_str_2 = "-operation opening -R " + str(size)
                output_img = morpho(output_img, param_str_2=param_str_2)
            return output_img
    else:
        raise TypeError('Input image must be a SpatialImage')
        return
Exemple #5
0
def test_erosion():
    #--- erosion
    im = imread(data_path('filtering_src.inr'))
    im_ref = imread(data_path('morpho_erosion_default.inr'))
    output = morpho(im, param_str_2='-erosion')
    np.testing.assert_array_equal(output, im_ref)