threshold_sub_pixthreshold_sub_pixThresholdSubPixThresholdSubPixthreshold_sub_pix (Operator)
Name
threshold_sub_pixthreshold_sub_pixThresholdSubPixThresholdSubPixthreshold_sub_pix
— Extract level crossings from an image with subpixel accuracy.
Signature
def threshold_sub_pix(image: HObject, threshold: Union[float, int]) -> HObject
Description
threshold_sub_pixthreshold_sub_pixThresholdSubPixThresholdSubPixThresholdSubPixthreshold_sub_pix
extracts the level crossings at the level
ThresholdThresholdThresholdThresholdthresholdthreshold
of the input image ImageImageImageImageimageimage
with subpixel
accuracy. The extracted level crossings are returned as
XLD-contours in BorderBorderBorderBorderborderborder
. In contrast to the
operator thresholdthresholdThresholdThresholdThresholdthreshold
, threshold_sub_pixthreshold_sub_pixThresholdSubPixThresholdSubPixThresholdSubPixthreshold_sub_pix
does not
return regions, but the lines that separate regions with a gray
value less than ThresholdThresholdThresholdThresholdthresholdthreshold
from regions with a gray value
greater than ThresholdThresholdThresholdThresholdthresholdthreshold
.
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
ThresholdThresholdThresholdThresholdthresholdthreshold
, 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
ImageImageImageImageimageimage
(input_object) singlechannelimage →
objectHImageHObjectHImageHobject (byte / int1 / int2 / uint2 / int4 / real)
Input image.
BorderBorderBorderBorderborderborder
(output_object) xld_cont-array →
objectHXLDContHObjectHXLDContHobject *
Extracted level crossings.
ThresholdThresholdThresholdThresholdthresholdthreshold
(input_control) number →
HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Threshold for the level crossings.
Default value: 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 (HDevelop)
read_image(Image,'fabrik')
threshold_sub_pix(Image,Border,35)
dev_display(Border)
Example (HDevelop)
read_image(Image,'fabrik')
threshold_sub_pix(Image,Border,35)
dev_display(Border)
Example (HDevelop)
read_image(Image,'fabrik')
threshold_sub_pix(Image,Border,35)
dev_display(Border)
Result
threshold_sub_pixthreshold_sub_pixThresholdSubPixThresholdSubPixThresholdSubPixthreshold_sub_pix
usually returns the value 2 (H_MSG_TRUE). If
necessary, an exception is raised.
Alternatives
thresholdthresholdThresholdThresholdThresholdthreshold
See also
zero_crossing_sub_pixzero_crossing_sub_pixZeroCrossingSubPixZeroCrossingSubPixZeroCrossingSubPixzero_crossing_sub_pix
Module
2D Metrology