ZV_SHAPEFINDST -- 匹配

类型

形状模板匹配

描述

使用单形状模板,在图像img上进行匹配查找,并输出模板轮廓点的匹配状态

语法

ZV_SHAPEFINDST(model,img,matchs,stats,min_score[,nums=0,min_dist=0,min_thresh=-1,accuracy=3,speed=9,polar=0])

参数:

modelZVOBJECT类型,形状模板

imgZVOBJECT类型,待匹配的搜索图像,不能和模板图片1:1等比大小,8U单通道

matchsZVOBJECT类型,匹配结果,矩阵类型,n5列,每行一个匹配目标,列依次为匹配分数scorex坐标、y坐标、旋转角度angle、缩放比例scale

statsZVOBJECT类型,模板轮廓点每个点的匹配状态,n x m矩阵int型数据类型,每行一个模板轮廓,行上依次存储每个轮廓点的匹配状态 ,即对于某个轮廓点来说,匹配分数大于等于设置分数时为1(匹配成功),小于匹配分数时为0(匹配失败,为空时则不输出轮廓点匹配状态,不为空时则输出轮廓点匹配状态,此输出参数结合绘制模板指令zv_dra_shapeMatch可将匹配成功点和失败点绘制不同的颜色

min_score:最小匹配分值,(0,100],分值越高匹配的目标越准确,越低容易将非目标当成目标

nums:最大匹配数量,[0, 无穷),当num大于真实目标时,以目标分数从高到低输出所有目标;当num小于真实目标时,以目标分数从高到低输出num个目标;当num0时,以目标分数从高到低输出所有目标

min_dist:最小距离,为0时自动选择距离,表示匹配结果允许的相隔距离,当匹配结果距离小于最小距离时将只保留最好的结果,主要用于去除重叠的目标对象,匹配不重叠的目标时建议值使用0,当搜索图中只有一个目标时也可将最小距离设置大一些,会加快匹配速度但不明显

min_thresh:目标轮廓的最低边缘阈值,minThresh小于零时将使用创建模板时的阈值

accuracy:匹配精度,0-像素精度,1-插值精度,2-最小二乘拟合精度,3-多次迭代的最小二乘拟合精度

speed:匹配速度0-10,越大速度越快,但可能丢失目标,大于10时取10

polar:匹配极性

polar

极性

解释

0

正极性

匹配目标所有轮廓点的明暗变化与模板所有轮廓点的明暗变化一致

1

正负极性

即正极性和负极性均可, 匹配目标所有轮廓点的明暗变化与模板所有轮廓点 的明暗变化一致或者相反

2

任意极性

匹配目标部分轮廓点的明暗变化与部分模板轮廓点的明暗变化一致或者相反

适用控制器

支持ZV功能或者5系列以上的控制器

例子

22

ZV_SETSYSINT("ShapeCreateLevel",4)'设置为完全创建模板特征

ZVOBJECT img, model, match_img, results, stats, color_img

ZV_READIMAGE(img, "model.jpg", 0)'以原图像格式读取图片

ZV_SHAPECREATE(img,model,0,360,1,1,50,0,0,0,0) '创建模板

ZV_READIMAGE(match_img, "1.png", 0)'以原图像格式读取图片

ZV_SHAPEFINDST(model,match_img,results,stats,90,1,0,-1,3,9,0)'模板匹配

ZV_GRAYTORGB(match_img,color_img)'灰度图转化为RGB图像

ZV_DRASHAPEMATCH(color_img,model,results,stats,ZV_COLOR(0,255,0),ZV_COLOR(255,0,0))'在彩色图像上绘制模板,并且匹配成功的轮廓点绘制绿色,匹配失败的轮廓点绘制红色

相关指令

ZV_SHAPECREATEZV_SHAPECREATEREZV_DRASHAPEMATCH