Operator Reference

eliminate_min_maxeliminate_min_maxEliminateMinMaxEliminateMinMaxeliminate_min_max (Operator)

eliminate_min_maxeliminate_min_maxEliminateMinMaxEliminateMinMaxeliminate_min_max — Smooth an image in the spatial domain to suppress noise.

Signature

eliminate_min_max(Image : FilteredImage : MaskWidth, MaskHeight, Gap, Mode : )

Herror eliminate_min_max(const Hobject Image, Hobject* FilteredImage, const Hlong MaskWidth, const Hlong MaskHeight, double Gap, const Hlong Mode)

Herror T_eliminate_min_max(const Hobject Image, Hobject* FilteredImage, const Htuple MaskWidth, const Htuple MaskHeight, const Htuple Gap, const Htuple Mode)

void EliminateMinMax(const HObject& Image, HObject* FilteredImage, const HTuple& MaskWidth, const HTuple& MaskHeight, const HTuple& Gap, const HTuple& Mode)

HImage HImage::EliminateMinMax(Hlong MaskWidth, Hlong MaskHeight, double Gap, Hlong Mode) const

static void HOperatorSet.EliminateMinMax(HObject image, out HObject filteredImage, HTuple maskWidth, HTuple maskHeight, HTuple gap, HTuple mode)

HImage HImage.EliminateMinMax(int maskWidth, int maskHeight, double gap, int mode)

def eliminate_min_max(image: HObject, mask_width: int, mask_height: int, gap: float, mode: int) -> HObject

Description

eliminate_min_maxeliminate_min_maxEliminateMinMaxEliminateMinMaxeliminate_min_max smooths an image by replacing gray values with neighboring mean values, or local minima/maxima. In order to prevent edges and lines from being smoothed, only those gray values that represent local minima or maxima are replaced (if there is a line or edge within an image there will be at least one neighboring pixel with a comparable gray value). GapGapGapgapgap controls the strictness of replacement: Only gray values that exceed all other values within their local neighborhood more than GapGapGapgapgap and all values that fall below their neighboring more than GapGapGapgapgap are replaced.

Thus, with being the gray value at position and representing the gray values of a sized rectangular neighborhood of a pixel at position , containing all pixels within the neighborhood except the pixel itself, a pixel is replaced

  • if , or

  • else if .

  • Elsewise is adopted without change.

ModeModeModemodemode specifies how to perform the new value in case of a replacement.

  • ModeModeModemodemode = 1: replace a local maximum with next minor local maximum and replace a local minimum with next bigger local minimum.

  • ModeModeModemodemode = 2: replace with mean value of all pixels within the local neighborhood (including the replaced pixel).

  • ModeModeModemodemode = 3: replace with median value of all pixels within the local neighborhood (including the replaced pixel (also used if ModeModeModemodemode has got any other value than 1 or 2).

MaskWidthMaskWidthMaskWidthmaskWidthmask_width and MaskHeightMaskHeightMaskHeightmaskHeightmask_height specify the width and height of the rectangular neighborhood. Border treatment: Pixels outside the image border are not considered (e.g., with a local -mask the neighborhood of a pixel at reduces to the pixels at , , and ).

For an explanation of the concept of smoothing filters see the introduction of chapter Filters / Smoothing.

Attention

If MaskWidthMaskWidthMaskWidthmaskWidthmask_width or MaskHeightMaskHeightMaskHeightmaskHeightmask_height is an even number, it is replaced by the next higher odd number (this allows the unique extraction of the center of the filter mask). Width/height of the mask may not exceed the image width/height.

Note that filter operators may return unexpected results if an image with a reduced domain is used as input. Please refer to the chapter Filters.

Execution Information

  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).
  • Multithreading scope: global (may be called from any thread).
  • Automatically parallelized on tuple level.
  • Automatically parallelized on channel level.
  • Automatically parallelized on domain level.

Parameters

ImageImageImageimageimage (input_object)  (multichannel-)image(-array) objectHImageHObjectHObjectHobject (byte / uint2)

Image to smooth.

FilteredImageFilteredImageFilteredImagefilteredImagefiltered_image (output_object)  (multichannel-)image(-array) objectHImageHObjectHObjectHobject * (byte / uint2)

Smoothed image.

MaskWidthMaskWidthMaskWidthmaskWidthmask_width (input_control)  extent.x HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Width of filter mask.

Default: 3

Suggested values: 3, 5, 7, 9

Value range: 3 ≤ MaskWidth MaskWidth MaskWidth maskWidth mask_width ≤ width(Image)

Minimum increment: 2

Recommended increment: 2

Restriction: odd(MaskWidth)

MaskHeightMaskHeightMaskHeightmaskHeightmask_height (input_control)  extent.y HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Height of filter mask.

Default: 3

Suggested values: 3, 5, 7, 9

Value range: 3 ≤ MaskHeight MaskHeight MaskHeight maskHeight mask_height ≤ width(Image)

Minimum increment: 2

Recommended increment: 2

Restriction: odd(MaskWidth)

GapGapGapgapgap (input_control)  number HTuplefloatHTupleHtuple (real) (double) (double) (double)

Gap between local maximum/minimum and all other gray values of the neighborhood.

Default: 1.0

Suggested values: 1.0, 2.0, 5.0, 10.0

ModeModeModemodemode (input_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Replacement rule.

Default: 3

List of values: 1, 2, 3

Result

eliminate_min_maxeliminate_min_maxEliminateMinMaxEliminateMinMaxeliminate_min_max returns 2 ( H_MSG_TRUE) if all parameters are correct. If the input is empty eliminate_min_maxeliminate_min_maxEliminateMinMaxEliminateMinMaxeliminate_min_max returns with an error message.

Possible Successors

wiener_filterwiener_filterWienerFilterWienerFilterwiener_filter, wiener_filter_niwiener_filter_niWienerFilterNiWienerFilterNiwiener_filter_ni

See also

mean_spmean_spMeanSpMeanSpmean_sp, mean_imagemean_imageMeanImageMeanImagemean_image, median_imagemedian_imageMedianImageMedianImagemedian_image, median_weightedmedian_weightedMedianWeightedMedianWeightedmedian_weighted, binomial_filterbinomial_filterBinomialFilterBinomialFilterbinomial_filter, gauss_filtergauss_filterGaussFilterGaussFiltergauss_filter, smooth_imagesmooth_imageSmoothImageSmoothImagesmooth_image

References

M. Imme:“A Noise Peak Elimination Filter”; S. 204-211 in CVGIP Graphical Models and Image Processing, Vol. 53, No. 2, March 1991
M. Lückenhaus:“Grundlagen des Wiener-Filters und seine Anwendung in der Bildanalyse”; Diplomarbeit; Technische Universität München, Institut für Informatik; Lehrstuhl Prof. Radig; 1995.

Module

Foundation