相关性原理:首先创建一个模板,把模板里每一个像素当成一个特征,所有像素按列组成一个行向量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):被找到的模板实例的分数,分数越高,找到的图像与模板越接近。

更多推荐

Halcon之基于互相关模板匹配