Operator Reference

threshold_sub_pixthreshold_sub_pixThresholdSubPixThresholdSubPixthreshold_sub_pix (Operator)

threshold_sub_pixthreshold_sub_pixThresholdSubPixThresholdSubPixthreshold_sub_pix — Extract level crossings from an image with subpixel accuracy.

Signature

threshold_sub_pix(Image : Border : Threshold : )

Herror threshold_sub_pix(const Hobject Image, Hobject* Border, double Threshold)

Herror T_threshold_sub_pix(const Hobject Image, Hobject* Border, const Htuple Threshold)

void ThresholdSubPix(const HObject& Image, HObject* Border, const HTuple& Threshold)

HXLDCont HImage::ThresholdSubPix(const HTuple& Threshold) const

HXLDCont HImage::ThresholdSubPix(double Threshold) const

static void HOperatorSet.ThresholdSubPix(HObject image, out HObject border, HTuple threshold)

HXLDCont HImage.ThresholdSubPix(HTuple threshold)

HXLDCont HImage.ThresholdSubPix(double threshold)

def threshold_sub_pix(image: HObject, threshold: Union[float, int]) -> HObject

Description

threshold_sub_pixthreshold_sub_pixThresholdSubPixThresholdSubPixthreshold_sub_pix extracts the level crossings at the level ThresholdThresholdThresholdthresholdthreshold of the input image ImageImageImageimageimage with subpixel accuracy. The extracted level crossings are returned as XLD-contours in BorderBorderBorderborderborder. In contrast to the operator thresholdthresholdThresholdThresholdthreshold, threshold_sub_pixthreshold_sub_pixThresholdSubPixThresholdSubPixthreshold_sub_pix does not return regions, but the lines that separate regions with a gray value less than ThresholdThresholdThresholdthresholdthreshold from regions with a gray value greater than ThresholdThresholdThresholdthresholdthreshold.

For the extraction, the input image is regarded as a surface, in which the gray values are interpolated bilinearly between the centers of the individual pixels. Consistent with the surface thus defined, level crossing lines are extracted for each pixel and linked into topologically sound contours. This means that the level crossing contours are correctly split at junction points. If the image contains extended areas of constant gray value ThresholdThresholdThresholdthresholdthreshold, only the border of such areas is returned as level crossings.

Execution Information

  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).
  • Multithreading scope: global (may be called from any thread).
  • Processed without parallelization.

Parameters

ImageImageImageimageimage (input_object)  singlechannelimage objectHImageHObjectHObjectHobject (byte / int1 / int2 / uint2 / int4 / real)

Input image.

BorderBorderBorderborderborder (output_object)  xld_cont-array objectHXLDContHObjectHObjectHobject *

Extracted level crossings.

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

Threshold for the level crossings.

Default: 128

Suggested values: 0.0, 10.0, 30.0, 64.0, 128.0, 200.0, 220.0, 255.0

Example (HDevelop)

read_image(Image,'fabrik')
threshold_sub_pix(Image,Border,35)
dev_display(Border)

Example (C)

/* Detection zero crossings of the Laplacian-of-Gaussian of aerial image */
read_image(&Image,"fabrik");
threshold_sub_pix(Laplace,&Border,35);
disp_xld(Border,WindowHandle);

Example (C++)

/* Detection zero crossings of the Laplacian-of-Gaussian of aerial image */
HWindow Window(0,0,512,512);
HImage Image("fabrik");
HXLDContArray Border = Image.ThresholdSubPix(35);
Border.Display(Window);

Example (HDevelop)

read_image(Image,'fabrik')
threshold_sub_pix(Image,Border,35)
dev_display(Border)

Result

threshold_sub_pixthreshold_sub_pixThresholdSubPixThresholdSubPixthreshold_sub_pix usually returns the value 2 ( H_MSG_TRUE) . If necessary, an exception is raised.

Alternatives

thresholdthresholdThresholdThresholdthreshold

See also

zero_crossing_sub_pixzero_crossing_sub_pixZeroCrossingSubPixZeroCrossingSubPixzero_crossing_sub_pix

Module

2D Metrology