Skip to content

nonmax_suppression_ampNonmaxSuppressionAmpNonmaxSuppressionAmpnonmax_suppression_ampnonmax_suppression_ampđź”—

Short descriptionđź”—

nonmax_suppression_ampNonmaxSuppressionAmpNonmaxSuppressionAmpnonmax_suppression_ampnonmax_suppression_amp — Suppress non-maximum points on an edge.

Signatuređź”—

nonmax_suppression_amp( image ImgAmp, out image ImageResult, string Mode )void NonmaxSuppressionAmp( const HObject& ImgAmp, HObject* ImageResult, const HTuple& Mode )static void HOperatorSet.NonmaxSuppressionAmp( HObject imgAmp, out HObject imageResult, HTuple mode )def nonmax_suppression_amp( img_amp: HObject, mode: str ) -> HObject

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 )

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

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

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

HImage HImage.NonmaxSuppressionAmp( string mode )

Descriptionđź”—

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

  • '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" 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đź”—

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đź”—

ImgAmpimgAmpimg_amp (input_object) singlechannelimage(-array) → object (byte / uint2 / real)HObject (byte / uint2 / real)HImage (byte / uint2 / real)HObject (byte / uint2 / real)Hobject (byte / uint2 / real)

Amplitude (gradient magnitude) image.

ImageResultimageResultimage_result (output_object) singlechannelimage(-array) → object (byte / uint2 / real)HObject (byte / uint2 / real)HImage (byte / uint2 / real)HObject (byte / uint2 / real)Hobject * (byte / uint2 / real)

Image with thinned edge regions.

Modemodemode (input_control) string → (string)HTuple (HString)HTuple (string)strHtuple (char*)

Select horizontal/vertical or undirected NMS.

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

Resultđź”—

nonmax_suppression_ampNonmaxSuppressionAmp 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", 'empty_region_result'"empty_region_result", and 'store_empty_region'"store_empty_region" with set_systemSetSystem. If necessary, an exception is raised.

Combinations with other operatorsđź”—

Combinations

Possible predecessors

sobel_ampSobelAmp

Possible successors

thresholdThreshold, hysteresis_thresholdHysteresisThreshold

Alternatives

local_maxLocalMax, nonmax_suppression_dirNonmaxSuppressionDir

See also

skeletonSkeleton

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