继续上节的region处理。
区域相减(即求差异)
上原图:
现在我先选择焊点之外的背景区域,然后想反转这个区域,得到焊点区域,该怎么做?
代码如下:
gen_rectangle1(roi1, 813, 578, 913, 774) reduce_domain(GrayImage, roi1, ImageReduced) mean_image(ImageReduced, ImageMean, 2, 2) regiongrowing(ImageMean, Regions,3, 3, 6, 1000) difference(ImageReduced, Regions, RegionDifference)
difference(ImageReduced, Regions, RegionDifference) 这个算子完成了区域的反转。
使用difference算子可以计算两个区域的不同。
代码中的参数 ImageReduced,是一个roi取得的region。如下图
第二个参数Regions,是算子regiongrowing取得的前景区域,如下图
difference最后取得的区域RegionDifference如下图所示。
当然,如果我们只取得3个焊点,可以用select_shape按面积来筛选特征区域。
区域求补集
dilation_circle(obj1, RegionDilation, 3.5) complement(RegionDilation, RegionComplement) dev_display(RegionDilation)
complement(Region:RegionComplement::)
这个算子返还一个区域的补集。
上面的代码第一行,求出左边3个焊点中的顶点焊点的一个膨胀区域。
第二行把这个区域进行求补集。其效果就是求出顶焊点之外的全部区域。
图1
图2
---------------------
作者: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模板匹配的算子使用流程的总结

