当前位置:网站首页>Halcon知识:盘点一下计量对象【1】
Halcon知识:盘点一下计量对象【1】
2022-06-30 19:48:00 【无水先生】
一、提要
计量对象是解决测量问题的对象,通过该对象的微观测量,经拟合获得精确的亚像素级别的测量。其中包括平行直线的距离、圆的半径、椭圆的长短半径等。
二、模型生成和设定
2.1 模型生成
create_metrology_model
创建测量几何形状所需的数据结构。
- create_metrology_model( : : : MetrologyHandle)
生成一个计量对象,没有设定内容。
通常,对于二维计量,必须提供要测量的对象的位置、方向和几何形状的近似值。在显示对象的图像中,这些近似对象的边界用于定位对象的真实边缘,以适应几何形状的参数,使它们与图像数据最佳匹配。测量的结果是优化的参数。计量模型用于存储所有必要的信息,例如计量对象的位置和几何形状的初始参数、控制测量的参数以及测量结果。可以通过二维计量测量的几何形状包括圆形、椭圆形、矩形和直线。
图像中对象的边缘位于所谓的测量区域内。这些是垂直于近似对象的边界排列的矩形区域,因此它们的中心位于边界上。调整测量区域的尺寸和分布的参数与每个计量对象的近似形状参数一起指定。
应用测量时,使用 RANSAC 算法确定所有测量区域内的边缘位置并将其拟合到几何形状。
(关于 RANSAC 算法的原理在文:机器视觉:ransac算法详解中有详细说明 )
计量模型包含 7 个计量对象,显示为蓝色轮廓。使用位于每个计量对象的测量区域(灰色矩形)内的边缘(青色十字),拟合几何形状(绿色轮廓)并测量其参数。如圆形类型的计量对象所示,可以找到多个计量对象的实例。

首先,使用 create_metrology_model 创建计量模型数据结构,用作一个或多个计量对象的容器。之后,应使用 set_metrology_model_image_size 指定将执行测量的图像的图像大小,以进行有效测量。
2.2 尺寸设定
set_metrology_model_image_size
- set_metrology_model_image_size( : : MetrologyHandle, Width, Height : )
set_metrology_model_image_size 用于设置或更改将执行与计量模型相关的边缘检测的图像的大小(有关 2D 计量的基本原理,请参见 create_metrology_model)。计量模型由句柄 MetrologyHandle 定义。
图像宽度必须由参数 Width 指定。图像高度必须由参数Height 指定。如图,就是用于测量的小矩形的长度、宽度。

2.3 align_metrology_model定义测量的对其角
- align_metrology_model( : : MetrologyHandle, Row, Column, Angle : )
align_metrology_model 相对于原点位于左上角的图像坐标系移动和旋转整个计量模型 MetrologyHandle。对齐确保计量模型的位置和方向适应当前图像中要测量的对象。然后 apply_metrology_model 使用对齐来执行测量。首先计量模型按角度旋转,然后计量模型按行和列平移。对齐的值被下一次调用 align_metrology_model 覆盖。
2.4 apply_metrology_model
- apply_metrology_model(Image : : MetrologyHandle : )
apply_metrology_model 在 Image 内定位计量模型 MetrologyHandle 的计量对象的测量区域内的边缘,并将相应的几何形状拟合到生成的边缘位置(参见 create_metrology_model 了解 2D 计量的基本原理)。测量目标 如下:
1)确定边缘位置
在计量对象的测量区域内,确定边缘的位置。边缘位置是在内部使用算子 measure_pos 或 blur_measure_pos 计算的。如果使用 set_metrology_object_fuzzy_param 为计量对象设置了至少一个模糊函数,则使用后者。
2)将几何形状拟合到边缘位置
计量对象的几何形状被调整以最佳地适应产生的边缘位置。特别是,RANSAC 算法用于选择一组初始边缘位置,这是创建特定几何形状的实例所必需的,例如,为圆形类型的计量对象选择三个边缘位置。然后,确定几何形状的相应实例附近的那些边缘位置,如果合适的边缘位置数量足够(参见 set_metrology_object_param 的通用参数“min_score”),则选择几何形状的最终拟合.如果合适的边缘位置的数量不够,则测试另一组初始边缘位置,直到找到合适的边缘位置选择。在为最终拟合选择的边缘位置中,拟合几何形状并将其参数存储在计量模型中。请注意,如果通用参数“num_instances”设置为大于 1 的值,则为每个计量对象返回多个实例。可以在将计量对象添加到计量模型时设置此参数和其他参数,也可以使用运算符 set_metrology_object_param 单独设置。请注意,对于计量对象的每个实例,使用不同的初始边缘位置,即,第二个实例基于尚未用作初始边缘位置来计算第一个实例的边缘位置。当找到“num_instances”实例时,或者如果合适的初始边缘位置的剩余数量太少而无法进一步拟合几何形状,该算法就会停止。
3)访问结果
可以使用 get_metrology_object_result 从计量模型访问测量结果。请注意,如果返回一个对象的多个实例,则返回实例的顺序是任意的,因此无法衡量拟合的质量。进一步注意,如果使用 set_metrology_model_param 为计量模型设置参数“camera_param”和“plane_pose”,则使用世界坐标进行拟合。否则,使用图像坐标。可以使用 get_metrology_object_result_contour 获得测量对象的 XLD 轮廓。
(后续内容)
add_metrology_object_generic
get_metrology_object_model_contour,
set_metrology_model_param,
add_metrology_object_circle_measure,
add_metrology_object_ellipse_measure,
add_metrology_object_line_measure
边栏推荐
猜你喜欢

今早,投资人开始集体出差

How to pass the PMP Exam quickly?

KubeVela 1.4:让应用交付更安全、上手更简单、过程更透明

Taiwan SSS Xinchuang sss1700 replaces cmedia cm6533 24bit 96KHz USB audio codec chip

【450. 删除二叉搜索树中的节点】

Inventory the six second level capabilities of Huawei cloud gaussdb (for redis)

如何做好测试用例设计

以全栈全功能解决方案,应对多样工具复杂环境DevOps落地难题

QQmlApplicationEngine failed to load component qrc:/main.qml:-1 No such file or directory

小学期,第三场-下午:WEB_sessionlfi
随机推荐
Graduates
屏幕显示技术进化史
QQmlApplicationEngine failed to load component qrc:/main.qml:-1 No such file or directory
Perl转换文件的编码类型
Heartbeat 与DRBD 配置过程
RP prototype resource sharing - shopping app
Why must we move from Devops to bizdevops?
传输层 使用滑动窗口实现流量控制
漏洞扫描工具大全,妈妈再也不用担心我挖不到漏洞了
昔日果汁大王,16个亿卖了
Torchdrug -- drug attribute prediction
[try to hack] windows system account security
【ICCV 2019】特征超分检测:Towards Precise Supervision of Feature Super-Resolution for Small Object Detection
派尔特医疗在港交所招股书二次“失效”,上市计划实质性延迟
项目经理不应该犯的错误
为什么一定要从DevOps走向BizDevOps?
计网 | 【五 传输层、六 应用层】知识点及例题
广州股票开户选择手机办理安全吗?
CADD course learning (1) -- basic knowledge of drug design
discuz 论坛提速之删除data/log下的xxx.php文件