转自 : http://blog.csdn.net/hust1900/article/details/8843270
halcon有三种模板匹配方法:即Component-Based、Gray-Value-Based、Shaped_based,分别是基于组件(或成分、元素)的匹配,基于灰度值的匹配和基于形状的匹配,此外还有变形匹配和三维模型匹配也是分属于前面的大类
本文只对形状匹配做简要说明和补充:
Shape_Based匹配方法:
上图介绍的是形状匹配做法的一般流程及模板制作的两种方法。
先要补充点知识:形状匹配常见的有四种情况 一般形状匹配模板shape_model、线性变形匹配模板planar_deformable_model、局部可变形模板local_deformable_model、和比例缩放模板Scale_model
第一种是不支持投影变形的模板匹配,但是速度是最高的,第二种和第四种是支持投影变形的匹配,第三种则是支持局部变形的匹配。
一般形状匹配模板是最常用的,模板的形状和大小一经制作完毕便不再改变,在查找模板的过程中,只会改变模板的方向和位置等来匹配目标图像中的图像。这个方法查找速度很快,但是当目标图像中与模板对应的图像存在比例放大缩小或是投影变形如倾斜等,均会影响查找结果。涉及到的算子通常为create_shape_model 和find_shape_model
线性变形匹配模板planar_deformable_model是指模板在行列方向上可以进行适当的缩放。行列方向上可以分别独立的进行一个适当的缩放变形来匹配。主要参数有行列方向查找缩放比例、图像金字塔、行列方向匹配分数(指可接受的匹配分数,大于这个值就接受,小于它就舍弃)、设置超找的角度、已经超找结果后得到的位置和匹配分数
线性变形匹配又分为两种:带标定的可变形模板匹配和不带标定的可变形模板匹配。涉及到的算子有:
不带标定的模板:创建和查找模板算子create_planar_uncalib_deformable_model和find_planar_uncalib_deformable_model
带标定模板的匹配:先读入摄像机内参和外参 read_cam_par 和read_pose 创建和查找模板算子 create_planar_calib_deformable_model和find_planar_calib_deformable_model
局部变形模板 是指在一张图上查找模板的时候,可以改变模板的尺寸,来查找图像上具有局部变形的模板。例如包装纸袋上图案查找。参数和线性变形额差不多
算子如下:create_local_deformable_model和find_local_deformable_model
比例缩放末班匹配 是介于一般形状匹配和线性变形匹配之间的一种方法。它可以匹配放大或是缩小的模板,但是仅限于模板大小的缩放,即行列缩放因子一样。这也是它和线性缩放最大的不同。
涉及到的算子如下:create_scale_shape_model和find_scale_shape_model