设置首页收藏本站
开启左侧

[瑕疵檢測] 檢測刮傷與周圍破損

[复制链接]
tim0214 发表于 2025-10-21 11:43:51 | 显示全部楼层 |阅读模式
Hi 各位大大

小弟我現在再做一個瑕疵檢測的專案,結果如下所示:

ng-1.png ng-2.png

我的思維如下,但效果不佳,所以請教各位大大!

  1. * 讀取圖像(請替換為實際圖像路徑)
  2. read_image(Image, 'H:/Project/AI Demo/DOE/Image/瑕疵檢測/s1.bmp')

  3. * 提取邊緣
  4. edges_sub_pix(Image, Edges, 'canny', 1.5, 10, 30)

  5. * 分割輪廓
  6. segment_contours_xld(Edges, ContoursSplit, 'lines', 5, 4, 2)

  7. * 選擇長度特徵(檢測長划痕)
  8. select_contours_xld(ContoursSplit, SelectedContours, 'contour_length', 50, 999999, -0.5, 0.5)

  9. * 將輪廓轉為區域顯示
  10. gen_region_contour_xld(SelectedContours, RegionEdges, 'margin')
  11. dilation_circle(RegionEdges, RegionEdgesDilated, 2.5)

  12. * 顯示邊緣檢測結果
  13. dev_clear_window()
  14. dev_display(Image)
  15. dev_set_color('cyan')
  16. dev_display(RegionEdgesDilated)

  17. count_obj(SelectedContours, NumEdgeDefects)
  18. disp_message(WindowHandle, '邊緣法檢測到 ' + NumEdgeDefects + ' 條裂紋', 'window', 72, 12, 'cyan', 'true')
复制代码


原圖如下:
1.png
2.png
3.png



奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
大凡光学,专注标定板提供
UKimiF 发表于 2025-10-27 18:55:39 | 显示全部楼层
我推荐直接用sauvola算法,效果如下:
  1. list_files ('./image', ['files','follow_links','recursive'], ImageFiles)
  2. tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)
  3. for Index := 0 to |ImageFiles| - 1 by 1
  4.     read_image (Image, ImageFiles[Index])
  5.     rgb1_to_gray (Image, Image)
  6.     *//提取基准区域
  7.     threshold (Image, RegionB, 0, 254)
  8.     connection (RegionB, RegionB)
  9.     select_shape_std (RegionB, RegionB, 'max_area', 70)
  10.     closing_circle (RegionB, RegionB, 5.5)
  11.     *//缩小检测范围
  12.     erosion_circle (RegionB, RegionB, 5.5)
  13.    
  14.     reduce_domain (Image, RegionB, ImageD)
  15.     local_threshold (ImageD, RegionD, 'adapted_std_deviation', 'light',\
  16.                      ['mask_size','scale','range'], [30,0.1,128])
  17.     *//这里的scale是对比度系数
  18.     *//如果你想抓出更多浅色的缺陷就把这个值调小一点
  19.     *//如果不想要后面的噪点可以在前面加一个滤波或者在后面加一个过滤器
  20.    
  21.     dev_clear_window ()
  22.     dev_display (Image)
  23.     dev_set_draw ('margin')
  24.     dev_set_color ('red')
  25.     dev_display (RegionD)
  26.     stop ()
  27. endfor
复制代码
效果1.png
效果2.png
效果3.png
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
回复 支持 1 反对 0

使用道具 举报

skybaron 发表于 2025-10-28 14:34:41 | 显示全部楼层
根据形态特征,比如面积、外接椭圆等参数就能解决
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| tim0214 发表于 2025-10-31 19:26:35 | 显示全部楼层
感謝各位大大的鼎力協助^^
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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