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
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
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
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)