create_metrology_model(算子)

create_metrology_model - 创建测量几何形状所需的数据结构。

create_metrology_model(::: MetrologyHandle)

描述

create_metrology_model创建计量模型,即通过2D计量测量具有特定几何形状(计量对象)的对象所需的数据结构,并将其返回到手柄MetrologyHandle中。

二维计量的基本原理

通常,对于2D度量,必须提供要测量的对象的位置,方向和几何形状的近似值。在显示对象的图像内,这些近似对象的边界用于定位对象的真实边缘以适应几何形状的参数,使得它们最佳地适合图像数据。测量结果是优化的参数。计量模型用于存储所有必要的信息,例如计量对象的位置和几何形状的初始参数,控制测量的参数以及测量结果。可以通过2D计量测量的几何形状包括圆形,椭圆形,矩形和线条。

图像中对象的边缘位于所谓的测量区域内。这些是矩形区域,其垂直于近似物体的边界布置,使得它们的中心位于边界上。调整测量区域的尺寸和分布的参数与每个测量对象的近似形状参数一起指定。

当应用测量时,使用RANSAC算法确定所有测量区域内的边缘位置并使其适合几何形状。
在这里插入图片描述
计量模型包含7个显示为蓝色轮廓的计量对象。使用位于测量区域(灰色矩形)内的边缘(青色十字)用于每个计量对象,拟合几何形状(绿色轮廓)并测量它们的参数。如针对圆形的计量对象所示,可以找到一个以上的计量对象实例。
在下文中,描述了进行这种测量所需的各个步骤:

创建计量模型数据结构

首先,使用create_metrology_model创建计量模型数据结构,create_metrology_model用作一个或多个计量对象的容器。之后,应使用set_metrology_model_image_size指定将在其中执行测量的图像的图像大小,以进行有效测量。

提供近似值

然后,计量对象被添加到计量模型中。每个计量对象包括图像中相应对象的近似形状参数以及控制测量的参数。控制测量的参数包括例如指定测量区域的半长度和它们之间的距离的参数。此外,可以为每个计量对象调整几个通用参数。对于类型为circle的计量对象,使用运算符add_metrology_object_circle_measure指定计量对象,对于椭圆类型的计量对象使用add_metrology_object_ellipse_measure,对于类型为矩形的计量对象使用add_metrology_object_rectangle2_measure,对于类型行的计量对象使用add_metrology_object_line_measure。操作员add_metrology_object_generic允许使用一个操作员创建不同几何形状类型(例如椭圆,圆等)的计量对象。要目视检查定义的计量对象,可以使用运算符get_metrology_object_model_contour访问其边界的XLD轮廓。要目视检查创建的度量区域,可以使用运算符get_metrology_object_measures访问其边界的XLD轮廓。

修改模型参数

如果已执行摄像机校准,则摄像机参数和测量平面的姿势对所有计量对象有效,并使用set_metrology_model_param添加到计量模型中。然后,get_metrology_object_result返回的测量结果将以世界坐标表示。可以使用set_metrology_model_param来改变定义计量对象的参考坐标系。

修改对象参数

将计量对象添加到计量模型时,可以设置许多参数。其中一些也可以使用运算符set_metrology_object_param进行修改。可以使用copy_metrology_model复制计量模型。要将计量模型写入文件,可以使用运算符write_metrology_model。可以使用read_metrology_model再次从文件中读取模型。可以使用get_metrology_object_indices查询计量对象的索引。

对齐计量模型

align_metrology_model用于在执行下一次测量之前平移和旋转计量模型,以使其与图像中的当前出现相匹配。对齐是临时的,并由下一个对齐替换。计量模型本身没有改变。如果要使用形状模型和find_shape_model来获取对齐参数,请参阅align_metrology_model以获取更多详细信息。

应用测量

将所有计量对象添加到计量模型后,设置所有参数,并且可能发生对齐,使用apply_metrology_model执行图像中的测量。操作员使用RANSAC算法定位测量区域内的边缘并使指定的几何形状适合边缘位置。边缘使用运算符measure_pos或fuzzy_measure_pos在内部定位。后者使用模糊方法,并且仅在应用测量之前通过set_metrology_object_fuzzy_param设置至少一个模糊函数时使用。如果需要返回的对象形状的多个实例(比较上面的图像),则必须将泛型参数“num_instances”设置为应返回的实例数。添加单个计量对象时或之后使用运算符set_metrology_object_param可以设置该参数。

访问结果

测量后,可以访问结果。使用操作员get_metrology_object_result查询对象的适应几何形状的参数。注意,如果返回一个以上的对象实例,则返回的实例的序列是任意的,即,它不是对拟合质量的度量。可以使用get_metrology_object_measures访问所有定位边的行和列坐标。仅使用get_metrology_object_result查询用于返回结果的边和它们的幅度。通过get_metrology_object_result_contour提供了作为XLD轮廓的适应几何形状的可视化。

清理记忆

当不再需要计量模型时,应使用clear_metrology_model销毁它。

注意

注意,在调用运算符create_metrology_model之后,应该出于效率原因调用运算符set_metrology_model_image_size。

多线程类型:可重入(与非独占运算符并行运行)。
多线程范围:全局(可以从任何线程调用)。
没有并行化处理。
此运算符返回句柄。请注意,即使将此句柄类型的实例用作输入参数,也可以由特定运算符更改该句柄类型的实例的状态。

参数

MetrologyHandle(output_control)metrology_model→(整数)
处理计量模型。

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐