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_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