【Halcon二维测量】——2D计量模型
2D计量
2D 计量的概念
通过二维计量,可以测量用特定几何体表示的物体的尺寸。可以测量的几何形状包括圆圈、椭圆、矩形和线条。我们需要测量对象的位置、方向和尺寸的近似值。然后,图像中对象的实际边缘位置位于近似对象的边界附近。通过这些边缘位置,对几何形状的参数进行优化,以更好地适应图像数据,并作为测量结果返回。
对象形状参数的近似值以及控制测量的某些参数存储在称为计量对象的数据结构中。图像中对象的边缘位于所谓的测量区域内。这些是垂直于计量对象边界排列的矩形区域。调整测量区域的尺寸和分布的参数与每个计量对象的近似形状参数一起指定。应用测量时,使用 RANSAC 算法确定所有测量区域内的边缘位置并拟合成几何形状。所有计量对象、测量所需的所有进一步信息以及测量结果都存储在称为计量模型的数据结构中。
![](/assets/blank.gif)
2D计量简述步骤,如下所示:
创建计量模型并指定图像大小:
首先,必须使用create_metrology_model.创建计量模型。
计量模型用作一个或多个计量对象的容器。为了进行有效的测量,在创建计量模型后, 应使用set_metrology_model_image_size指定执行测量的图像大小。
提供近似值:
然后,计量对象被添加到计量模型中。每个计量对象包括图像中相应对象的大致形状参数和控制测量的参数。控制测量的参数包括指定测量区域尺寸和分布的参数。此外,还可以针对每个计量对象调整几个通用参数。计量对象用下列算子指定:
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进行修改。
匹配计量模型:
要在进行下一次测量之前平移和旋转计量模型,可以使用算子align_metrology_model。校准是暂时的,会被下一个校准取代。计量模型本身没有改变。请注意,校准参数通常是使用基于形状的匹配获得的。
应用测量:
使用apply_metrology_model对图像进行实际测量
该算子在测量区域内定位边缘,并使用 RANSAC 算法将指定的几何形状与边缘位置进行配合。使用measure_pos或fuzzy_measure_pos(另见第1章测量)来定位这些边缘。后者使用模糊方法,在应用测量之前通过set_metrology_object_fuzzy_param设置至少一个模糊函数来使用。如果需要返回对象形状的多个实例(上图比较),则通用参数"num_instances"必须设置为应返回的实例数。可以在添加单个计量对象或之后与使用算子set_metrology_object_param 设置该参数
访问结果:
测量后,可以访问结果。可以使用算子get_metrology_object_result 获取匹配到的计量模型的测量结果,如几何图形参数等。
使用get_metrology_object_result 获取返回结果中的边缘及它们的振幅。
使用get_metrology_object_measures可以获取所有定位边的行列坐标 。
想要显现匹配到的几何图形,可以使用get_metrology_object_result_contour来获取它们的XLD轮廓。
销毁计量对象句柄:
当不需要使用计量模型时,可以使用clear_metrology_model来释放该计量模型的句柄。
其他算子:
除了上述算子,还可以复制计量句柄(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只重置计量模型的所有模糊参数和模糊函数。
Glossary:术语表
下述是在 2D 计量中使用的最重要的术语。
metrology model:计量模型
包含所有计量对象、测量所需的所有信息以及测量结果的数据结构。
metrology object:计量对象
用2D计量测量对象的数据结构。计量对象由特定的几何形状表示,形状参数大致为已知。此外,它包含控制测量的参数,例如指定测量区域的尺寸和分布的参数。
measure regions:测量区域
排列垂直于近似对象边界的矩形区域。在这些区域中,提取用于获取计量对象精确形状参数的边缘。
returned instance of a metrology object:返回的计量对象实例
对于每个计量对象,可以通过测量返回对象的不同实例,例如,如果在近似几何形状的边界附近存在相同形状的平行结构(见上图)。返回实例的顺序是任意的,即,它不能衡量配件的质量。
算子列表
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——将计量模型写到文件中。
【Halcon二维测量】——2D计量模型相关推荐
- 【Halcon二维测量】——使用计量模型以亚像素精度测量圆和矩形
算法大致思路如下: 1.创建计量模型模板并设置计量对象图像大小 2.根据先验知识生成相关图形形状,如矩形,圆,并将其加入到创建的模板中 3.设置模板的相关参数,包括 ...
- halcon二维码识别简单案例
目录 二维码种类 编辑 halcon 二维码识别调用算子步骤 1.创建模型--create_data_code_2d_model( SymbolType, GenParamName, GenPara ...
- Halcon二维码扫描算法总结
近期要往一个大型软件里面增加一个扫码工具,想到基于halcon算子进行开发,记录一下开发过程中的采坑和要点. 刚开始拿到现场的二维码数据集,基于halcon进行测试,发现 ...
- 【ABviewer从零开始教学查看器篇⑥】二维测量和三维测量
ABViewer是一款高质量.高效率.低成本的多功能设计及工程文档管理工具,能为您提供全面的专业的浏览及编辑功能,同时支持30多种光栅和矢量图形格式. 在小编看来,ABViewer是一款非常简单且实用 ...
- Python编程基础:第十五节 二维列表2D Lists
第十五节 二维列表2D Lists 前言 实践 前言 列表中的元素可以是任何形式,整型.浮点型.字符串型,甚至是一个列表.当列表的元素也是列表时,我们将其称为二维列表. 实践 我们先来创建多个一维列表 ...
- Python+OpenCV:二维直方图(2D Histograms)
Python+OpenCV:二维直方图(2D Histograms) ################################################################# ...
- halcon二维码识别(完整板)
*计数器 _index:=0 *读码超时时间 _timeOut:=1000 *读码类型 _codeType:=[] *读码数据 _codeData:=[] *已解码的区域 gen_empty_obj ...
- 卷积算子的矩阵向量乘积表示二维离散降质模型
@图像处理入门学习知识(一) 卷积算子的矩阵向量乘积表示&二维离散降质模型 在图像处理过程中,有时候我们需要将卷积运算转化为矩阵乘积运算,这也是离散降质模型构成的基础,那么怎么将卷积乘法转化为 ...
- Halcon 二维码
目录 1. 二维码 1.1 定义 1.2 结构 1.3 原理 2. Halcon识别二维码基本流程 3. 难读取的二维码(码制不能错) 3.1 点状二维码 3.2 有噪声的二维码 3.3 投影变换(透 ...
最新文章
- lombok 下的@Builder注解用法
- 三周第五次课) 4.5/4.6 磁盘格式化 4.7/4.8 磁盘挂载 4.9 手动增加swap空间
- 用commons-fileupload-1.2 实现文件上传
- BOM(Browser Object Model)
- 天凉了,大家多穿衣服
- iOS开发技巧,细节(二)
- php7 关联nginx,nginx+php7配合开发
- 带你详细了解机器视觉竞赛—ILSVRC竞赛
- psql sql语法
- 完工后的决算书范本_工程决算书范本
- php函数strrchr、substr、is_dir、unlink
- 极客大学架构师训练营 微服务架构 领域驱动设计DDD 中台架构、组件设计原则 第十次作业
- python共有前缀_Python 匹配多个字符前缀
- Photoshop图片变纯黑白无灰度
- 操作系统饥饿现象_操作系统
- android:layout_weight权重与warp_content配合使用
- 【物联网毕设基础】单片机:RS485 通信与 Modbus 协议
- 《计算机网络实验教程》——验证性实验
- 【使用python和flask建个人博客】给个人博客增加了清单分类及计时功能,可以很方便的做时间记录,目标是为了能够跟柳比歇夫学习
- chrome源代码目录结构简介(版本4.1.249.1059)
热门文章
- python怎么退出help_python中help函数的退出方法
- geohash算法的实现及可视化(以广州为例)
- QTreeView制作漂亮的树控件列表
- 我的世界1.6.2最新服务器,我的世界1.6.2服务器地址大全 我的世界1.6.2服务器ip大全...
- 我的世界在线服务器地址,私の世界_我的世界1.7.10服务器地址大全 我的世界1.7.10服务器ip大全_游戏堡...
- 【Android 踩过的坑】4.java.io.IOException: Cannot run program “/system/xbin/su“: error=2, No such file...
- 小程序 ios14系统(ios最新的版本) 访问接口失败,无返回体(其他版本正常)
- 使用Oh my posh美化Windows终端(一)
- python中base64编码
- Scanner(基本)