add_metrology_object_genericT_add_metrology_object_genericAddMetrologyObjectGenericAddMetrologyObjectGenericadd_metrology_object_generic添加计量对象通用(算子)
名称
add_metrology_object_genericT_add_metrology_object_genericAddMetrologyObjectGenericAddMetrologyObjectGenericadd_metrology_object_generic — 将计量对象添加到计量模型中。
签名
void AddMetrologyObjectGeneric(const HTuple& MetrologyHandle, const HTuple& Shape, const HTuple& ShapeParam, const HTuple& MeasureLength1, const HTuple& MeasureLength2, const HTuple& MeasureSigma, const HTuple& MeasureThreshold, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Index)
Hlong HMetrologyModel::AddMetrologyObjectGeneric(const HTuple& Shape, const HTuple& ShapeParam, const HTuple& MeasureLength1, const HTuple& MeasureLength2, const HTuple& MeasureSigma, const HTuple& MeasureThreshold, const HTuple& GenParamName, const HTuple& GenParamValue) const
Hlong HMetrologyModel::AddMetrologyObjectGeneric(const HString& Shape, const HTuple& ShapeParam, double MeasureLength1, double MeasureLength2, double MeasureSigma, double MeasureThreshold, const HTuple& GenParamName, const HTuple& GenParamValue) const
Hlong HMetrologyModel::AddMetrologyObjectGeneric(const char* Shape, const HTuple& ShapeParam, double MeasureLength1, double MeasureLength2, double MeasureSigma, double MeasureThreshold, const HTuple& GenParamName, const HTuple& GenParamValue) const
Hlong HMetrologyModel::AddMetrologyObjectGeneric(const wchar_t* Shape, const HTuple& ShapeParam, double MeasureLength1, double MeasureLength2, double MeasureSigma, double MeasureThreshold, const HTuple& GenParamName, const HTuple& GenParamValue) const
(
Windows only)
static void HOperatorSet.AddMetrologyObjectGeneric(HTuple metrologyHandle, HTuple shape, HTuple shapeParam, HTuple measureLength1, HTuple measureLength2, HTuple measureSigma, HTuple measureThreshold, HTuple genParamName, HTuple genParamValue, out HTuple index)
int HMetrologyModel.AddMetrologyObjectGeneric(HTuple shape, HTuple shapeParam, HTuple measureLength1, HTuple measureLength2, HTuple measureSigma, HTuple measureThreshold, HTuple genParamName, HTuple genParamValue)
int HMetrologyModel.AddMetrologyObjectGeneric(string shape, HTuple shapeParam, double measureLength1, double measureLength2, double measureSigma, double measureThreshold, HTuple genParamName, HTuple genParamValue)
def add_metrology_object_generic(metrology_handle: HHandle, shape: MaybeSequence[str], shape_param: Sequence[Union[int, float]], measure_length_1: Union[int, float], measure_length_2: Union[int, float], measure_sigma: Union[int, float], measure_threshold: Union[int, float], gen_param_name: Sequence[str], gen_param_value: Sequence[Union[float, int, str]]) -> int
描述
add_metrology_object_genericadd_metrology_object_genericAddMetrologyObjectGenericAddMetrologyObjectGenericAddMetrologyObjectGenericadd_metrology_object_generic 将类型为 ShapeShapeShapeShapeshapeshape 的计量对象添加到计量模型中,并准备矩形测量区域。
有关二维计量概念的说明,请参阅 二维计量 一章的引言。
该模型的句柄通过 MetrologyHandleMetrologyHandleMetrologyHandleMetrologyHandlemetrologyHandlemetrology_handle 传递。
ShapeShapeShapeShapeshapeshape 参数指定添加至计量模型的对象类型。add_metrology_object_genericadd_metrology_object_genericAddMetrologyObjectGenericAddMetrologyObjectGenericAddMetrologyObjectGenericadd_metrology_object_generic 算子通过参数 IndexIndexIndexIndexindexindex 返回所添加计量对象的索引值。需注意,add_metrology_object_genericadd_metrology_object_genericAddMetrologyObjectGenericAddMetrologyObjectGenericAddMetrologyObjectGenericadd_metrology_object_generic 算子整合了 add_metrology_object_circle_measureadd_metrology_object_circle_measureAddMetrologyObjectCircleMeasureAddMetrologyObjectCircleMeasureAddMetrologyObjectCircleMeasureadd_metrology_object_circle_measure、
add_metrology_object_ellipse_measureadd_metrology_object_ellipse_measureAddMetrologyObjectEllipseMeasureAddMetrologyObjectEllipseMeasureAddMetrologyObjectEllipseMeasureadd_metrology_object_ellipse_measure、
add_metrology_object_rectangle2_measureadd_metrology_object_rectangle2_measureAddMetrologyObjectRectangle2MeasureAddMetrologyObjectRectangle2MeasureAddMetrologyObjectRectangle2Measureadd_metrology_object_rectangle2_measure 和
add_metrology_object_line_measureadd_metrology_object_line_measureAddMetrologyObjectLineMeasureAddMetrologyObjectLineMeasureAddMetrologyObjectLineMeasureadd_metrology_object_line_measure 算子的功能。
可能的形状
根据 ShapeShapeShapeShapeshapeshape 根据形状中指定的对象,预期值如下:
- 'circle'"circle""circle""circle""circle""circle":
-
圆类型的计量对象的几何形状由其中心点(行,列)和半径确定。
ShapeParamShapeParamShapeParamShapeParamshapeParamshape_param=[Row, Column, Radius]
- 'rectangle2'"rectangle2""rectangle2""rectangle2""rectangle2""rectangle2":
-
矩形类型的计量对象的几何形状由其中心坐标(行,列)、主轴方向Phi以及半边长Length1和Length2定义。Phi的输入值将自动映射到区间 。
ShapeParamShapeParamShapeParamShapeParamshapeParamshape_param=[Row, Column, Phi, Length1, Length2]
- 'ellipse'"ellipse""ellipse""ellipse""ellipse""ellipse":
-
椭圆类型计量对象的几何形状由其中心坐标(行,列)、主轴方向 Phi、长半轴长度 Radius1 以及短半轴长度 Radius2 共同定义。Phi 的输入值将自动映射至区间 。
ShapeParamShapeParamShapeParamShapeParamshapeParamshape_param=[Row, Column, Phi, Radius1, Radius2]
- 'line'"line""line""line""line""line":
-
线类型计量对象的几何形状由其起始点的坐标(RowBegin, ColumnBegin)和终点的坐标(RowEnd, ColumnEnd)描述。
ShapeParamShapeParamShapeParamShapeParamshapeParamshape_param=[RowBegin, ColumnBegin, RowEnd, ColumnEnd]
测量区域的定义
add_metrology_object_genericadd_metrology_object_genericAddMetrologyObjectGenericAddMetrologyObjectGenericAddMetrologyObjectGenericadd_metrology_object_generic 同时准备矩形测量区域。这些矩形测量区域与对象边界垂直。测量区域中垂直于对象边界和切线方向的半边长分别通过 MeasureLength1MeasureLength1MeasureLength1MeasureLength1measureLength1measure_length_1 和
MeasureLength2MeasureLength2MeasureLength2MeasureLength2measureLength2measure_length_2 设定。测量区域的中心点位于对象边界上。参数 MeasureSigmaMeasureSigmaMeasureSigmaMeasureSigmameasureSigmameasure_sigma 指定标准差值,该值由 apply_metrology_modelapply_metrology_modelApplyMetrologyModelApplyMetrologyModelApplyMetrologyModelapply_metrology_model 算子用于平滑图像灰度值。突出的边缘可通过参数 MeasureThresholdMeasureThresholdMeasureThresholdMeasureThresholdmeasureThresholdmeasure_threshold 进行选择,该参数构成对振幅的阈值,即边缘一阶导数的绝对值。
通用参数
通用参数及其值可通过 GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name 和 GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value 进行指定。所有可在
set_metrology_object_paramset_metrology_object_paramSetMetrologyObjectParamSetMetrologyObjectParamSetMetrologyObjectParamset_metrology_object_param 算子中使用的通用参数,同样可在
add_metrology_object_genericadd_metrology_object_genericAddMetrologyObjectGenericAddMetrologyObjectGenericAddMetrologyObjectGenericadd_metrology_object_generic 中设置。但请注意,对于许多应用而言,默认值已足够使用,无需进行调整。此外,以下 GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name 和 GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value 的取值仅适用于 ShapeShapeShapeShapeshapeshape =
'circle'"circle""circle""circle""circle""circle" 和 'ellipse'"ellipse""ellipse""ellipse""ellipse""ellipse":
- 'start_phi'"start_phi""start_phi""start_phi""start_phi""start_phi":
-
该参数指定圆弧或椭圆弧起始点的角度。对于椭圆而言,起始点角度相对于正主轴进行测量,并对应于椭圆的最小外接圆。椭圆的实际起始点是椭圆与对应圆点在主轴上正交投影的交点。要创建闭合圆或椭圆,需将参数 'start_phi'"start_phi""start_phi""start_phi""start_phi""start_phi" 设为 0 ,并将参数 'end_phi'"end_phi""end_phi""end_phi""end_phi""end_phi" 设为 (采用正点顺序)。输入值将自动映射到区间 。
值列表: 0.0, 0.78,
6.28318
默认值: 0.0
- 'end_phi'"end_phi""end_phi""end_phi""end_phi""end_phi":
-
该参数指定圆弧或椭圆弧的端点角度。对于椭圆而言,端点角度相对于正主轴进行测量,并对应于椭圆的最小外接圆。椭圆的实际端点是椭圆与对应圆点在主轴上正交投影的交点。要创建闭合圆或椭圆,需将参数 'start_phi'"start_phi""start_phi""start_phi""start_phi""start_phi" 设为 0 ,并将参数 'end_phi'"end_phi""end_phi""end_phi""end_phi""end_phi" 设为 (采用正点顺序)。输入值将自动在内部映射到区间 。
值列表: 0.0, 0.78,
6.28318
默认值: 6.28318
- 'point_order'"point_order""point_order""point_order""point_order""point_order":
-
该参数指定圆弧或椭圆弧的方向。当取值为 'positive'"positive""positive""positive""positive""positive" 时,弧段在数学正方向(逆时针)上定义于 'start_phi'"start_phi""start_phi""start_phi""start_phi""start_phi" 与 'end_phi'"end_phi""end_phi""end_phi""end_phi""end_phi" 之间;当取值为 'negative'"negative""negative""negative""negative""negative" 时,弧段在数学负方向(顺时针)上定义于 'start_phi'"start_phi""start_phi""start_phi""start_phi""start_phi" 与 'end_phi'"end_phi""end_phi""end_phi""end_phi""end_phi" 之间。
值列表: 'positive'"positive""positive""positive""positive""positive", 'negative'"negative""negative""negative""negative""negative"
默认值: 'positive'"positive""positive""positive""positive""positive"
执行信息
- 多线程类型:可重入(与非独占算子并行运行)。
- 多线程作用域:全局(可从任何线程调用)。
- 未采用并行化处理。
此算子修改后续输入参数的状态:
在执行此算子时,若该参数值需在多个线程间使用,则必须对其访问进行同步。
参数
MetrologyHandleMetrologyHandleMetrologyHandleMetrologyHandlemetrologyHandlemetrology_handle (输入控制,状态被修改) metrology_model → HMetrologyModel, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
计量模型的句柄。
ShapeShapeShapeShapeshapeshape (输入控制) attribute.name(-array) → HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)
待添加计量对象的类型。
默认值:
'circle'
"circle"
"circle"
"circle"
"circle"
"circle"
值列表:
'circle'"circle""circle""circle""circle""circle", 'ellipse'"ellipse""ellipse""ellipse""ellipse""ellipse", 'line'"line""line""line""line""line", 'rectangle2'"rectangle2""rectangle2""rectangle2""rectangle2""rectangle2"
ShapeParamShapeParamShapeParamShapeParamshapeParamshape_param (输入控制) attribute.value-array → HTupleSequence[Union[int, float]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
待添加计量对象的参数。
MeasureLength1MeasureLength1MeasureLength1MeasureLength1measureLength1measure_length_1 (输入控制) number → HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
与边界垂直的测量区域长度的一半。
默认值:
20.0
建议值:
10.0, 20.0, 30.0
值范围:
1.0
≤
MeasureLength1
MeasureLength1
MeasureLength1
MeasureLength1
measureLength1
measure_length_1
≤
511.0 (lin)
最小增量:
1.0
建议增量:
10.0
MeasureLength2MeasureLength2MeasureLength2MeasureLength2measureLength2measure_length_2 (输入控制) number → HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
与边界相切的测量区域长度的一半。
默认值:
5.0
建议值:
3.0, 5.0, 10.0
值范围:
1.0
≤
MeasureLength2
MeasureLength2
MeasureLength2
MeasureLength2
measureLength2
measure_length_2
≤
511.0 (lin)
最小增量:
1.0
建议增量:
10.0
MeasureSigmaMeasureSigmaMeasureSigmaMeasureSigmameasureSigmameasure_sigma (输入控制) number → HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
高斯函数的平滑西格玛(sigma)值。
默认值:
1.0
建议值:
0.4, 0.6, 0.8, 1.0, 1.5, 2.0, 3.0, 4.0, 5.0, 7.0, 10.0
值范围:
0.4
≤
MeasureSigma
MeasureSigma
MeasureSigma
MeasureSigma
measureSigma
measure_sigma
≤
100 (lin)
最小增量:
0.01
建议增量:
0.1
MeasureThresholdMeasureThresholdMeasureThresholdMeasureThresholdmeasureThresholdmeasure_threshold (输入控制) number → HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
最小边缘振幅。
默认值:
30.0
建议值:
5.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 90.0, 110.0
值范围:
1
≤
MeasureThreshold
MeasureThreshold
MeasureThreshold
MeasureThreshold
measureThreshold
measure_threshold
≤
255 (lin)
最小增量:
0.5
建议增量:
2
GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name (输入控制) attribute.name-array → HTupleSequence[str]HTupleHtuple (string) (string) (HString) (char*)
通用参数的名称。
默认值:
[]
值列表:
'distance_threshold'"distance_threshold""distance_threshold""distance_threshold""distance_threshold""distance_threshold", 'end_phi'"end_phi""end_phi""end_phi""end_phi""end_phi", 'instances_outside_measure_regions'"instances_outside_measure_regions""instances_outside_measure_regions""instances_outside_measure_regions""instances_outside_measure_regions""instances_outside_measure_regions", 'max_num_iterations'"max_num_iterations""max_num_iterations""max_num_iterations""max_num_iterations""max_num_iterations", 'measure_distance'"measure_distance""measure_distance""measure_distance""measure_distance""measure_distance", 'measure_interpolation'"measure_interpolation""measure_interpolation""measure_interpolation""measure_interpolation""measure_interpolation", 'measure_select'"measure_select""measure_select""measure_select""measure_select""measure_select", 'measure_transition'"measure_transition""measure_transition""measure_transition""measure_transition""measure_transition", 'min_score'"min_score""min_score""min_score""min_score""min_score", 'num_instances'"num_instances""num_instances""num_instances""num_instances""num_instances", 'num_measures'"num_measures""num_measures""num_measures""num_measures""num_measures", 'point_order'"point_order""point_order""point_order""point_order""point_order", 'rand_seed'"rand_seed""rand_seed""rand_seed""rand_seed""rand_seed", 'start_phi'"start_phi""start_phi""start_phi""start_phi""start_phi"
GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value (输入控制) attribute.value-array → HTupleSequence[Union[float, int, str]]HTupleHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)
通用参数的值。
默认值:
[]
建议值:
1, 2, 3, 4, 5, 10, 20, 'all'"all""all""all""all""all", 'true'"true""true""true""true""true", 'false'"false""false""false""false""false", 'first'"first""first""first""first""first", 'last'"last""last""last""last""last", 'positive'"positive""positive""positive""positive""positive", 'negative'"negative""negative""negative""negative""negative", 'uniform'"uniform""uniform""uniform""uniform""uniform", 'nearest_neighbor'"nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor", 'bilinear'"bilinear""bilinear""bilinear""bilinear""bilinear", 'bicubic'"bicubic""bicubic""bicubic""bicubic""bicubic"
IndexIndexIndexIndexindexindex (输出控制) integer → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
创建的计量对象索引。
示例(HDevelop)
create_metrology_model (MetrologyHandle)
read_image (Image, 'fabrik')
get_image_size (Image, Width, Height)
set_metrology_model_image_size (MetrologyHandle, Width, Height)
LinePar := [45,360,415,360]
RectPar1 := [270,232,rad(0),30,25]
RectPar2 := [360,230,rad(0),30,25]
LinePar := [45,360,415,360]
RectPar3 := [245,320,rad(-90),70,35]
* Add two rectangles
add_metrology_object_generic (MetrologyHandle, 'rectangle2', \
[RectPar1,RectPar2], 20, 5, 1, 30, [], [], \
Indices)
* Add a rectangle and a line
add_metrology_object_generic (MetrologyHandle, ['rectangle2','line'], \
[RectPar3,LinePar], 20, 5, 1, 30, [], [], \
Index)
get_metrology_object_model_contour (Contour, MetrologyHandle, 'all', 1.5)
apply_metrology_model (Image, MetrologyHandle)
get_metrology_object_result_contour (Contour1, MetrologyHandle, 'all', \
'all', 1.5)
结果
add_metrology_object_genericadd_metrology_object_genericAddMetrologyObjectGenericAddMetrologyObjectGenericAddMetrologyObjectGenericadd_metrology_object_generic 算子在参数正确时返回 2 ( H_MSG_TRUE )。如有必要,则抛出异常。
可能的前趋
set_metrology_model_image_sizeset_metrology_model_image_sizeSetMetrologyModelImageSizeSetMetrologyModelImageSizeSetMetrologyModelImageSizeset_metrology_model_image_size,
set_metrology_model_paramset_metrology_model_paramSetMetrologyModelParamSetMetrologyModelParamSetMetrologyModelParamset_metrology_model_param
可能的后继
align_metrology_modelalign_metrology_modelAlignMetrologyModelAlignMetrologyModelAlignMetrologyModelalign_metrology_model,
apply_metrology_modelapply_metrology_modelApplyMetrologyModelApplyMetrologyModelApplyMetrologyModelapply_metrology_model,
set_metrology_model_paramset_metrology_model_paramSetMetrologyModelParamSetMetrologyModelParamSetMetrologyModelParamset_metrology_model_param
另见
get_metrology_object_model_contourget_metrology_object_model_contourGetMetrologyObjectModelContourGetMetrologyObjectModelContourGetMetrologyObjectModelContourget_metrology_object_model_contour
模块
二维计量