开启左侧

【求助】划痕检测

[复制链接]
WeyCharry 发表于 2018-10-24 17:59:23 | 显示全部楼层 |阅读模式
划痕检测遇到问题,用动态阈值不能把划痕跟边界的圆分割开
大佬们帮忙看看~

划痕图片

划痕图片






 楼主| WeyCharry 发表于 2018-10-24 18:00:49 | 显示全部楼层
本帖最后由 WeyCharry 于 2018-10-25 12:16 编辑

第一张图片勉强能检测出划痕,应用到其他图片检测不出,大神们有没有好办法分享一下,学习一下~

原图地址:pan.baidu.com/s/1gcyi9qvJzqIGHXFrenJqeA

{:6_192:}
  1. *读取图像
  2. read_image (Image1, 'C:/Users/Administrator/Desktop/划痕图片/1.bmp')

  3. *二值化并找到感兴趣区域
  4. threshold (Image1, Regions, 6, 253)
  5. opening_circle (Regions, RegionOpening, 2)
  6. fill_up (RegionOpening, ROI)

  7. *图像预处理
  8. median_image (Image1, ImageMedian, 'circle', 2, 'mirrored')
  9. dyn_threshold (Image1, ImageMedian, RegionDynThresh, 10, 'light')

  10. *裂缝分割
  11. connection (RegionDynThresh, ConnectedRegions)
  12. intersection (ConnectedRegions, ROI, RegionIntersection)
  13. connection (RegionIntersection, ConnectedRegions2)
  14. select_shape (ConnectedRegions2, SelectedRegions, ['area','circularity','width'], 'and', [72.13,0.0416,1], [775,0.0481,55.25])
  15. union1 (SelectedRegions, RegionUnion)
  16. connection (RegionUnion, ConnectedRegions1)
  17. select_shape (ConnectedRegions1, SelectedRegions2, 'area', 'and', 139.37, 223)

  18. *显示原图
  19. dev_display (Image1)
  20. dev_set_draw ('margin')
  21. dev_set_color ('red')
  22. union1 (SelectedRegions2, RegionUnion1)

  23. *显示划痕
  24. dev_display (RegionUnion1)
复制代码

绝地武士 发表于 2018-10-25 14:06:15 | 显示全部楼层
WeyCharry 发表于 2018-10-24 18:00
第一张图片勉强能检测出划痕,应用到其他图片检测不出,大神们有没有好办法分享一下,学习一下~

原图地址 ...

直接上深度学习,缺陷受到参数和认定的影响,不同打光影响太大,调不好的!
mediation 发表于 2018-10-25 16:13:34 | 显示全部楼层
程序细节处理比较粗,楼主这4张图片还是可以检测的,不知道更多图片的通用性怎么样,细节做的更好一些,对内盘面上除去4个空白圆区域剩下的区域进行处理,可能通用效果会好很多
  1. read_image (Image1, 'F:/资料--机器视觉综合/脏污检测图片/51Halcon划痕检测2/1.bmp')
  2. threshold (Image1, Regions, 60, 160)
  3. connection (Regions, ConnectedRegions1)
  4. select_shape (ConnectedRegions1, SelectedRegions, 'outer_radius', 'and', 195, 210)
  5. fill_up_shape (SelectedRegions, RegionFillUp, 'area', 1, 100)
  6. opening_circle (RegionFillUp, RegionOpening, 5.5)
  7. closing_circle (RegionOpening, RegionClosing, 6.5)
  8. erosion_circle (RegionClosing, RegionErosion, 7.5)
  9. change_domain (Image1, RegionErosion, ImageNew)
  10. gray_dilation_rect (ImageNew, ImageMax, 5, 5)
  11. gray_erosion_rect (ImageMax, ImageMin, 3, 3)
  12. median_image (ImageMin, ImageMedian, 'circle', 3.5, 'mirrored')
  13. gray_opening_rect (ImageNew, ImageOpening, 11, 11)
  14. dyn_threshold (ImageMin, ImageOpening, RegionDynThresh, 90, 'light')
  15. connection (RegionDynThresh, ConnectedRegions)
  16. select_shape (ConnectedRegions, SelectedRegions1, 'area', 'and', 300, 99999)
复制代码





 楼主| WeyCharry 发表于 2018-10-26 09:14:01 | 显示全部楼层
mediation 发表于 2018-10-25 16:13
程序细节处理比较粗,楼主这4张图片还是可以检测的,不知道更多图片的通用性怎么样,细节做的更好一些,对 ...

{:6_207:}非常感谢大神的解答~学习了~
 楼主| WeyCharry 发表于 2018-10-26 09:15:24 | 显示全部楼层
绝地武士 发表于 2018-10-25 14:06
直接上深度学习,缺陷受到参数和认定的影响,不同打光影响太大,调不好的! ...

{:1_313:}{:1_313:}谢谢大神指导~
波士华 发表于 2018-10-30 10:57:33 | 显示全部楼层
mediation 发表于 2018-10-25 16:13
程序细节处理比较粗,楼主这4张图片还是可以检测的,不知道更多图片的通用性怎么样,细节做的更好一些,对 ...

老哥,这个Change_domain和reduce_domain好像没啥区别的
mediation 发表于 2018-10-30 14:56:57 | 显示全部楼层
波士华 发表于 2018-10-30 10:57
老哥,这个Change_domain和reduce_domain好像没啥区别的

感觉区别不大吧,我一般都是用change_domain比较多
Joe 发表于 2019-1-6 16:38:50 | 显示全部楼层
结果如图,提供的所有图片都可以检测来,思路就是确认ROI,再进行模型检测。{:1_326:}
result1.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表