|
类型 |
形状模板匹配 |
|
描述 |
使用多个形状模板,在图像img上进行匹配查找。 |
|
语法 |
ZV_SHAPEFINDS(modelList,param,img,matchs[,numMatchs=0,minDis=0]) 参数: modelList:ZVOBJECT类型,形状模板列表 param:匹配参数矩阵,行数为1或等于mods列表长度,列数为7列依次为:最小分数, 数量, 最小距离, 最低阈值, 精度, 速度, 极性,含义参考单模板匹配。行为1行时则所有模板共用该行的匹配参数,为 n 行时矩阵的行数必须要等于模板列表的长度,表示每行对应一个模板的匹配参数 img:ZVOBJECT类型,待匹配的搜索图像,8U单通道 matchs:ZVOBJECT类型,匹配结果,矩阵类型,输出参数,n行6列矩阵,每行一个匹配结果,每行的数据依次为score、x、y、angle、scale、modelId,其中modelId表示的是模板列表中对应id的模板匹配到的结果 numMatchs:总的最大匹配数量,范围[0,无穷),当numMatchs为0时使用param中的参数,以模板id升序(若id相同则分数降序)输出目标,当numMatchs大于零时以分数降序输出目标,numMatchs与真实目标大小关系参考单模板匹配 min_dist:匹配最小距离,表示两目标之间允许存在的最小距离。当minDist小于或等于0时使用param中的参数,针对模板对应的目标,含义参考单模板匹配,当minDist大于零时,针对所有匹配目标 |
|
适用控制器 |
支持ZV功能或者5系列以上的控制器 |
|
例子 |
ZV_SETSYSINT("ShapeCreateLevel",4)'设置为完全创建模板特征 ZVOBJECT img1,img2,img3,match_img,results,color_img,model1, model2,model3,model_list,param,rigid_mat,model_contlist,dst_contlist ZV_READIMAGE(img1, "1.jpg", 0)'以原图像格式读取图片 ZV_READIMAGE(img2, "2.jpg", 0) ZV_READIMAGE(img3, "3.jpg", 0) ZV_SHAPECREATE(img1,model1,0,360,1,1,50,0,0,0,0) '创建模板 ZV_SHAPECREATE(img2,model2,0,360,1,1,90,0,0,0,0) ZV_SHAPECREATE(img3,model3,0,360,1,1,77,0,0,0,0) ZV_CLEAR(model_list)'清空model_list ZV_LISTINSERT(model1, model_list, -1)'将模板插入模板列表 ZV_LISTINSERT(model2, model_list, -1) ZV_LISTINSERT(model3, model_list, -1) ZV_MATGENCONST(param,3,7,0)'构造3行7列的矩阵,并设置匹配参数 TABLE(0,90,1,0,-1,3,9,0) ZV_MATSETROW(param,0,7,0) TABLE(0,90,1,0,-1,3,9,0) ZV_MATSETROW(param,1,7,0) TABLE(0,90,1,0,-1,3,9,0) ZV_MATSETROW(param,2,7,0) ZV_READIMAGE(match_img, "test.png", 0)'以原图像格式读取图片 ZV_SHAPEFINDS(model_list,param,match_img,results,0,0)'多目标匹配 ZV_LISTGET(model_list,model,TABLE(5)) ZV_SHAPECONTOURS(model, model_contlist, 0)'获取模板轮廓 ZV_GETRIGIDVECTOR(rigid_mat,0,0,0,TABLE(1),TABLE(2),TABLE(3))'计算刚性变换矩阵 ZV_CONTAFFINE(model_contlist, rigid_mat,dst_contlist)'轮廓仿射变换 ZV_GRAYTORGB(match_img,color_img)'灰度图转化为RGB图像 ZV_CONTLIST(color_img,dst_contlist,ZV_COLOR(0,255,0),0)'绘制轮廓 |
|
相关指令 |