gen_measure_arcT_gen_measure_arcGenMeasureArcGenMeasureArcgen_measure_arc (算子名称)
名称
gen_measure_arcT_gen_measure_arcGenMeasureArcGenMeasureArcgen_measure_arc — Prepare the extraction of straight edges perpendicular to an annular arc.
参数签名
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::HMeasure(double CenterRow, double CenterCol, double Radius, double AngleStart, double AngleExtent, double AnnulusRadius, Hlong Width, Hlong Height, const wchar_t* Interpolation)
(
Windows only)
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 HMeasure::GenMeasureArc(double CenterRow, double CenterCol, double Radius, double AngleStart, double AngleExtent, double AnnulusRadius, Hlong Width, Hlong Height, const wchar_t* Interpolation)
(
Windows only)
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)
def gen_measure_arc(center_row: Union[int, float], center_col: Union[int, float], radius: Union[int, float], angle_start: Union[int, float], angle_extent: Union[int, float], annulus_radius: Union[int, float], width: int, height: int, interpolation: str) -> HHandle
描述
gen_measure_arcgen_measure_arcGenMeasureArcGenMeasureArcGenMeasureArcgen_measure_arc 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 CenterRowCenterRowCenterRowCenterRowcenterRowcenter_row and
CenterColCenterColCenterColCenterColcenterColcenter_col, its radius in RadiusRadiusRadiusRadiusradiusradius, the starting
angle in AngleStartAngleStartAngleStartAngleStartangleStartangle_start, and its angular extent relative to the
starting angle in AngleExtentAngleExtentAngleExtentAngleExtentangleExtentangle_extent. If AngleExtentAngleExtentAngleExtentAngleExtentangleExtentangle_extent >
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 AnnulusRadiusAnnulusRadiusAnnulusRadiusAnnulusRadiusannulusRadiusannulus_radius.
For an explanation of the concept of 1D 测量 see the introduction of
chapter 1D 测量.
The edge extraction algorithm is described in the documentation of
该算子 measure_posmeasure_posMeasurePosMeasurePosMeasurePosmeasure_pos. 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 该算子
gen_measure_arcgen_measure_arcGenMeasureArcGenMeasureArcGenMeasureArcgen_measure_arc. For this, an optimized data structure, a so-called
measure object, is constructed and returned in MeasureHandleMeasureHandleMeasureHandleMeasureHandlemeasureHandlemeasure_handle. 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_systemSetSystemSetSystemSetSystemset_system)
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.
注意
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.
Please also note that the center coordinates of the arc are rounded
internally, so that the center lies on the pixel grid.
This is done to ensure consistency.
运行信息
- 多线程类型:可重入(与非独占操作符并行运行)。
- 多线程作用域:全局(可以从任何线程调用)。
- 未经并行化处理。
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.
参数表
CenterRowCenterRowCenterRowCenterRowcenterRowcenter_row (input_control) point.y → HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Row coordinate of the center of the arc.
Default:
100.0
Suggested values:
10.0, 20.0, 50.0, 100.0, 200.0, 300.0, 400.0, 500.0
Value range:
0.0
≤
CenterRow
CenterRow
CenterRow
CenterRow
centerRow
center_row
(lin)
Minimum increment:
1.0
Recommended increment:
10.0
CenterColCenterColCenterColCenterColcenterColcenter_col (input_control) point.x → HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Column coordinate of the center of the arc.
Default:
100.0
Suggested values:
10.0, 20.0, 50.0, 100.0, 200.0, 300.0, 400.0, 500.0
Value range:
0.0
≤
CenterCol
CenterCol
CenterCol
CenterCol
centerCol
center_col
(lin)
Minimum increment:
1.0
Recommended increment:
10.0
RadiusRadiusRadiusRadiusradiusradius (input_control) number → HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Radius of the arc.
Default:
50.0
Suggested values:
10.0, 20.0, 50.0, 100.0, 200.0, 300.0, 400.0, 500.0
Value range:
Radius
Radius
Radius
Radius
radius
radius
(lin)
Minimum increment:
1.0
Recommended increment:
10.0
Restriction:
AnnulusRadius <= Radius
AngleStartAngleStartAngleStartAngleStartangleStartangle_start (input_control) angle.rad → HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Start angle of the arc in radians.
Default:
0.0
Suggested values:
-3.14159, -2.35619, -1.57080, -0.78540, 0.0, 0.78540, 1.57080, 2.35619, 3.14159
Value range:
-3.14159
≤
AngleStart
AngleStart
AngleStart
AngleStart
angleStart
angle_start
≤
3.14159 (lin)
Minimum increment:
0.03142
Recommended increment:
0.31416
AngleExtentAngleExtentAngleExtentAngleExtentangleExtentangle_extent (input_control) angle.rad → HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Angular extent of the arc in radians.
Default:
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
Value range:
-6.28318
≤
AngleExtent
AngleExtent
AngleExtent
AngleExtent
angleExtent
angle_extent
≤
6.28318 (lin)
Minimum increment:
0.03142
Recommended increment:
0.31416
AnnulusRadiusAnnulusRadiusAnnulusRadiusAnnulusRadiusannulusRadiusannulus_radius (input_control) number → HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Radius (half width) of the annulus.
Default:
10.0
Suggested values:
10.0, 20.0, 50.0, 100.0, 200.0, 300.0, 400.0, 500.0
Value range:
AnnulusRadius
AnnulusRadius
AnnulusRadius
AnnulusRadius
annulusRadius
annulus_radius
(lin)
Minimum increment:
1.0
Recommended increment:
10.0
Restriction:
AnnulusRadius > 0
WidthWidthWidthWidthwidthwidth (input_control) extent.x → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Width of the image to be processed subsequently.
Default:
512
Suggested values:
128, 160, 192, 256, 320, 384, 512, 640, 768
Value range:
0
≤
Width
Width
Width
Width
width
width
(lin)
Minimum increment:
1
Recommended increment:
16
HeightHeightHeightHeightheightheight (input_control) extent.y → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Height of the image to be processed subsequently.
Default:
512
Suggested values:
120, 128, 144, 240, 256, 288, 480, 512, 576
Value range:
0
≤
Height
Height
Height
Height
height
height
(lin)
Minimum increment:
1
Recommended increment:
16
InterpolationInterpolationInterpolationInterpolationinterpolationinterpolation (input_control) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Type of interpolation to be used.
Default:
'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"
MeasureHandleMeasureHandleMeasureHandleMeasureHandlemeasureHandlemeasure_handle (output_control) measure → HMeasure, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Measure object handle.
结果
If the parameter values are correct, 该算子
gen_measure_arcgen_measure_arcGenMeasureArcGenMeasureArcGenMeasureArcgen_measure_arc 返回值 2 (
H_MSG_TRUE)
. Otherwise an
exception is raised.
可能的前置算子
draw_circledraw_circleDrawCircleDrawCircleDrawCircledraw_circle
可能的后置算子
measure_posmeasure_posMeasurePosMeasurePosMeasurePosmeasure_pos,
measure_pairsmeasure_pairsMeasurePairsMeasurePairsMeasurePairsmeasure_pairs,
fuzzy_measure_posfuzzy_measure_posFuzzyMeasurePosFuzzyMeasurePosFuzzyMeasurePosfuzzy_measure_pos,
fuzzy_measure_pairsfuzzy_measure_pairsFuzzyMeasurePairsFuzzyMeasurePairsFuzzyMeasurePairsfuzzy_measure_pairs,
fuzzy_measure_pairingfuzzy_measure_pairingFuzzyMeasurePairingFuzzyMeasurePairingFuzzyMeasurePairingfuzzy_measure_pairing
可替代算子
edges_sub_pixedges_sub_pixEdgesSubPixEdgesSubPixEdgesSubPixedges_sub_pix
参考其它
gen_measure_rectangle2gen_measure_rectangle2GenMeasureRectangle2GenMeasureRectangle2GenMeasureRectangle2gen_measure_rectangle2
模块
1D Metrology