开启左侧

请教如何提取工件的外轮廓?需要去除工作台面的圆孔干扰

[复制链接]
libaineu2004 发表于 2019-12-24 17:58:57 | 显示全部楼层 |阅读模式
请教如何提取工件的外轮廓?工件放在工作台面。台面背景板有黑色的通风孔。工件和圆孔有时候会粘在一起,造成轮廓提取不足。
如图所示,要求提取所有工件的外轮廓。需要去除背景版面的孔干扰。请大家指教,谢谢!
图2和图3的工件表面有划痕,划痕的干扰也需要去除,仅要提外轮廓。
t2-.jpg





t1.jpg
 楼主| libaineu2004 发表于 2019-12-24 18:00:42 | 显示全部楼层
t0-.jpg
lrf2019 发表于 2019-12-26 08:12:32 | 显示全部楼层
匹配出來孔給他扣掉?
 楼主| libaineu2004 发表于 2019-12-26 08:51:53 | 显示全部楼层
lrf2019 发表于 2019-12-26 08:12
匹配出來孔給他扣掉?

可否具体给出源码?谢谢
绝地武士 发表于 2019-12-26 09:35:28 | 显示全部楼层
用的你的第二幅图,提取出主要的部分,剩下的要通过卡尺产生边缘的,涉及到保密算法。。。楼主自行补充!
微信截图_20191226093556.png
  1. read_image (Image, 'G:/51halcon/求边缘/175828m918w140j8uja920.jpg')
  2. decompose3 (Image, ImageR, ImageG, ImageB)

  3. create_color_trans_lut ('hsv', 'from_rgb', 8, ColorTransLUTHandle)
  4. apply_color_trans_lut (ImageR, ImageG, ImageB, ImageH, ImageS, ImageV, ColorTransLUTHandle)

  5. threshold (ImageS, Region, 60, 255)
  6. closing_circle (Region, RegionClosing, 5.5)
  7. connection (RegionClosing, ConnectedRegions)
  8. select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 10000, 700000)
  9. count_obj (SelectedRegions, Number)
  10. for Index:=1 to Number by 1
  11.     select_obj (SelectedRegions, ObjectSelected, Index)
  12.     dilation_circle (ObjectSelected, RegionDilation, 20)
  13.     erosion_circle (ObjectSelected, RegionErosion, 20)
  14.     difference (RegionDilation, RegionErosion, RegionDifference)
  15.    
  16.     rgb1_to_gray (Image, GrayImage)
  17.     reduce_domain (GrayImage, RegionDifference, ImageReduced)
  18. *     create_shape_model (ImageReduced, 'auto', -0.39, 0.79, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)
  19. *     get_shape_model_contours (ModelContours, ModelID, 1)
  20. *     find_shape_model (GrayImage, ModelID, -0.39, 0.78, 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score)
  21. *     dev_display_shape_matching_results (ModelID, 'red', Row, Column, Angle, 1, 1, 0)

  22. endfor
复制代码

 楼主| libaineu2004 发表于 2019-12-26 11:25:43 | 显示全部楼层
绝地武士 发表于 2019-12-26 09:35
用的你的第二幅图,提取出主要的部分,剩下的要通过卡尺产生边缘的,涉及到保密算法。。。楼主自行补充!

...

孔没有去掉啊。使用帖子二楼的图片,工件和孔粘连的图。
yuzemin 发表于 2020-6-21 01:48:52 | 显示全部楼层
这样子不知道行不行
2222.bmp
 楼主| libaineu2004 发表于 2020-6-21 09:06:50 | 显示全部楼层
yuzemin 发表于 2020-6-21 01:48
这样子不知道行不行

怎么实现的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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