前言:
都是halcon用来创建基于形状模板的算子,但功能其实大不相同,在相应的场合用对应的算子,可以事半功倍
一.相同点
-
大部分参数基本都是一样的定义;
-
用法基本一致;
二,不同点
-
create_shape_model 主要应用于模板没有太大的形变的条件下,局部可以有轻微变形
-
没有变形的情况,正常使用即可
create_shape_model (ImageReduced, 'auto', -0.39, 0.78, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)
find_shape_model (Image, ModelID, -0.39, 0.78, 0.7, 1, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score)
-
有局部变形的情况
create_shape_model (ImageReduced, 'auto', -0.39, 0.78, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID) 创建模板正常使用
find_shape_model (SearchImage, ModelID, 0, 0, 0.4, 1, 0.5, 'max_deformation 1', 0, 0.9, Row, Column, Angle, Score)
在匹配模板时,SubPixel参数需设置成局部最大变形量即可
-
create_scale_shape_model 主要应用于模板在X和Y方向有相同的形变的场合
create_scaled_shape_model (ImageReduced, 5, rad(-45), rad(90), 'auto', 0.8, 1.0, 'auto', 'none', 'ignore_global_polarity', 40, 10, ModelID)
在创建模板时,只需要设置缩放比例即可,例如本例种的0.8到1.0
-
create_aniso_shape_model 主要应用于模板在X和Y方向有不同的形变的场合
create_aniso_shape_model (ImageReduced, 'auto', -0.39, 0.79, 'auto', 0.9, 1.1, 'auto', 0.9, 1.1, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)
在创建模板时,只需要设置X方向和Y方向的缩放比例即可,例如本例种的0.9到1.1和0.9到1.1
以上所有算子的算子其他参数的具体意义请参考Halcon(之一)主要讲解halcon联合C#基于形状的模板匹配(基于变形和不变形),之前发的博客,有具体详细讲解