基于模板匹配(灰度)
目前HALCON的应用很少有基于灰度的模板匹配,因为这种模板匹配方法误杀率高、容易受光照条件影响、精度差,所以更新到现在HALCON对于灰度的模板匹配算子也仅剩下create_shape_model,其他的灰度算子在18版本以后已经不推荐使用。
create_shape_model // 创建模板
算子原型:
create_shape_model(Template : : NumLevels, AngleStart, AngleExtent, AngleStep, Optimization, Metric, Contrast, MinContrast : ModelID)
默认算子:
create_shape_model (ImageReduced, ‘auto’, -0.39, 0.79, ‘auto’, ‘auto’, ‘use_polarity’, ‘auto’, ‘auto’, ModelID)
Template //reduce_domain后的模板图像
NumLevels //金字塔的层数,可设为“auto”或0—10的整数
AngleStart //模板旋转的起始角度
AngleExtent //模板旋转角度范围, >=0
AngleStep //旋转角度的步长, >=0 and <=pi/16
Optimization //设置模板优化和模板创建方法
Metric //匹配方法设置
Contrast //设置对比度
MinContrast //设置最小对比度
ModelID //输出模板句柄
find_shape_model // 查找
算子原型:
find_shape_model(Image : : ModelID, AngleStart, AngleExtent, MinScore, NumMatches, MaxOverlap, SubPixel, NumLevels, Greediness : Row, Column, Angle, Score)
默认算子:
find_shape_model (Image, ModelID, -0.39, 0.79, 0.5, 1, 0.5, ‘least_squares’, 0, 0.9, Row, Column, Angle, Score)
ModelID, //模板句柄
AngleStart, // 搜索时的起始角度
AngleExtent, //搜索时的角度范围,必须与创建模板时的有交集
MinScore, //最小匹配值,输出的匹配的得分Score 大于该值
NumMatches, //定义要输出的匹配的最大个数
MaxOverlap, //当找到的目标存在重叠时,且重叠大于该值时选择一个好的输出
SubPixel, //计算精度的设置,五种模式,多选2,3
NumLevels, //搜索时金字塔的层数
Greediness : //贪婪度,搜索启发式,一般都设为0.9,越高速度快,容易出现找不到的情况
Row, Column, Angle, Score) //输出匹配位置的行和