基于形状的模板匹配

 

在开始之前先让我们了解一下什么是基于形状的模板匹配。形状是事物或物质的一种存在或表现形式,如长方形、正方形等。在图像中,形状是一种对边缘或区域的描述方式。HALCON基于形状的匹配是一种通过图像边缘进行被测物识别和定位的模式识别算法。该算法对光照的变化有很好的鲁棒性且处理速度快,是工业视觉解决方案中常用的定位手段。

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

 

▎创建模板

打开模板匹配插件→加载图像→选择模板区域

轻松学轻松学HALCON丨HDevelop常用工具之模板匹配

▎调整模板常数

 

// 标准模板参数

ROI选择完毕,点击“参数”选项卡,此时插件已经为我们自动配置了匹配参数。图像窗口中红色部分为用于匹配的模板边缘。

轻松学轻松学HALCON丨HDevelop常用工具之模板匹配

HALCON采用滞后阈值算法进行边缘的提取,我们可以通过修改“对比度(低)”和“对比度(高)”调整边缘的完整性。在边缘的提取过程中对比度超过“对比度(高)”像素会被算法选为边缘点,对比度低于“对比度(低)”的像素将被算法视为背景,而在这两者之间的点将作为候选点,如果这些点与已选边缘点相连则他们也会被选出。一般我们会先调整“对比度(高)”使得大部分边缘可见,再调整“对比度(低)”去除对比度较低噪声。最后调整“最小组件尺寸”去除较小的噪声边缘。

轻松学轻松学HALCON丨HDevelop常用工具之模板匹配

金字塔是图像处理提速的重要手段,HALCON的模板匹配算法也采用了这种方式,在参数中我们可以手动设置或使用插件进行自动配置,对于对实时性要求较高的应用场景,建议大家把金子塔级别调整到3或更高。设置好参数后,请大家到“创建”选项卡中,通过拖拽该选项卡下的金子塔级别滑块,查看各级金字塔图像中的边缘检测情况。一般我们认为,在整个模板区域内,边缘像素点达到二十个上才为有效模板边缘。

轻松学轻松学HALCON丨HDevelop常用工具之模板匹配

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

缩放参数用于指定匹配过程中模板的缩放范围。设置该参数后,在匹配过程中,模板会先根据缩放范围和步长在行列方向进行缩放,而后再进行模板位置和角度的匹配计算。该参数默认为1,即不进行任何缩放变换。

 

// 高级模板参数

轻松学轻松学HALCON丨HDevelop常用工具之模板匹配

角度步长:

插件会根据模板数据自动计算,步长越大处理速度越快,但匹配所获得的角度数据精度越低。此参数一般选择大于等自动配置的值。

缩放步长:

插件会根据模板数据自动计算,步长越大处理速度越快,匹配所获得的缩放系数精度越低。此参数一般选择大于等自动配置的值。

度  量:

指定模板边缘极性和与匹配对象边缘极性(像素灰度从暗到亮或从亮到暗)的关系。

1.use_polarity

1.(根据边缘极性进行匹配)  

2.ignore_global_polarity

2.(忽略全局边缘极性变化)

3.ignore_local_polarity

3.(忽略局部边缘极性变化)

轻松学轻松学HALCON丨HDevelop常用工具之模板匹配

▎测试

 

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

轻松学轻松学HALCON丨HDevelop常用工具之模板匹配

▎生成代码

 

在“代码生成”选项卡下,点击“插入代码”按钮,即可将我们刚才的设置生成HDevelop脚本并插入到代码窗口中。

轻松学轻松学HALCON丨HDevelop常用工具之模板匹配

默认生成代码分为两个部分

// 创建模板

轻松学轻松学HALCON丨HDevelop常用工具之模板匹配

// 模板匹配

轻松学轻松学HALCON丨HDevelop常用工具之模板匹配

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐