halcon参考手册,第二章2D Metrology

第二章 2D Metrology (...) ,二维测量

本章包含二维计量的运算符。

1.二维计量的概念

使用2D计量,可以测量可以由特定几何原语表示的对象的尺寸。可以测量的几何形状包括圆、椭圆、矩形和直线。您需要测量对象的位置、方向和尺寸的近似值。然后,将图像中物体的真实边缘位置定位到近似物体的边界附近。利用这些边缘位置,优化几何形状的参数以更好地拟合图像数据,并作为测量结果返回。

物体形状参数的近似值以及控制测量的一些参数存储在一个称为计量对象的数据结构中。图像中物体的边缘位于所谓的测量区域内。这些是垂直于计量对象的边界排列的矩形区域。调整测量区域的尺寸和分布的参数与每个计量对象的近似形状参数一起被指定。当应用测量时,确定所有测量区域内的边缘位置,并使用RANSAC算法拟合几何形状。所有计量对象、测量所需的所有进一步信息以及测量结果都存储在一个称为计量模型的数据结构中。

下面简要介绍使用二维计量所需的步骤。


(1)创建计量模型并指定图像大小:
首先,必须使用创建计量模型
create_metrology_model。
计量模型用作一个或多个计量对象的容器。为了进行有效的测量,在创建计量模型之后,应该使用
set_metrology_model_image_size。

(2)提供近似值:
然后,将计量对象添加到计量模型中。每个计量对象由图像中对应对象的近似形状参数和控制测量的参数组成。控制测量的参数包括,例如,指定测量区域的尺寸和分布的参数。此外,可以为每个计量对象调整几个通用参数。指定计量对象:

要可视地检查已定义的计量对象,您可以使用操作符get_metrology_object_model_contour访问它们的XLD轮廓。要可视地检查创建的度量区域,您可以使用操作符get_metrology_object_measures访问它们的XLD轮廓。

(3)修改模型参数:
如果对相机进行了校准,则可以使用:
set_metrology_model_param。
然后,get_metrology_object_result返回的测量结果将以世界坐标表示。还可以使用set_metrology_model_param更改定义计量对象的参考坐标系。

(4)修改对象参数:
在向计量模型中添加计量对象时,可以设置许多参数。其中一些还可以在之后使用运算符进行修改:
set_metrology_object_param。

(5)校准计量模型:
要在执行下一次测量之前平移和旋转计量模型,可以使用操作符:
align_metrology_model。
一次对齐是临时的,将被下一次对齐所取代。计量模型本身没有改变。请注意,通常使用基于形状的匹配获得对齐参数。

(6)应用测量:
图像中的实际测量是用
apply_metrology_model。
该算子在测量区域内定位边缘,并使用RANSAC算法将指定的几何形状拟合到边缘位置。使用操作符measure_pos或fuzzy_measure_pos在内部定位边缘(参见1D测量)。后者使用模糊方法,只有在应用测量之前通过set_metrology_object_fuzzy_param设置了至少一个模糊函数时才会使用。如果需要返回的对象形状的多个实例(比较上面的图像),则必须将通用参数“num_instances”设置为应该返回的实例数量。可以在添加单个计量对象时设置该参数,也可以随后使用set_metrology_object_param操作符设置该参数。

(7)访问结果:
测量结束后,可以访问结果。利用算子查询对象自适应几何形状的参数
get_metrology_object_result。
也可以使用get_metrology_object_result查询用于返回结果的边及其幅度。

可以访问所有已定位边的行坐标和列坐标
get_metrology_object_measures。
要可视化已调整的几何形状,您可以使用
get_metrology_object_result_contour。

2.进一步的操作

除了上面提到的操作符之外,您还可以使用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仅重置计量模型的所有模糊参数和模糊函数。


3.术语表

在下文中,描述了在二维计量上下文中使用的最重要的术语。

(1)计量模型
包含所有计量对象、测量所需的所有信息和测量结果的数据结构。

(2)计量对象
用二维测量法测量对象的数据结构。计量对象用其形状参数近似已知的特定几何形状来表示。此外,它还包含控制测量的参数,例如,指定测量区域的尺寸和分布的参数。

(3)测量区域
垂直于近似对象的边界排列的矩形区域。在这些区域内提取用于获得测量对象精确形状参数的边缘。

(4)计量对象的返回实例
对于每个计量对象,可以通过测量返回该对象的不同实例,例如,如果在近似几何形状的边界附近存在相同形状的平行结构(见上图)。返回实例的顺序是任意的,也就是说,它不能衡量拟合的质量。

4.进一步的信息

有关二维测量的更多详细信息,请参见“二维测量解决方案指南”。

5.运算符列表

add_metrology_object_circle_measure
在计量模型中添加一个圆或圆弧。
add_metrology_object_ellipse_measure
在计量模型中添加椭圆或椭圆弧。
add_metrology_object_generic
向计量模型添加计量对象。
add_metrology_object_line_measure
向计量模型添加一条线。
add_metrology_object_rectangle2_measure
向计量模型添加一个矩形。
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
将计量模型写入文件。

转载自:https://blog.csdn.net/qq_45813590/article/details/132361698

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值