本章包含用于二维计量的算子。
通过二维计量技术,可测量由特定几何基元表示的对象尺寸。可测量的几何形状包括圆、椭圆、矩形和直线。您需要先获取待测对象位置、方向及尺寸的近似值。随后,图像中对象的真实边缘位置将定位于近似对象的边界附近。基于这些边缘位置,系统将优化几何形状的参数以更契合图像数据,最终作为测量结果返回。
对象的形状参数近似值以及控制测量的某些参数存储在称为计量对象的数据结构中。图像中对象的边缘位于所谓的测量区域内。这些矩形区域垂直于计量对象的边界排列。用于调整测量区域尺寸与分布的参数,需与每个计量对象的近似形状参数共同设定。测量执行时,系统将确定所有测量区域内的边缘位置,并通过 RANSAC(Random sample consensus,随机样本一致) 算法将其拟合为几何形状。所有计量对象、测量所需的附加信息及测量结果,均存储于名为计量模型的数据结构中。
| ( 1) | ( 2) |
apply_metrology_model.hdev。
以下简要描述了使用二维计量技术所需的步骤。
首先,必须创建计量模型,使用算子
计量模型作为容器用于容纳一个或多个计量对象。为实现高效测量,创建计量模型后,应指定待测量图像的尺寸,使用算子
随后,计量对象被添加至计量模型。每个计量对象包含图像中对应目标的近似形状参数,以及控制测量的参数。控制测量的参数包括如指定测量区域尺寸与分布的参数。此外,每个计量对象可调整若干通用参数。计量对象通过以下方式指定:
允许使用单一算子创建不同形状(如椭圆、圆等)的计量对象。
add_metrology_object_generic
要目视检查定义的计量对象,可通过算子
访问其 XLD 轮廓。要目视检查创建的测量区域,可通过算子 get_metrology_object_model_contour 访问其 XLD 轮廓。get_metrology_object_measures
若已执行相机标定,可设置相机参数和测量平面的姿态,通过算子
随后,由
返回的测量结果将采用世界坐标系。通过 get_metrology_object_result 算子,也可更改计量对象所定义的参考坐标系。。set_metrology_model_param
在将计量对象添加到计量模型时,可设置多个参数。其中部分参数后续也可以进行修改,使用算子
要在执行下一次测量之前对计量模型进行平移和旋转,可使用算子
对齐是暂时的,将被下一次对齐所取代。计量模型本身不会改变。请注意,通常通过基于形状的匹配来获取对齐参数。
图像中的实际测量的执行,通过算子
该算子定位测量区域内的边缘,并通过 RANSAC 算法将指定的几何形状拟合到边缘位置。边缘定位采用内部算子
或 measure_pos 实现(参见
一维测量 一章)。后者采用模糊方法,仅当在应用测量前通过
fuzzy_measure_pos 置至少一个模糊函数时才会启用。若需返回多个对象形状实例(参见上图),则通用参数
set_metrology_object_fuzzy_param'num_instances' 必须设置为所需返回的实例数量。该参数可在添加单个计量对象时设置,也可通过算子
后续配置。set_metrology_object_param
测量完成后,可获取测量结果。可查询对象适配几何形状的参数,通过调用算子
仅查询用于返回结果的边缘及其振幅也通过 实现。get_metrology_object_result
所有定位边缘的行和列坐标均可获取,通过算子
要可视化调整后的几何形状,可获取其 XLD 轮廓,通过算子
除上述算子外,您还可以使用 复制计量学句柄,使用 copy_metrology_model 将计量学模型写入文件,使用
write_metrology_model 从文件中读取模型,并使用 read_metrology_model 或
serialize_metrology_model 对计量模型进行序列化或反序列化。deserialize_metrology_model
此外,您还可以从计量模型中查询各类信息。例如:使用
查询计量对象的索引;使用 get_metrology_object_indices 查询整个计量模型适用的参数;使用 get_metrology_model_param 查询计量模型的模糊参数; 使用 get_metrology_object_fuzzy_param 查询计量模型中计量对象的实例数量,以及使用
get_metrology_object_num_instances 查询计量模型的当前配置。get_metrology_object_param
此外,您可以使用
重置计量模型的所有参数,或使用
reset_metrology_object_param 仅重置计量模型中的所有模糊参数和模糊函数。reset_metrology_object_fuzzy_param
以下将阐述二维计量领域中使用的重要术语。
包含所有计量对象、测量所需全部信息及测量结果的数据结构。
用于二维计量测量的待测对象数据结构。该计量对象由特定几何形状表示,其形状参数大致已知。此外,它还包含控制测量的参数,例如指定测量区域尺寸和分布的参数。
垂直于近似对象边界排列的矩形区域。在这些区域内,提取用于获取计量对象精确形状参数的边缘。
对于每个计量对象,测量结果可能返回该对象的不同实例,例如当近似几何形状的边界附近存在相同形状的平行结构时(参见上图)。返回实例的顺序是任意的,即该顺序不能作为拟合质量的衡量标准。
有关二维计量的更多详情,请参阅 “二维测量解决方案指南”。
add_metrology_object_circle_measure添加计量对象圆测量add_metrology_object_ellipse_measure添加计量对象椭圆测量add_metrology_object_generic添加计量对象通用add_metrology_object_line_measure添加计量对象线测量add_metrology_object_rectangle2_measure添加计量对象矩形2测量align_metrology_model对齐计量模型apply_metrology_model应用计量模型clear_metrology_model清除计量模型clear_metrology_object清除计量对象copy_metrology_model复制计量模型create_metrology_model创建计量模型deserialize_metrology_model反序列化计量模型get_metrology_model_param获取计量模型参数get_metrology_object_fuzzy_param获取计量对象模糊参数get_metrology_object_indices获取计量对象索引get_metrology_object_measures获取计量对象测量get_metrology_object_model_contour获取计量对象模型轮廓get_metrology_object_num_instances获取计量对象数量实例get_metrology_object_param获取计量对象参数get_metrology_object_result获取计量对象结果get_metrology_object_result_contour获取计量对象结果轮廓read_metrology_model读取计量模型reset_metrology_object_fuzzy_param重置计量对象模糊参数reset_metrology_object_param重置计量对象参数serialize_metrology_model序列化计量模型set_metrology_model_image_size设置计量模型图像大小set_metrology_model_param设置计量模型参数set_metrology_object_fuzzy_param设置计量对象模糊参数set_metrology_object_param设置计量对象参数write_metrology_model写入计量模型