是什么是模板匹配?
模板就是一副已知的小图像,而模板匹配就是在一副大图像中搜寻目标,已知该图中有要找的目标,且该目标同模板有相同的尺寸、方向和图像元素,通过一定的算法可以在图中找到目标,确定其坐标位置
模板匹配的参数介绍:
1. 图像金字塔:Numberlever
2. 起始角度:AngleStart
3. 角度范围:AngleExtern
4. 角度步长:AngleStep
5. 优化算法:Optimization
6. 极性:Metric
7. 对比度:Contrast
8. 最小对比度:MinContrast
9. 缩放比:scale(find_scale_shape_model.hdev)
查找模板参数介绍
1. 最小匹配分数:Score 。
2. 匹配最大个数:NumMatches
3. 最大重叠比:MaxOverlap(1 为允许重叠,0 为不允许)
4. 亚像素精度:SubPixel。
5. 搜索时使用的金字塔层数:NumLevels (0 为最高效)。
6. 贪婪度:Greediness(为 0 时慢而安全,为 1 时快而可能匹配失败)。
9.2基于助手的模板匹配步骤
9.3基于形状的模板匹配
1.创建形状模板匹配create_shape_model
算子:
Template NumLevels AngleStart AngleExtent AngleStep Optimization Metric Contrast MinContrast ModelID
示例:create_shape_model(ImageReduced, 'auto',0,rad(360), 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)
ImageReduced1(输入对象):输入图像对象
'auto'(输入控制参数1):默认自动获取
0(输入控制参数2):创建模板的起始角度(弧度)
rad(360) (输入控制参数3):创建模板的终止角度(弧度)
'auto'(输入控制参数4):默认自动获取
'auto'(输入控制参数5):缩放最小比例默认自动获取
'use_polarity'(输入控制参数9):设置模板优化和模板创建方法
'auto'(输入控制参数10):默认自动获取
'auto'(输入控制参数11):默认自动获取
ModelID(输出控制参数):输出模板句柄
2.发现模板find_shape_model
算子:find_shape_model(Image : : ModelID, AngleStart, AngleExtent, MinScore, NumMatches, MaxOverlap, SubPixel, NumLevels, Greediness : Row, Column, Angle, Score)
示例:find_shape_model(Image, ModelID, 0, rad(360), 0.7, 0, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score)
Image(输入对象):输入需要找寻的图像
ModelID(输入控制参数1):输入模和句柄
0(输入控制参数2):找寻的起始角度
rad(360)(输入控制参数3):找寻的终止角度
0.7(输入控制参数4):最小匹配分数
0(输入控制参数5):找寻的最大个数
0.5(输入控制参数6):最大覆盖率还可以发现系数值
'least_squares'(输入控制参数7):计算精度的设置
0(输入控制参数8):搜索时金字塔的层数
0.9(输入控制参数9):贪婪度 一般设置为0.9 速度快 容易出现找不到的情况
Row(输出控制参数1):匹配位置的行坐标
Column(输出控制参数2):匹配位置的列坐标
Angle(输出控制参数3):匹配位置的角度
Score(输出控制参数4):匹配位置的得分
3.获取模板的轮廓进行查看get_shape_model_contours
算子:get_shape_model_contours( : ModelContours : ModelID, Level : )
示例:get_shape_model_contours(ModelContours, ModelID, 1)
ModelContours(输出对象):输出模板轮廓
ModelID (输入控制参数):输入模板句柄
1(输入控制参数):输入显示数量
4. 显示找到的结果dev_display_shape_matching_results
算子:dev_display_shape_matching_results( : : ModelID, Color, Row, Column, Angle, ScaleR, ScaleC, Model : )
示例:dev_display_shape_matching_results(ModelID, 'red', Row, Column, Angle, 1, 1, 0))
ModelID(输入控制参数1):输入模型的句柄
'red'(输入控制参数2):设定显示颜色
Row(输出控制参数3):输入显示的行坐标
Column(输入控制参数4):输入显示的列坐标
Angle(输入控制参数5):输入显示的角度
1(输入控制参数6):水平方向的缩放比例
1(输入控制参数7):垂直方向的缩放比例
0(输入控制参数8):找到的模型实例的索引
5. 清除句柄 以免爆内存
算子:clear_shape_model( : : ModelID : )
示例:clear_shape_model(ModelID)
ModelID(输入控制参数):输入模型句柄
9.4基于相关性的模板匹配
1.基于相似度模板匹配create_ncc_model
算子:create_ncc_model(Template : : NumLevels, AngleStart, AngleExtent, AngleStep, Metric : ModelID)
示例:create_ncc_model(ImageReduced, 'auto', rad(0),rad(360), 'auto', 'use_polarity', ModelID)
ImageReduced(输入对象):输入图像对象
'auto'(输入控制参数1):默认自动获取
0(输入控制参数2):创建模板的起始角度(弧度)
rad(360) (输入控制参数3):创建模板的终止角度(弧度)
'auto'(输入控制参数8):默认自动获取
'use_polarity'(输入控制参数9):设置模板优化和模板创建方法
ModelID(输出控制参数):输出模板句柄
2.发现模板find_ncc_model
算子:find_ncc_model(Image : : ModelID, AngleStart, AngleExtent, MinScore, NumMatches, MaxOverlap, SubPixel, NumLevels : Row, Column, Angle, Score)
示例:find_ncc_model (Image,ModelID, rad(0),rad(360), 0.8, 0, 0.5, 'true', 0, Row, Column, Angle, Score)
Image(输入对象):输入需要找寻的图像
ModelID(输入控制参数1):输入模和句柄
0(输入控制参数2):找寻的起始角度
rad(360)(输入控制参数3):找寻的终止角度
0.8(输入控制参数4):最小匹配分数
0(输入控制参数5):找寻的最大个数
0.5(输入控制参数6):最大覆盖率还可以发现系数值
'true'(输入控制参数7):亚像素级别标志
0(输入控制参数8):搜索时金字塔的层数
Row(输出控制参数1):匹配位置的行坐标
Column(输出控制参数2):匹配位置的列坐标
Angle(输出控制参数3):匹配位置的角度
Score(输出控制参数4):匹配位置的得分
3. 清除句柄 以免爆内存clear_ncc_model
算子:clear_ncc_model( : : ModelID : )
示例:clear_ncc_model(ModelID)
ModelID(输入控制参数):输入模型句柄
9.5基于缩放比的模板匹配
1.创建缩放比模板匹配create_scaled_shape_model
算子:create_scaled_shape_model(Template : : NumLevels, AngleStart, AngleExtent, AngleStep, ScaleMin, ScaleMax, ScaleStep, Optimization, Metric, Contrast,MinContrast : ModelID)
示例:create_scaled_shape_model(ImageReduced1, 'auto', 0, rad(360), 'auto', 0.2, 1.5, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)
ImageReduced1(输入对象):输入图像对象
'auto'(输入控制参数1):默认自动获取
0(输入控制参数2):创建模板的起始角度(弧度)
rad(360) (输入控制参数3):创建模板的终止角度(弧度)
'auto'(输入控制参数4):默认自动获取
0.2(输入控制参数5):缩放最小比例
1.5(输入控制参数6):缩放最大比例
'auto'(输入控制参数7):默认自动获取
'auto'(输入控制参数8):默认自动获取
'use_polarity'(输入控制参数9):设置模板优化和模板创建方法
'auto'(输入控制参数10):默认自动获取
'auto'(输入控制参数11):默认自动获取
ModelID(输出控制参数):输出模板句柄
2.发现模板find_scaled_shape_model
算子:find_scaled_shape_model(Image : : ModelID, AngleStart, AngleExtent, ScaleMin, ScaleMax, MinScore, NumMatches, MaxOverlap, SubPixel, NumLevels, Greediness :Row, Column, Angle, Scale, Score)
示例:find_scaled_shape_model(Image, ModelID, 0, rad(360), 0.2, 1.9, 0.8, 4, 0.8, 'least_squares', 0, 0.9, Row, Column, Angle, Scale, Score)
Image(输入对象):输入需要找寻的图像
ModelID(输入控制参数1):输入模和句柄
0(输入控制参数2):找寻的起始角度
rad(360)(输入控制参数3):找寻的终止角度
0.2(输入控制参数4):找寻的最小缩放比
1.9(输入控制参数5):找寻的最大缩放比
0.8(输入控制参数6):最小匹配分数
4(输入控制参数7):找寻的最大个数
0.8(输入控制参数8):最大覆盖率还可以发现系数值
'least_squares'(输入控制参数9):计算精度的设置
0(输入控制参数10):搜索时金字塔的层数
0.9(输入控制参数11):贪婪度 一般设置为0.9 速度快 容易出现找不到的情况
Row(输出控制参数1):匹配位置的行坐标
Column(输出控制参数2):匹配位置的列坐标
Angle(输出控制参数3):匹配位置的角度
Scale(输出控制参数4):默认值Score(输出控制参数5):匹配位置的得分
3.获取模板的轮廓进行查看get_shape_model_contours
算子:get_shape_model_contours( : ModelContours : ModelID, Level : )
示例:get_shape_model_contours(ModelContours, ModelID, 1)
ModelContours(输出对象):输出模板轮廓
ModelID (输入控制参数):输入模板句柄
1(输入控制参数):输入显示数量
4. 显示找到的结果dev_display_shape_matching_results
算子:dev_display_shape_matching_results( : : ModelID, Color, Row, Column, Angle, ScaleR, ScaleC, Model : )
示例:dev_display_shape_matching_results(ModelID, 'red', Row, Column, Angle, 1, 1, 0))
ModelID(输入控制参数1):输入模型的句柄
'red'(输入控制参数2):设定显示颜色
Row(输出控制参数3):输入显示的行坐标
Column(输入控制参数4):输入显示的列坐标
Angle(输入控制参数5):输入显示的角度
1(输入控制参数6):水平方向的缩放比例
1(输入控制参数7):垂直方向的缩放比例
0(输入控制参数8):找到的模型实例的索引
4. 显示找到的结果dev_display_shape_matching_results
5. 清除句柄 以免爆内存
算子:clear_shape_model( : : ModelID : )
示例:clear_shape_model(ModelID)
ModelID(输入控制参数):输入模型句柄