首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >边缘缺陷检测

边缘缺陷检测

作者头像
threeQing
发布2019-06-19 15:54:45
1.7K0
发布2019-06-19 15:54:45
举报

原图来自Ihalcon论坛

缺陷如在下图圆框中

首先,阈值分割+形态学处理,将包含边缘部分图像进行抠图

然后使用canny滤波器进行边缘检测

如下图红、绿双线

将凸起部分平滑掉,细节如下右图

计算待检测边缘上的点到平滑后边缘的距离,超过一定阈值公差即为缺陷

如下图

缺陷检测关键代码

 *选择待检测边缘
      select_obj(UnionContours, ObjectSelected, Index)
      *平滑边缘
      smooth_contours_xld (ObjectSelected, SmoothedContours, 89)
      *阈值公差
      disTH := 5
      *用于保存缺陷边缘X坐标
      flawPtsX :=[] 
      *用于保存缺陷边缘Y坐标
      flawPtsY :=[]
      *得到待检测边缘点坐标
      get_contour_xld(ObjectSelected, Row2, Col2)
      *待检测边缘上点到平滑边缘的距离
      tuple_length(Row2, Length)
      for Index1 := 0 to Length-1 by 1
          distance_pc(SmoothedContours, Row2[Index1], Col2[Index1], DistanceMin, DistanceMax)
          *根据公差判断是否合格
          if(DistanceMin > disTH)
              flawPtsX :=[flawPtsX,Col2[Index1]]
              flawPtsY :=[flawPtsY,Row2[Index1]]
          endif
      endfor      
      *将缺陷点生成区域,并进一步筛选
      gen_region_points(Region1, flawPtsY, flawPtsX)
      dilation_circle(Region1, RegionDilation, 5)
      connection(RegionDilation, ConnectedRegions1)
      select_shape(ConnectedRegions1, SelectedRegions1, 'area', 'and', 200, 99999)
      gen_empty_obj(EmptyObject)
      count_obj(SelectedRegions1, Number1)
      *再从筛选后的区域,选择不合格的边缘
      for Index1 := 1 to Number1 by 1
          select_obj(SelectedRegions1, ObjectSelected2, Index1)
          smallest_rectangle1(ObjectSelected2, Row11, Column11, Row21, Column2)
          clip_contours_xld(ObjectSelected, ClippedContours, Row11, Column11, Row21, Column2)
          concat_obj(EmptyObject, ClippedContours, EmptyObject)        
      endfor
      *连接相邻不合格边缘缺陷
      union_adjacent_contours_xld(EmptyObject, EmptyObject, 50, 1, 'attr_keep')
      
      *合并缺陷
      concat_obj(FlawEdgeObject, EmptyObject, FlawEdgeObject)

原图及详细注释的完整源代码见百度网盘:

链接: https://pan.baidu.com/s/178KvG8Gav1PWOeA-Wrbc2g 提取码: kwpa 复制这段内容后打开百度网盘手机App,操作更方便哦

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器视觉那些事儿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档