相关算子:
- create_shape_model 创建普通模板
- create_scaled_shape_model 创建同步变大变小变化的模板
- create_aniso_shape_model 创建异步变大/变小变化的模板
- create_generic_shape_model 创建基于训练数据的模板(最强大)
- create_planar_calib_deformable_model 创建用于校准(相机内外参)透视匹配的可变形(线性变化)模型
- create_planar_uncalib_deformable_model 为未校准(无需相机内外参)的透视匹配创建可变形模型
- create_local_deformable_model 创建局部变形模板
复制代码
这些都是基于形状创建模板的算子,功能各不一样,对应不同的场合下可以各有所长。
相同点:
均是基于形状匹配的模板;
原理和部分参数相同;
不同点:
模板支持特性越少,性能越高,变形速度最慢;
主要是在变形方面的处理效果;
比如:
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(Image,ModelID,0,0,0.4,1,0.5,'max_deformation',0,0.9,Row,Column,Angle,Score)
复制代码
设置SubPixel为局部最大变形即可。
create_scale_shape_model和create_aniso_shape_model区别主要是X、Y两个方向放缩是否同步或异步。
create_scale_shape_model 用于X、Y放缩一致情况,适合如螺母、瓶盖这种不同规格但是同时XY一起变大变小的匹配。
create_aniso_shape_model用于X、Y放缩不一致情况,可以设置0.9到1.1范围,适合如配件单方向变大变短,另外不变或不一致变化的这种匹配。
create_generic_shape_model 创建一个未训练的模板,需要和train_generic_shape_model 一起配合。
适合用于在图像找到多个不同形状的目标,带有深度功能可单独设置参数,比如最小缩放比等,适应性广,识别更为准确高效。
- create_generic_shape_model (ModelIDRing)
- set_generic_shape_model_param (ModelIDRing, 'iso_scale_min', 0.8)
- set_generic_shape_model_param (ModelIDRing, 'iso_scale_max', 1.2)
- train_generic_shape_model (ImageROIRing, ModelIDRing)
- create_generic_shape_model (ModelIDNut)
- set_generic_shape_model_param (ModelIDNut, 'iso_scale_min', 0.6)
- set_generic_shape_model_param (ModelIDNut, 'iso_scale_max', 1.4)
- train_generic_shape_model (ImageROINut, ModelIDNut)
- ModelIDs := [ModelIDRing,ModelIDNut]
复制代码
create_local_deformable_model 用于创建变形的扭曲模板,性能不是很高,内部应该采用的是SIFT算法,一般情况下慎用。
|