边缘匹配,通过计算与模板的轮廓相似度在图像中寻找目标。
通过鼠标操作 ROI 选定模板,进入【高级参数】设置匹配角度范围,最小相似度分数,并可修改模板。
通过图像方法主处理下拉框选择 边缘匹配
【鼠标操作】通过鼠标改变 ROI 的大小,并拖放至适当的位置作为学习的模板。
【方法学习】保存该方法及模板
点击高级参数进行高阶调整
【个数】希望寻找的目标数量
【分数】目标与模板间的相似度分数
【比例容差】目标与模板间的大小比例变化
【角度基准】目标在图像中的旋转角度
【角度容差】在<角度基准>基础上的寻找角度范围
【匹配位置】分数最大,最左边的,最右边的,最上边的,最下边的
当图像中存在多个目标时,可选择返回其中符合位置的一个。
【模板类型】Consistent edge、Thin Structure
Consistent edge:是默认的选项,表示边缘特征为连续的曲线。大部分情况下使用该参数即可。
Thin Structure:针对特征边缘比较靠近而容易被认为是同一边缘曲线的情况,比如两条靠得很近的平行直线。
【模板修改】弹出模板修改框对模板进行修改
【最小特征点数】模板边缘的最小特征点数目,表示在金字塔顶层模板保留的边缘点数。
该数值越大,能提高在顶层初步匹配的准确性。
【最大特征点数】模板边缘的最大特征点数目,默认为 1024
算法将根据设定的特征点数目,均匀提取模板边缘上的特征点。
例如模板边缘点数目为 2000 点,算法将均匀提取 1024 点特征;
若模板边缘点数目为 700 点,那么算法将提取全部 700 点特征。
对于边缘模糊的图像,提高特征点数有利于提高匹配准确度。
说明:
【角度基准】与【角度容差】的关系举例,假如角度基准设置成 0 度,角度容差设置成 5 度,即算法将在
[-5 +5]度的范围内
模板修改
如模板存在干扰的边缘特征点,可通过鼠标操作进行模板修改。
如下图,算法在提取边缘特征点时,将不再考虑被涂的红色区域。
函数取值
执行 SY_IP_ImgProc()进行处理后,返回 ImgProcResult 结构体。其中 X、Y 为目标的坐标,
MatchScore 为匹配分数,MatchAngle 为目标的角度,MatchScale 为目标的缩放比例。
另外,针对匹配多目标的应用,在高级参数设置寻找目标个数后。通过执行 SY_IP_Match_MultiPos()
可实现多目标结果返回。
其中可通过访问列表取得多目标结果:
|
list
|
MatchPosList;
|
|
list::iterator
|
pMPList;
|
其中 MatchPos 结构体如下:
typedef struct MatchPos
{
float x;
float y;
float score;
float angle;
} MatchPos;