ClassesClassesClassesClasses | | | | Operators

gen_measure_arcgen_measure_arcGenMeasureArcgen_measure_arcGenMeasureArcGenMeasureArc (Operator)

Name

gen_measure_arcgen_measure_arcGenMeasureArcgen_measure_arcGenMeasureArcGenMeasureArc — Prepare the extraction of straight edges perpendicular to an annular arc.

Signature

gen_measure_arc( : : CenterRow, CenterCol, Radius, AngleStart, AngleExtent, AnnulusRadius, Width, Height, Interpolation : MeasureHandle)

Herror gen_measure_arc(double CenterRow, double CenterCol, double Radius, double AngleStart, double AngleExtent, double AnnulusRadius, const Hlong Width, const Hlong Height, const char* Interpolation, Hlong* MeasureHandle)

Herror T_gen_measure_arc(const Htuple CenterRow, const Htuple CenterCol, const Htuple Radius, const Htuple AngleStart, const Htuple AngleExtent, const Htuple AnnulusRadius, const Htuple Width, const Htuple Height, const Htuple Interpolation, Htuple* MeasureHandle)

Herror gen_measure_arc(const HTuple& CenterRow, const HTuple& CenterCol, const HTuple& Radius, const HTuple& AngleStart, const HTuple& AngleExtent, const HTuple& AnnulusRadius, const HTuple& Width, const HTuple& Height, const HTuple& Interpolation, Hlong* MeasureHandle)

void HMeasure::GenMeasureArc(const HTuple& CenterRow, const HTuple& CenterCol, const HTuple& Radius, const HTuple& AngleStart, const HTuple& AngleExtent, const HTuple& AnnulusRadius, const HTuple& Width, const HTuple& Height, const HTuple& Interpolation)

void GenMeasureArc(const HTuple& CenterRow, const HTuple& CenterCol, const HTuple& Radius, const HTuple& AngleStart, const HTuple& AngleExtent, const HTuple& AnnulusRadius, const HTuple& Width, const HTuple& Height, const HTuple& Interpolation, HTuple* MeasureHandle)

void HMeasure::HMeasure(const HTuple& CenterRow, const HTuple& CenterCol, const HTuple& Radius, const HTuple& AngleStart, const HTuple& AngleExtent, const HTuple& AnnulusRadius, Hlong Width, Hlong Height, const HString& Interpolation)

void HMeasure::HMeasure(double CenterRow, double CenterCol, double Radius, double AngleStart, double AngleExtent, double AnnulusRadius, Hlong Width, Hlong Height, const HString& Interpolation)

void HMeasure::HMeasure(double CenterRow, double CenterCol, double Radius, double AngleStart, double AngleExtent, double AnnulusRadius, Hlong Width, Hlong Height, const char* Interpolation)

void HMeasure::GenMeasureArc(const HTuple& CenterRow, const HTuple& CenterCol, const HTuple& Radius, const HTuple& AngleStart, const HTuple& AngleExtent, const HTuple& AnnulusRadius, Hlong Width, Hlong Height, const HString& Interpolation)

void HMeasure::GenMeasureArc(double CenterRow, double CenterCol, double Radius, double AngleStart, double AngleExtent, double AnnulusRadius, Hlong Width, Hlong Height, const HString& Interpolation)

void HMeasure::GenMeasureArc(double CenterRow, double CenterCol, double Radius, double AngleStart, double AngleExtent, double AnnulusRadius, Hlong Width, Hlong Height, const char* Interpolation)

void HOperatorSetX.GenMeasureArc(
[in] VARIANT CenterRow, [in] VARIANT CenterCol, [in] VARIANT Radius, [in] VARIANT AngleStart, [in] VARIANT AngleExtent, [in] VARIANT AnnulusRadius, [in] VARIANT Width, [in] VARIANT Height, [in] VARIANT Interpolation, [out] VARIANT* MeasureHandle)

void HMeasureX.GenMeasureArc(
[in] VARIANT CenterRow, [in] VARIANT CenterCol, [in] VARIANT Radius, [in] VARIANT AngleStart, [in] VARIANT AngleExtent, [in] VARIANT AnnulusRadius, [in] Hlong Width, [in] Hlong Height, [in] BSTR Interpolation)

static void HOperatorSet.GenMeasureArc(HTuple centerRow, HTuple centerCol, HTuple radius, HTuple angleStart, HTuple angleExtent, HTuple annulusRadius, HTuple width, HTuple height, HTuple interpolation, out HTuple measureHandle)

public HMeasure(HTuple centerRow, HTuple centerCol, HTuple radius, HTuple angleStart, HTuple angleExtent, HTuple annulusRadius, int width, int height, string interpolation)

public HMeasure(double centerRow, double centerCol, double radius, double angleStart, double angleExtent, double annulusRadius, int width, int height, string interpolation)

void HMeasure.GenMeasureArc(HTuple centerRow, HTuple centerCol, HTuple radius, HTuple angleStart, HTuple angleExtent, HTuple annulusRadius, int width, int height, string interpolation)

void HMeasure.GenMeasureArc(double centerRow, double centerCol, double radius, double angleStart, double angleExtent, double annulusRadius, int width, int height, string interpolation)

Description

gen_measure_arcgen_measure_arcGenMeasureArcgen_measure_arcGenMeasureArcGenMeasureArc prepares the extraction of straight edges which lie perpendicular to an annular arc. Here, annular arc denotes a circular arc with an associated width. The center of the arc is passed in the parameters CenterRowCenterRowCenterRowCenterRowCenterRowcenterRow and CenterColCenterColCenterColCenterColCenterColcenterCol, its radius in RadiusRadiusRadiusRadiusRadiusradius, the starting angle in AngleStartAngleStartAngleStartAngleStartAngleStartangleStart, and its angular extent relative to the starting angle in AngleExtentAngleExtentAngleExtentAngleExtentAngleExtentangleExtent. If AngleExtentAngleExtentAngleExtentAngleExtentAngleExtentangleExtent > 0, an arc with counterclockwise orientation is generated, otherwise an arc with clockwise orientation. The radius of the annular arc, i.e., half its width, is determined by AnnulusRadiusAnnulusRadiusAnnulusRadiusAnnulusRadiusAnnulusRadiusannulusRadius.

The edge extraction algorithm is described in the documentation of the operator measure_posmeasure_posMeasurePosmeasure_posMeasurePosMeasurePos. As discussed there, different types of interpolation can be used for the calculation of the one-dimensional gray value profile. For InterpolationInterpolationInterpolationInterpolationInterpolationinterpolation = 'nearest_neighbor'"nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor", the gray values in the measurement are obtained from the gray values of the closest pixel, i.e., by constant interpolation. For InterpolationInterpolationInterpolationInterpolationInterpolationinterpolation = 'bilinear'"bilinear""bilinear""bilinear""bilinear""bilinear", bilinear interpolation is used, while for InterpolationInterpolationInterpolationInterpolationInterpolationinterpolation = 'bicubic'"bicubic""bicubic""bicubic""bicubic""bicubic", bicubic interpolation is used.

To perform the actual measurement at optimal speed, all computations that can be used for multiple measurements are already performed in the operator gen_measure_arcgen_measure_arcGenMeasureArcgen_measure_arcGenMeasureArcGenMeasureArc. For this, an optimized data structure, a so-called measure object, is constructed and returned in MeasureHandleMeasureHandleMeasureHandleMeasureHandleMeasureHandlemeasureHandle. The size of the images in which measurements will be performed must be specified in the parameters WidthWidthWidthWidthWidthwidth and HeightHeightHeightHeightHeightheight.

The system parameter 'int_zooming'"int_zooming""int_zooming""int_zooming""int_zooming""int_zooming" (see set_systemset_systemSetSystemset_systemSetSystemSetSystem) affects the accuracy and speed of the calculations used to construct the measure object. If 'int_zooming'"int_zooming""int_zooming""int_zooming""int_zooming""int_zooming" is set to 'true'"true""true""true""true""true", the internal calculations are performed using fixed point arithmetic, leading to much shorter execution times. However, the geometric accuracy is slightly lower in this mode. If 'int_zooming'"int_zooming""int_zooming""int_zooming""int_zooming""int_zooming" is set to 'false'"false""false""false""false""false", the internal calculations are performed using floating point arithmetic, leading to the maximum geometric accuracy, but also to significantly increased execution times.

Attention

Note that when using bilinear or bicubic interpolation, not only the measurement rectangle but additionally the margin around the rectangle must fit into the image. The width of the margin (in all four directions) must be at least one pixel for bilinear interpolation and two pixels for bicubic interpolation. For projection lines that do not fulfill this condition, no gray value is computed. Thus, no edge can be extracted at these positions.

Parallelization

This operator returns a handle. Note that the state of an instance of this handle type may be changed by specific operators even though the handle is used as an input parameter by those operators.

Parameters

CenterRowCenterRowCenterRowCenterRowCenterRowcenterRow (input_control)  point.y HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Row coordinate of the center of the arc.

Default value: 100.0

Suggested values: 10.0, 20.0, 50.0, 100.0, 200.0, 300.0, 400.0, 500.0

Typical range of values: 0.0 ≤ CenterRow CenterRow CenterRow CenterRow CenterRow centerRow ≤ 511.0 (lin)

Minimum increment: 1.0

Recommended increment: 10.0

CenterColCenterColCenterColCenterColCenterColcenterCol (input_control)  point.x HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Column coordinate of the center of the arc.

Default value: 100.0

Suggested values: 10.0, 20.0, 50.0, 100.0, 200.0, 300.0, 400.0, 500.0

Typical range of values: 0.0 ≤ CenterCol CenterCol CenterCol CenterCol CenterCol centerCol ≤ 511.0 (lin)

Minimum increment: 1.0

Recommended increment: 10.0

RadiusRadiusRadiusRadiusRadiusradius (input_control)  number HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Radius of the arc.

Default value: 50.0

Suggested values: 10.0, 20.0, 50.0, 100.0, 200.0, 300.0, 400.0, 500.0

Typical range of values: 0.0 ≤ Radius Radius Radius Radius Radius radius ≤ 511.0 (lin)

Minimum increment: 1.0

Recommended increment: 10.0

AngleStartAngleStartAngleStartAngleStartAngleStartangleStart (input_control)  angle.rad HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Start angle of the arc in radians.

Default value: 0.0

Suggested values: -3.14159, -2.35619, -1.57080, -0.78540, 0.0, 0.78540, 1.57080, 2.35619, 3.14159

Typical range of values: -3.14159 ≤ AngleStart AngleStart AngleStart AngleStart AngleStart angleStart ≤ 3.14159 (lin)

Minimum increment: 0.03142

Recommended increment: 0.31416

AngleExtentAngleExtentAngleExtentAngleExtentAngleExtentangleExtent (input_control)  angle.rad HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Angular extent of the arc in radians.

Default value: 6.28318

Suggested values: -6.28318, -5.49779, -4.71239, -3.92699, -3.14159, -2.35619, -1.57080, -0.78540, 0.78540, 1.57080, 2.35619, 3.14159, 3.92699, 4.71239, 5.49779, 6.28318

Typical range of values: -6.28318 ≤ AngleExtent AngleExtent AngleExtent AngleExtent AngleExtent angleExtent ≤ 6.28318 (lin)

Minimum increment: 0.03142

Recommended increment: 0.31416

Restriction: AngleExtent != 0.0

AnnulusRadiusAnnulusRadiusAnnulusRadiusAnnulusRadiusAnnulusRadiusannulusRadius (input_control)  number HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Radius (half width) of the annulus.

Default value: 10.0

Suggested values: 10.0, 20.0, 50.0, 100.0, 200.0, 300.0, 400.0, 500.0

Typical range of values: 0.0 ≤ AnnulusRadius AnnulusRadius AnnulusRadius AnnulusRadius AnnulusRadius annulusRadius ≤ 511.0 (lin)

Minimum increment: 1.0

Recommended increment: 10.0

Restriction: AnnulusRadius <= Radius

WidthWidthWidthWidthWidthwidth (input_control)  extent.x HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Width of the image to be processed subsequently.

Default value: 512

Suggested values: 128, 160, 192, 256, 320, 384, 512, 640, 768

Typical range of values: 0 ≤ Width Width Width Width Width width ≤ 1024 (lin)

Minimum increment: 1

Recommended increment: 16

HeightHeightHeightHeightHeightheight (input_control)  extent.y HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Height of the image to be processed subsequently.

Default value: 512

Suggested values: 120, 128, 144, 240, 256, 288, 480, 512, 576

Typical range of values: 0 ≤ Height Height Height Height Height height ≤ 1024 (lin)

Minimum increment: 1

Recommended increment: 16

InterpolationInterpolationInterpolationInterpolationInterpolationinterpolation (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Type of interpolation to be used.

Default value: 'nearest_neighbor' "nearest_neighbor" "nearest_neighbor" "nearest_neighbor" "nearest_neighbor" "nearest_neighbor"

List of values: 'bicubic'"bicubic""bicubic""bicubic""bicubic""bicubic", 'bilinear'"bilinear""bilinear""bilinear""bilinear""bilinear", 'nearest_neighbor'"nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor"

MeasureHandleMeasureHandleMeasureHandleMeasureHandleMeasureHandlemeasureHandle (output_control)  measure_id HMeasure, HTupleHTupleHMeasure, HTupleHMeasureX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Measure object handle.

Result

If the parameter values are correct, the operator gen_measure_arcgen_measure_arcGenMeasureArcgen_measure_arcGenMeasureArcGenMeasureArc returns the value 2 (H_MSG_TRUE). Otherwise an exception is raised.

Possible Predecessors

draw_circledraw_circleDrawCircledraw_circleDrawCircleDrawCircle

Possible Successors

measure_posmeasure_posMeasurePosmeasure_posMeasurePosMeasurePos, measure_pairsmeasure_pairsMeasurePairsmeasure_pairsMeasurePairsMeasurePairs, fuzzy_measure_posfuzzy_measure_posFuzzyMeasurePosfuzzy_measure_posFuzzyMeasurePosFuzzyMeasurePos, fuzzy_measure_pairsfuzzy_measure_pairsFuzzyMeasurePairsfuzzy_measure_pairsFuzzyMeasurePairsFuzzyMeasurePairs, fuzzy_measure_pairingfuzzy_measure_pairingFuzzyMeasurePairingfuzzy_measure_pairingFuzzyMeasurePairingFuzzyMeasurePairing

Alternatives

edges_sub_pixedges_sub_pixEdgesSubPixedges_sub_pixEdgesSubPixEdgesSubPix

See also

gen_measure_rectangle2gen_measure_rectangle2GenMeasureRectangle2gen_measure_rectangle2GenMeasureRectangle2GenMeasureRectangle2

Module

1D Metrology


ClassesClassesClassesClasses | | | | Operators