halcon算子翻译——set_fuzzy_measure_norm_pair
名称
set_fuzzy_measure_norm_pair - 为边缘对指定一个归一化的模糊函数。
用法
set_fuzzy_measure_norm_pair( : : MeasureHandle, PairSize, SetType, Function : )
描述
set_fuzzy_measure_norm_pair指定在Function中传递归一化模糊函数。 指定的模糊函数使得fuzzy_measure_pos,fuzzy_measure_pairs和fuzzy_measure_pairing能够评估和选择检测到的边缘和边缘对的候选。 为此,不同边缘特征的加权特征可以由一个函数来定义。 这种特定的特征被称为模糊集合。 指定模糊集没有功能意味着不使用此特征进行最终边缘评估。 将第二个模糊函数设置为模糊集意味着丢弃第一个定义的函数并将其替换为第二个函数。 与set_fuzzy_measure不同,这些函数的横坐标x必须相对于边缘对的期望尺寸s(在PairSize中传递)来定义。 这使得所定义的功能得到广泛使用。 先前定义的归一化模糊函数可以通过reset_fuzzy_measure完全丢弃。
可以定义由SetType参数选择的三种不同模糊集合类型的函数,一个集合的子类型是互斥的:
'size'表示一个模糊集合,以像素为单位评估一对的两个边缘的归一化距离:
和“size_abs_diff”的绝对归一化大小差异
'position'的模糊函数评估由gen_measure_arc或gen_measure_rectangle2生成的每个候选边缘到measure对象的参考点的有符号距离p:
参考点位于开始处,而'position_center'或'position_end'将参考点设置为一维灰度值轮廓的中间或末端。 如果模糊位置评估取决于沿着轮廓'position_first_edge'的对象的位置,则'position_last_edge'在第一个/最后提取的边缘的位置处设置参考点。 当提取边缘对时,边缘对的位置被两边的模糊位置分数的几何平均值所引用。
与‘postition'相似,'position_pair'计算每个边缘对与测量对象参考点的有符号距离。 边缘对的位置由两个边缘之间的中心点定义。 对象的引用可以分别由'position_pair_center','position_pair_end'和'position_first_pair','position_last_pair'来设置。 与'position'相反,该模糊集仅由fuzzy_measure_pairs / fuzzy_measure_pairing使用。
归一化的模糊函数被定义为至少两对值的分段线性函数,按x值升序排序。 模糊函数的y值表示相应特征值的权重,并且必须满足0.0 <= y <= 1.0的范围。 在由最小和最大x值定义的函数间隔之外,间隔边界的y值不断连续。 这样的模糊函数可以由create_funct_1d_pairs生成。
如果定义了多个集合,则fuzzy_measure_pos / fuzzy_measure_pairs / fuzzy_measure_pairing通过每个集合的权重的几何平均值来产生整体模糊加权。
并行
● 多线程类型:可重入(与非独占算子并行运行)。
● 多线程范围:全局(可以从任何线程调用)。
● 不并行处理。
该算子修改以下输入参数的状态:
MeasureHandle
如果没有全局同步,此参数的值可能不会在多个线程之间共享。
参数
MeasureHandle (input_control, state is modified) measure_id → (integer)
Measure对象句柄。
PairSize (input_control) number → (real / integer)
边缘对的预期宽度。
Default value: 10.0
List of values: 4.0, 6.0, 8.0, 10.0, 15.0, 20.0, 30.0
Typical range of values: 0.0 ≤ PairSize
Minimum increment: 0.1
Recommended increment: 1.0
SetType (input_control) string → (string)
模糊集合的选择。
Default value: 'size_abs_diff'
List of values: 'position', 'position_center', 'position_end', 'position_first_edge', 'position_first_pair', 'position_last_edge', 'position_last_pair', 'position_pair_center', 'position_pair_end', 'size', 'size_abs_diff', 'size_diff'
Function (input_control) function_1d → (real / integer)
模糊函数。
示例(HDevelop)
* how to use a fuzzy function * ... gen_measure_rectangle2 (50, 100, 0, 200, 100, 512, 512, 'nearest_neighbor', \ MeasureHandle) * create a generalized fuzzy function to evaluate edge pairs * * (30% uncertainty). create_funct_1d_pairs ([0.7,1.0,1.3], [0.0,1.0,0.0], SizeFunction) * and set it for an expected pair size of 13.45 pixels set_fuzzy_measure_norm_pair (MeasureHandle, 13.45, 'size', SizeFunction) fuzzy_measure_pairs (Image, MeasureHandle, 1, 30, 0.5, 'all', RowEdgeFirst, \ ColumnEdgeFirst, AmplitudeFirst, RowEdgeSecond, \ ColumnEdgeSecond, AmplitudeSecond, RowEdgeCenter, \ ColumnEdgeCenter, FuzzyScore, IntraDistance, \ InterDistance)
Possible Predecessors
gen_measure_arc, gen_measure_rectangle2, create_funct_1d_pairs
Possible Successors
fuzzy_measure_pairs, fuzzy_measure_pairing
Alternatives
transform_funct_1d, set_fuzzy_measure
See also
reset_fuzzy_measure
模块
1D Metrology
HDevelop例程
fuzzy_measure_pin.hdev 使用模糊测量来测量IC的引脚。