Halcon之基于互相关模板匹配

it2025-02-05  10

相关性原理:首先创建一个模板,把模板里每一个像素当成一个特征,所有像素按列组成一个行向量a,即模板的特征向量。在图像中寻找与模板最匹配的区域b,通过cos\theta=\vec{a}.\vec{b}/|\vec{a}||\vec{b}|,即两个向量之间的夹角来衡量匹配的好坏。说白了,基于互相关其实是一个概率的计算,即通过公式计算roi区域(模板)与待测图之间的相似度。越接近1,两块区域相似度越高。否则,相似度越低。 应用场合:适用于光照不均匀,明暗变化大且背景不能太复杂的场合。适用于光照不均匀,明暗变化大且背景不能太复杂的场合。搜索对象有轻微的变形,大量的纹理,图像模糊等场合,速度快,精度低。 重要函数一: 创建模板:create_ncc_model( Template : : NumLevels, AngleStart, AngleExtent, AngleStep, Metric : ModelID) 参数列表: Template(in):单通道灰度图像(68),它的区域可被创建为模板 NumLevels(in):金字塔的最大层级,层数越多,搜索的越快。 AngleStart(in):模板的最小旋转 AngleExtent(in):旋转角度范围 AngleStep(in):角度步长 Metric(in):匹配标准默认 ‘use_polarity’ 使用全局,如果图像对比度不好,可用忽略全局’ignore_global_polarity’ ModelID(out):模板句柄,就和自己家的门牌号一样,通过句柄来找到模板图像。

寻找模板:find_ncc_model(Image : : ModelID, AngleStart, AngleExtent, MinScore, NumMatches, MaxOverlap, SubPixel, NumLevels : Row, Column, Angle, Score) 参数列表: Image(in):单通道图像,它的区域可被创建为模板 ModelID(in):模板句柄 AngleStart(in):模板的最小旋转 AngleExtent(in):旋转角度范围 MinScore(in):被找到的模板最小分数,该值越大,算法速度越快,但是也越不容易找到目标(比如高考分数线越高,考上的就越少,统计考上的人数也就越快) NumMatches(in):被找到的模板个数,限制找到的模板个数,默认为零 MaxOverlap(in):被找到的模板实例最大重叠部分,越接近于1时,图像有一些遮挡也可以找到。越接近于0时,图像有一些遮挡会找不到 SubPixel(in):亚像素级别标志,true,false NumLevels(in):金字塔层级数,级数越多,搜索速度越快,但准确度会下降。 Row(out):被找到的模板实例行坐标 Column(out):被找到的模板实例列坐标 Angle(out):被找到的模板实例的旋转角度 Score(out):被找到的模板实例的分数,分数越高,找到的图像与模板越接近。

最新回复(0)