Operator Reference

nonmax_suppression_ampnonmax_suppression_ampNonmaxSuppressionAmpNonmaxSuppressionAmpnonmax_suppression_amp (Operator)

nonmax_suppression_ampnonmax_suppression_ampNonmaxSuppressionAmpNonmaxSuppressionAmpnonmax_suppression_amp — Suppress non-maximum points on an edge.

Signature

nonmax_suppression_amp(ImgAmp : ImageResult : Mode : )

Herror nonmax_suppression_amp(const Hobject ImgAmp, Hobject* ImageResult, const char* Mode)

Herror T_nonmax_suppression_amp(const Hobject ImgAmp, Hobject* ImageResult, const Htuple Mode)

void NonmaxSuppressionAmp(const HObject& ImgAmp, HObject* ImageResult, const HTuple& Mode)

HImage HImage::NonmaxSuppressionAmp(const HString& Mode) const

HImage HImage::NonmaxSuppressionAmp(const char* Mode) const

HImage HImage::NonmaxSuppressionAmp(const wchar_t* Mode) const   ( Windows only)

static void HOperatorSet.NonmaxSuppressionAmp(HObject imgAmp, out HObject imageResult, HTuple mode)

HImage HImage.NonmaxSuppressionAmp(string mode)

def nonmax_suppression_amp(img_amp: HObject, mode: str) -> HObject

Description

nonmax_suppression_ampnonmax_suppression_ampNonmaxSuppressionAmpNonmaxSuppressionAmpnonmax_suppression_amp suppresses all points in the regions of the image ImgAmpImgAmpImgAmpimgAmpimg_amp whose gray values are not local (directed) maxima. In contrast to nonmax_suppression_dirnonmax_suppression_dirNonmaxSuppressionDirNonmaxSuppressionDirnonmax_suppression_dir, a direction image is not needed. Two modes of operation can be selected:

'hvnms'"hvnms""hvnms""hvnms""hvnms"

A point is labeled as a local maximum if its gray value is larger than or equal to the gray values within a search space of pm 5 pixels, either horizontally or vertically. Non-maximum points are removed from the region, gray values remain unchanged.

'loc_max'"loc_max""loc_max""loc_max""loc_max"

A point is labeled as a local maximum if its gray value is larger than or equal to the gray values of its eight neighbors.

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.

Parameters

ImgAmpImgAmpImgAmpimgAmpimg_amp (input_object)  singlechannelimage(-array) objectHImageHObjectHObjectHobject (byte / uint2 / real)

Amplitude (gradient magnitude) image.

ImageResultImageResultImageResultimageResultimage_result (output_object)  singlechannelimage(-array) objectHImageHObjectHObjectHobject * (byte / uint2 / real)

Image with thinned edge regions.

ModeModeModemodemode (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Select horizontal/vertical or undirected NMS.

Default: 'hvnms' "hvnms" "hvnms" "hvnms" "hvnms"

List of values: 'hvnms'"hvnms""hvnms""hvnms""hvnms", 'loc_max'"loc_max""loc_max""loc_max""loc_max"

Result

nonmax_suppression_ampnonmax_suppression_ampNonmaxSuppressionAmpNonmaxSuppressionAmpnonmax_suppression_amp returns 2 ( H_MSG_TRUE) if all parameters are correct. The behavior with respect to the input images and output regions can be determined by setting the values of the flags 'no_object_result'"no_object_result""no_object_result""no_object_result""no_object_result", 'empty_region_result'"empty_region_result""empty_region_result""empty_region_result""empty_region_result", and 'store_empty_region'"store_empty_region""store_empty_region""store_empty_region""store_empty_region" with set_systemset_systemSetSystemSetSystemset_system. If necessary, an exception is raised.

Possible Predecessors

sobel_ampsobel_ampSobelAmpSobelAmpsobel_amp

Possible Successors

thresholdthresholdThresholdThresholdthreshold, hysteresis_thresholdhysteresis_thresholdHysteresisThresholdHysteresisThresholdhysteresis_threshold

Alternatives

local_maxlocal_maxLocalMaxLocalMaxlocal_max, nonmax_suppression_dirnonmax_suppression_dirNonmaxSuppressionDirNonmaxSuppressionDirnonmax_suppression_dir

See also

skeletonskeletonSkeletonSkeletonskeleton

References

S.Lanser: “Detektion von Stufenkanten mittels rekursiver Filter nach Deriche”; Diplomarbeit; Technische Universität München, Institut für Informatik, Lehrstuhl Prof. Radig; 1991.
J.Canny: “Finding Edges and Lines in Images”; Report, AI-TR-720; M.I.T. Artificial Intelligence Lab., Cambridge, MA; 1983.

Module

Foundation