边缘缺陷检测

原图来自Ihalcon论坛

缺陷如在下图圆框中

image.png

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

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

如下图红、绿双线

image.png

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

image.png


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

如下图

image.png

缺陷检测关键代码

*选择待检测边缘
      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://download.csdn.net/download/suneggs/12611149



本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864