如下图所示,白色螺丝被别的东西遮挡,这种情况应该NG。这里不用深度学习,我提供一个比较简单的思路来检测螺丝是否被遮挡。大佬们如果有更简单的办法,可以交流学习下,我是halcon刚入门的小白一枚。
1. 基于二值分割提取出白色螺丝的区域,提取螺丝边界轮廓,然后拟合轮廓圆
2. 对螺丝边界轮廓和拟合的圆轮廓所形成的region区域做差集,提取缺口区域
- gen_region_contour_xld(ContCircle, Region2, 'filled')
- gen_region_contour_xld(ObjectSelected, Region3, 'filled')
- * 区域做差集
- difference(Region2, Region3, RegionDifference)
- * 形态学open,去除边界轮廓和拟合轮廓之间的微小差异
- opening_circle(RegionDifference, RegionOpening2, 3.5)
- * 选择最大区域
- select_shape_std(RegionOpening2, SelectedRegions1, 'max_area', 70)
复制代码
3. 最小外接矩形,计算缺口长度
- smallest_rectangle2(SelectedRegions1, Row6, Column6, Phi1, Length11, Length21)
-
复制代码
|