9、halcon定位学习(1)--基于形状的匹配

1、 基于形状的匹配

1> 创建ROI
9、halcon定位学习(1)--基于形状的匹配_第1张图片
 使用Halcon 算子可以方便的设置ROI
 标准形状
◆ draw_rectangle1/2
◆ draw_circle
◆ draw_ellipse
◆ draw_line
 任意形状
◆ draw_region
◆ draw_polygon
 生成标准ROI
◆ gen_rectangle1/2
◆ gen_circle
◆ gen_ellipse
◆ gen_region_line
 通过XLD 创建AOI
◆ gen_region_contour_xld
◆ gen_region_polygon_xld

2> 生成ROI
根据创建模板时得到的数据,生成ROI区域,例如gen_rectangle2(ROI,Row,Column,Phi,Length1,Length2)
3> 修正ROI
 修正函数
◆ erosion_* 减小ROI
◆ dilation_* 扩大ROI
◆ shape_trans 形状转换
◆ boundary 像素级边界
◆ move_region 移动区域到新位置
 组合
◆ Intersection 交集
◆ Difference 差集
◆ Union2 并集
4> 直接创建模板
 create_shape_model(
Template , // 模板图像
NumLevels, // 图像金字塔,将图片分辨降低N倍
AngleStart, // 起始角度
AngleExtent, // 角度范围
AngleStep, // 角度步长
Optimization, // 优化算法
Metric, // 极性,设置模板前景与背景、目标前景与背景的关系
Contrast, // 对比度
MinContrast, // 最小对比度
ModelID // 模板ID
)
create_scaled_shape_model
create_aniso_shape_model
注释:
参数Contrast 不仅仅是对比度,数组元素数量不同,其意义不同
◆ 1个元素时:128,对比度,直接提取边缘
◆ 2个元素时:[100, 128],表示使用磁滞分割来提取边缘
◆ 3个元素时:[100, 128, 10],前两个参数同2,最后一个参数表示所提取边缘的最小长度为10.
参数Optimization
一些模板包含了太多像素点,这导致
◆ 模板过大
◆ 增加执行时间
◆ 增加了内存需求
 参数Optimization 用来减少这些点
◆ none 不减少像素
◆ point_reduction_low 大约一半点
◆ point_reduction_medium 大约1/3
◆ point_reduction_high 大约1/4
 减少点可能导致的问题
◆ 可能导致无法创建高层金字塔
◆ 有可能会降低结果的精度和准确度原则
◆ 边缘较多时才减少
 相同环境下, Optimization 取值不同时的运行时间对比
◆ none 14.53 ms
◆ point_reduction_low 12.53 ms
◆ point_reduction_medium 11.39 ms
◆ point_reduction_high 10.67 ms
参数-MinContrast
参数MinContrast 是在查找模板的时候,来减少“有害”边缘 的。它的 值可通过下面方法得到
◆ estimate_noise函数
◆ inspect_shape_model函数
5> 模板参数-程序获取
determine_shape_model_params(
Template, 模板
‘auto’, 金字塔层数
0, 起始角度
rad(360), 角度范围
0.9, 缩小范围
1.1, 放大范围
‘auto’, 减少像素的方法
‘use_polarity’, 极性
‘auto’, 对比度
‘auto’, 最小对比度
‘all’ , Which values
ParameterName, Name of values
ParameterValue) Values
6> 通过Dxf文件创建模板
 通过像素轮廓可以直接创建模板
◆ read_contour_xld_dxf
◆ create_shape_model_xld
◆ create_scaled_shape_model_xld
◆ create_aniso_shape_model_xld
7> 边界处理
 HALCON 提供了两种边界处理方法
 set_system (’ border_shape_models’,’false ‘)
◆ 模板必须在 roi 内
◆ 靠近边缘部分会被裁减
 set_system (’ border_shape_models’,’true ‘)
◆ 模板可以部分在 ROI 外面
◆ 注意:分值会降低

你可能感兴趣的:(halcon)