HDevelop常用工具之模板匹配


在工业应用中,定位是大多数应用场景必不可少的环节。通过定位,我们可以对设备作业位置或区域进行调整,

如打标、切割、机械手引导等应用。除此之外,我们还可以对被测物进行定位,根据定位数据缩小检测区域以

达到提高检测速度和降低误检的目的。我们一般采用模板匹配的方式对被测物进行定位。HALCON为我们提供

了基于形状、基于互相关、基于描述符以及可变形的模板匹配。


在之前的推送中,大恒图像为您详细讲解了Blob和OCR工具,今天,大恒图像就以基于形状的模板匹配为例,

为大家介绍如何通过HDevelop插件实现二维图像的匹配定位。


基于形状的模板匹配

在开始之前先让我们了解一下什么是基于形状的模板匹配。形状是事物或物质的一种存在或表现形式,

如长方形、正方形等。在图像中,形状是一种对边缘或区域的描述方式。HALCON基于形状的匹配是一种

通过图像边缘进行被测物识别和定位的模式识别算法。该算法对光照的变化有很好的鲁棒性且处理速度快,

是工业视觉解决方案中常用的定位手段。

本次使用的图像位于“%HALCONIMAGES%\board”

▎创建模板
打开模板匹配插件→加载图像→选择模板区域
▎调整模板常数

// 标准模板参数

ROI选择完毕,点击“参数”选项卡,此时插件已经为我们自动配置了匹配参数。

图像窗口中红色部分为用于匹配的模板边缘。

HALCON采用滞后阈值算法进行边缘的提取,我们可以通过修改“对比度(低)”和“对比度(高)”调整边缘的完整性。

在边缘的提取过程中对比度超过“对比度(高)”像素会被算法选为边缘点,对比度低于“对比度(低)”的像素将被算法

视为背景,而在这两者之间的点将作为候选点,如果这些点与已选边缘点相连则他们也会被选出。

一般我们会先调整“对比度(高)”使得大部分边缘可见,再调整“对比度(低)”去除对比度较低噪声。

最后调整“最小组件尺寸”去除较小的噪声边缘。

金字塔是图像处理提速的重要手段,HALCON的模板匹配算法也采用了这种方式,在参数中我们可以手动设置

或使用插件进行自动配置,对于对实时性要求较高的应用场景,建议大家把金子塔级别调整到3或更高。设置好参数后,

请大家到“创建”选项卡中,通过拖拽该选项卡下的金子塔级别滑块,查看各级金字塔图像中的边缘检测情况。

一般我们认为,在整个模板区域内,边缘像素点达到二十个上才为有效模板边缘。

我需要根据被测物可能出现的角度变化来设置“起始角度”和“角度范围”。它们会影响模板创建时间、模板数据结构

尺寸以及匹配时间。“角度范围”越小,创建模板和模板匹配时间越短。

缩放参数用于指定匹配过程中模板的缩放范围。设置该参数后,在匹配过程中,模板会先根据缩放范围和步长在行列

方向进行缩放,而后再进行模板位置和角度的匹配计算。该参数默认为1,即不进行任何缩放变换。


// 高级模板参数
角度步长:

插件会根据模板数据自动计算,步长越大处理速度越快,但匹配所获得的角度数据精度越低。

此参数一般选择大于等自动配置的值。

缩放步长:

插件会根据模板数据自动计算,步长越大处理速度越快,匹配所获得的缩放系数精度越低。

此参数一般选择大于等自动配置的值。

度  量:
指定模板边缘极性和与匹配对象边缘极性(像素灰度从暗到亮或从亮到暗)的关系。
1.use_polarity
1.(根据边缘极性进行匹配)  
2.ignore_global_polarity
2.(忽略全局边缘极性变化)
3.ignore_local_polarity
3.(忽略局部边缘极性变化)
▎测试

点击应用选项卡中的“加载…”按钮,并选择测试图像,点击“检测所有”按钮,图像窗口中绿色边缘为搜索到的模板。
▎生成代码

在“代码生成”选项卡下,点击“插入代码”按钮,即可将我们刚才的设置生成HDevelop脚本并插入到代码窗口中。
默认生成代码分为两个部分
// 创建模板
// 模板匹配
希望今天的推送能为广大算法工作者们减轻一些代码方面的工作量,提高工作效率。感谢大家对大恒图像的关注与支持。

此文章为“大恒图像”原创文章,转载请注明出处。



本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864