hysteresis_thresholdhysteresis_thresholdHysteresisThresholdHysteresisThresholdhysteresis_threshold (Operator)


hysteresis_thresholdhysteresis_thresholdHysteresisThresholdHysteresisThresholdhysteresis_threshold — Perform a hysteresis threshold operation on an image.


hysteresis_threshold(Image : RegionHysteresis : Low, High, MaxLength : )

Herror hysteresis_threshold(const Hobject Image, Hobject* RegionHysteresis, const Hlong Low, const Hlong High, const Hlong MaxLength)

Herror T_hysteresis_threshold(const Hobject Image, Hobject* RegionHysteresis, const Htuple Low, const Htuple High, const Htuple MaxLength)

void HysteresisThreshold(const HObject& Image, HObject* RegionHysteresis, const HTuple& Low, const HTuple& High, const HTuple& MaxLength)

HRegion HImage::HysteresisThreshold(const HTuple& Low, const HTuple& High, Hlong MaxLength) const

HRegion HImage::HysteresisThreshold(Hlong Low, Hlong High, Hlong MaxLength) const

static void HOperatorSet.HysteresisThreshold(HObject image, out HObject regionHysteresis, HTuple low, HTuple high, HTuple maxLength)

HRegion HImage.HysteresisThreshold(HTuple low, HTuple high, int maxLength)

HRegion HImage.HysteresisThreshold(int low, int high, int maxLength)

def hysteresis_threshold(image: HObject, low: Union[int, float], high: Union[int, float], max_length: int) -> HObject


hysteresis_thresholdhysteresis_thresholdHysteresisThresholdHysteresisThresholdHysteresisThresholdhysteresis_threshold performs a hysteresis threshold operation (introduced by Canny) on an image. All points in the input image ImageImageImageImageimageimage having a gray value larger than or equal to HighHighHighHighhighhigh are immediately accepted (“secure” points). Conversely, all points with gray values less than LowLowLowLowlowlow are immediately rejected. “Potential” points with gray values between both thresholds are accepted if they are connected to “secure” points by a path of “potential” points having a length of at most MaxLengthMaxLengthMaxLengthMaxLengthmaxLengthmax_length points. This means that “secure” points influence their surroundings (hysteresis).


For images of type byte, uint2, or int4 the lower threshold must be LowLowLowLowlowlow > 0.

Execution Information


ImageImageImageImageimageimage (input_object)  singlechannelimage(-array) objectHImageHObjectHImageHobject (byte / uint2 / int4 / real)

Input image.

RegionHysteresisRegionHysteresisRegionHysteresisRegionHysteresisregionHysteresisregion_hysteresis (output_object)  region(-array) objectHRegionHObjectHRegionHobject *

Segmented region.

LowLowLowLowlowlow (input_control)  number HTupleUnion[int, float]HTupleHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double)

Lower threshold for the gray values.

Default value: 30

Suggested values: 5, 10, 15, 20, 30, 40, 50, 60, 70, 80, 90, 100

HighHighHighHighhighhigh (input_control)  number HTupleUnion[int, float]HTupleHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double)

Upper threshold for the gray values.

Default value: 60

Suggested values: 5, 10, 15, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130

Restriction: High >= Low

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

Maximum length of a path of “potential” points to reach a “secure” point.

Default value: 10

Suggested values: 1, 2, 3, 5, 7, 10, 12, 14, 17, 20, 25, 30, 35, 40, 50

Typical range of values: 1 ≤ MaxLength MaxLength MaxLength MaxLength maxLength max_length

Minimum increment: 1

Recommended increment: 5

Restriction: MaxLength > 1


hysteresis_thresholdhysteresis_thresholdHysteresisThresholdHysteresisThresholdHysteresisThresholdhysteresis_threshold returns 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""no_object_result", 'empty_region_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""store_empty_region" with set_systemset_systemSetSystemSetSystemSetSystemset_system. If necessary, an exception is raised.


dyn_thresholddyn_thresholdDynThresholdDynThresholdDynThresholddyn_threshold, thresholdthresholdThresholdThresholdThresholdthreshold, class_2dim_supclass_2dim_supClass2dimSupClass2dimSupClass2dimSupclass_2dim_sup, fast_thresholdfast_thresholdFastThresholdFastThresholdFastThresholdfast_threshold

See also

edges_imageedges_imageEdgesImageEdgesImageEdgesImageedges_image, sobel_dirsobel_dirSobelDirSobelDirSobelDirsobel_dir, background_segbackground_segBackgroundSegBackgroundSegBackgroundSegbackground_seg


J. Canny, “Finding Edges and Lines in Images”; Report, AI-TR-720, M.I.T. Artificial Intelligence Lab., Cambridge, MA, 1983.