Halcon中的测量工具(找边找圆等)——Metrology系列

Halcon中的测量工具(找边找圆等)——Metrology系列
1. Halcon中的工具助手
对于使用Halcon的小伙伴们来说,在菜单栏上的“助手”一栏中可以找到一些可以快捷使用的工具。


以18.11版本为例,助手工具栏里有五种工具,分别是:

Image Acquisition :图片获取工具,包括基于Halcon的图像采集接口等;
Calibration:标定工具,用于对图像进行标定;
Matching: 匹配工具,包括形状及灰度匹配等;
Measure: 卡尺工具,注意这里只包括卡尺工具;
OCR:字符识别工具。
对于Measure工具,小白给出的翻译是“卡尺工具”。但是按照英文原意,应该叫“测量工具”。

这里是Halcon的设计上一个非常让小白想不通的地方。因为助手这里的所谓“测量工具”,其实只包含了卡尺这一种功能——即只能查找边缘,或者查找边缘对。所谓的“测量”无非就是测量边缘对之间的距离。
而通常意义上,基于边缘卡尺工具之上的一些找边、找圆等常用的测量工具,却并未包含在这个Measure工具之中。

2. Metrology工具系列
在Halcon中,真正的“测量工具”,却是来自一系列名称中带有“Metrology”的算子。下面以表格的形式给出:

序号    算子名称    算子作用    备注
1    create_metrology_model    创建一个几何测量句柄    
2    add_metrology_object_circle_measure    添加一个找圆工具    
3    add_metrology_object_ellipse_measure    添加一个找椭圆工具    
4    add_metrology_object_generic    添加一个测量工具    可以添加找圆、找边、找椭圆、找矩形等多种工具
5    add_metrology_object_line_measure    添加一个找边工具    
6    add_metrology_object_rectangle2_measure    添加一个找矩形工具    
7    get_metrology_model_param    获取对整个测量模型有效的参数    
8    get_metrology_object_indices    获取一个测量模型中测量对象的索引序号    
9    get_metrology_object_measures    获取一个测量模型中的测量区域以及得到的边缘位置    
10    get_metrology_object_model_contour    在图像坐标中查询计量对象的模型轮廓    
11    get_metrology_object_num_instances    获取测量模型的测量对象的实例数量    
12    get_metrology_object_param    获取测量模型的一个或多个参数    
13    get_metrology_object_result    获取测量模型的测量结果    
14    get_metrology_object_result_contour    获取测量对象的结果轮廓    
15    apply_metrology_model    测量和拟合测量模型的所有测量对象的几何形状    顾名思义就是执行测量
16    align_metrology_model    将测量工具与平移旋转绑定    通常与模版匹配联合使用
17    clear_metrology_object    删除测量对象并释放分配的内存    
18    clear_metrology_model    删除测量模型并释放分配的内存    
19    clear_all_metrology_models    此运算符不可操作。它具有以下功能:删除所有测量模型并释放分配的内存    即将从Halcon中删除,不建议使用
20    get_metrology_object_fuzzy_param    获取测量模型中的模糊参数    
21    copy_metrology_model    复制测量模型    
22    copy_metrology_object    复制测量对象    
23    set_metrology_model_image_size    设置测量对象的图像大小    
24    set_metrology_model_param    设置对整个测量模型有效的参数    
25    set_metrology_object_fuzzy_param    为测量模型设置模糊参数或模糊函数    
26    set_metrology_object_param    为测量模型的测量对象设置参数    
27    reset_metrology_object_fuzzy_param    重置测量模型的所有模糊参数和模糊函数    
28    reset_metrology_object_param    重置测量模型的所有参数    
29    transform_metrology_object    转换测量模型的测量对象,例如用于绑定    
30    read_metrology_model    从文件中读取测量模型    
31    write_metrology_model    将测量模型写入到文件中    
32    serialize_metrology_model    将测量模型序列化    
33    deserialize_metrology_model    将测量模型反序列化    
总体来说,Halcon的测量工具类,包含有找边、找圆、找椭圆、找矩形四种功能,另外还可以通过模糊函数的定义实现模糊测量。

下面我们来看看Metrology工具的一些实例。

3. Metrology工具实例
3.1 实例1 找边工具
以下实例在一张虚拟工件图上添加一个找直线卡尺组工具(cyan色表示),并找到该工件的上边缘(red色表示)。从这张图我们也能初步得出一个结论:测量工具都是基于卡尺(边缘检测)工具开发的,通常的做法是在卡尺工具找到边缘点的基础上进行拟合。

* 清空屏幕,显式控制图像显示
dev_close_window ()
dev_update_off ()
read_image (Image, '形状模板图.png')
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
dev_display (Image)

* 创建测量模型
create_metrology_model (MetrologyHandle)
Row1 := 113.427
Column1 := 152.106
Row2 := 111.438
Column2 := 336.028

* 添加找直线工具,给定参数,显示过程卡尺的轮廓
add_metrology_object_line_measure (MetrologyHandle, Row1, Column1, Row2, Column2, 20, 5, 1, 30, [], [], Index)
get_metrology_object_model_contour (Contour, MetrologyHandle, 0, 1.5)
get_metrology_object_measures (Contours, MetrologyHandle, 'all', 'all', Row, Column)
dev_set_color('cyan')
dev_display (Contour)
dev_display (Contours)

* 执行找直线并显示结果
apply_metrology_model (Image, MetrologyHandle)
get_metrology_object_result (MetrologyHandle, 0, 'all', 'result_type', 'all_param', Parameter)
get_metrology_object_result_contour (Contour1, MetrologyHandle, 0, 'all', 1.5)
dev_set_line_width (3)
dev_set_color ('red')
dev_

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值