一、如何使用模板匹配助手
1、菜单栏中点击助手---选择打开新的Matching
2、选择对应的模板类型
二、模板匹配助手中每个界面的功能介绍
(一)创建界面
1、模板来源
-
选择是从图像画ROI创建还是读取模板文件
2、模板资源
-
选项有基于图像窗口、文件、采集助手
-
在创建模板的时候绘制ROI区域,对于ROI区域的绘制可以根据ROI监视更改
3、修改模板图像
-
点击使能则可以使用该功能
4、金字塔层数
-
金字塔层级1对应的轮廓和图像
-
金字塔层级3对应的轮廓和图像
-
金字塔层级5对应的轮廓和图像
-
金字塔层级7对应的轮廓和图像
5、标定来源
(二) 参数界面
-
关于角度步长:在0-360°进行搜索模板时模板以设置的角度步长进行一个匹配。步长大,执行次数少,可能存在的就是精度和稳定性差;步长小,执行次数多,这样精度和稳定性比较高,同时会带来的问题就是搜索时间比较久。针对不知道如何设置步长,可设置为'auto'
(三)应用
-
加载测试图像进行检测
(四)检测
-
点击执行后会显示一些和查找相关的信息数据
(五)代码
-
这里就可以插入代码了
*模型初始化的开始
set_system ('border_shape_models', 'false')
*获取模型图片
read_image (Image, 'C:/Users/13601/Desktop/0.BMP')
*从基本区域构建ROI
gen_rectangle2 (ModelRegion, 674.29, 1110.63, rad(-176.76), 557.391, 298.746)
*简化模型模板
reduce_domain (Image, ModelRegion, TemplateImage)
*创建形状模型
create_shape_model (TemplateImage, 8, rad(0), rad(360), rad(0.2265), ['point_reduction_high','no_pregeneration'], 'use_polarity', [32,59,23], 7, ModelID)
*获取模型轮廓,以便稍后将其转换为图像
get_shape_model_contours (ModelContours, ModelID, 1)
*获取参考位置
area_center (ModelRegion, ModelRegionArea, RefRow, RefColumn)
vector_angle_to_rigid (0, 0, 0, RefRow, RefColumn, 0, HomMat2D)
affine_trans_contour_xld (ModelContours, TransContours, HomMat2D)
*显示模型边缘
dev_display (Image)
dev_set_color ('green')
dev_set_draw ('margin')
dev_display (ModelRegion)
dev_display (TransContours)
stop ()
*模型初始化的结束
*模型应用的开始
*遍历所有指定的测试图像
TestImages := ['C:/Users/13601/Desktop/1.BMP','C:/Users/13601/Desktop/2.BMP']
for T := 0 to 1 by 1
*获取测试图像
read_image (Image, TestImages[T])
*在检测图像中寻找模板
find_shape_model (Image, ModelID, rad(0), rad(360), 0.5, 2, 0.75, 'least_squares', [8,3], 0.75, Row, Column, Angle, Score)*将模型轮廓变换为检测到的位置
dev_display (Image)
for I := 0 to |Score| - 1 by 1
hom_mat2d_identity (HomMat2D)
hom_mat2d_rotate (HomMat2D, Angle[I], 0, 0, HomMat2D)
hom_mat2d_translate (HomMat2D, Row[I], Column[I], HomMat2D)
affine_trans_contour_xld (ModelContours, TransContours, HomMat2D)
dev_set_color ('green')
dev_display (TransContours)
stop ()
endfor
endfor