合并region
select_shape(ConnectedRegions1, SelectedRegions1, 'area', 'and', 550, 99999) select_obj(SelectedRegions1, obj1, 1) select_obj(SelectedRegions1, obj2, 2) union2(obj1, obj2, RegionUnion)
union2算子,把两个region合并成一个RegionUnion区域,如下图红色所标识区域。
还有一个相关算子union1,也是合并区域,它是自身与另一个区域合并到自身。
扩大和缩小区域(腐蚀膨胀算子)
膨胀算子
select_obj(SelectedRegions1, obj1, 1) dev_set_draw('margin') dev_set_line_width(1) dev_set_color('green') dev_display(ImageReduced) dilation_circle(obj1, RegionDilation, 3.5) dev_display(RegionDilation)
dilation_circle(obj1,RegionDilation,3.5)
算子dilation_circle以圆形为模板,对large图像进行膨胀运算,3.5指的是模板半径。
在下图中绿色框就是膨胀后的区域,这个区域设定项目dev_set_draw('margin') 显示为了线框模式。
算子dilation_rectangle1
则是使用一个矩形的结构元素来膨胀图像
腐蚀算子
erosion_circle(Region : RegionErosion : Radius : )
用一个圆形的结构元素进行腐蚀图像 (小于半径的区域会被腐蚀掉,一般用于有弧形的区域,大多数用这个算子)
示例:erosion_circle(obj1, RegionErosion, 3.5)
效果如下图所示,红色区域向内缩小了3.5个半径,形成新区域RegionErosion
取区域特征值
常见的有如下算子:
area_center(obj1, Area, Row, Column)
用于获取区域的面积和中心
smallest_circle(obj1, Row3, Column3, Radius)
获取圆形区域的参数,圆心与半径
smallest_rectangle1(obj1, Row12, Column12, Row22, Column22)
获取矩形区域的参数,大小与位置
取对象特征的算子没有必要记忆,完全可以通过向导(特征检测)来生成代码,如下图所示的操作:
注意你必须先用鼠标点击屏幕上的一个对象,然后再启动向导。
---------------------
作者:hackpig
来源:www.skcircle.com
版权声明:本文为博主原创文章,转载请附上博文链接!
halocn基础系列教程列表:
Halcon学习(27-1)halcon测量技术:亚像素,亚像素精度
Halcon学习(26)dev_get_preferences的用法
Halcon学习(4-6)Region处理:动态阈值,分水岭
Halcon学习(4-5)Region处理:合并区域,扩大和缩小区域,取区域特征值
Halcon学习(4-4)Region处理: 区域相减,区域求补集
Halcon学习(4-2)Region处理:选择区域,分割图像
Halcon学习(4-1)ROI感兴趣区域,reduce_domain和crop_domain,鼠标绘制区域
视觉检测之产品瑕疵检测
视觉检测之焊点检测
模板匹配/仿射变换
halcon模板匹配 scaled_shape_model模板的另一个例子
Halcon中两种实现旋转的方法rotate_image和affine_trans_image
halcon的 shape_model模板匹配的算子使用流程的总结

