设置首页收藏本站
12
返回列表 发新帖
开启左侧

这种情况的圆该怎么识别呢

[复制链接]
张满满 发表于 2023-10-18 14:58:59 | 显示全部楼层
本帖最后由 张满满 于 2023-10-19 13:23 编辑
  1. dev_update_off ()
  2. read_image (Image , 'image.jpg')

  3. binary_threshold (Image, Region, 'max_separability', 'light', UsedThreshold)
  4. opening_circle (Region, RegionOpening, 3.5)
  5. connection (RegionOpening, ConnectedRegions1)
  6. gen_contour_region_xld (ConnectedRegions1, Contours3, 'border')
  7. smooth_contours_xld (Contours3, SmoothedContours, 21)


  8. closing_circle (Region, RegionClosing, 23.5)
  9. fill_up (RegionClosing, RegionFillUp)
  10. connection (RegionFillUp, ConnectedRegions)
  11. select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 70)
  12. gen_contour_region_xld (SelectedRegions, Contours, 'border')
  13. fit_circle_contour_xld (Contours, 'algebraic', -1, 0, 0, 3, 2, Row, Column, Radius, StartPhi, EndPhi, PointOrder)
  14. gen_circle_contour_xld (ContCircle, Row, Column, Radius, 0, 6.28318, 'positive', 1)

  15. **外圆参数
  16. outCircle:=ContCircle
  17. outCirRow:=Row
  18. outCirCol:=Column
  19. outCirRadius:=Radius

  20. difference (RegionFillUp,RegionClosing, RegionDifference)
  21. connection (RegionDifference, ConnectedRegions)
  22. select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 70)
  23. gen_contour_region_xld (SelectedRegions, Contours, 'border')
  24. fit_circle_contour_xld (Contours, 'algebraic', -1, 0, 0, 3, 2, Row, Column, Radius, StartPhi, EndPhi, PointOrder)
  25. gen_circle_contour_xld (ContCircle, Row, Column, Radius, 0, 6.28318, 'positive', 1)

  26. **内圆参数
  27. inCircle:=ContCircle
  28. inCirRow:=Row
  29. inCirCol:=Column
  30. inCirRadius:=Radius

  31. **找外圆
  32. create_metrology_model (MetrologyHandle1)
  33. add_metrology_object_circle_measure (MetrologyHandle1, outCirRow, outCirCol, outCirRadius, 20, 5, 1.2, 30, [], [], Index)
  34. set_metrology_object_param (MetrologyHandle1, 'all', 'measure_transition', 'negative')//白到黑
  35. set_metrology_object_param (MetrologyHandle1, 'all', 'measure_select', 'last')//选择第一条
  36. apply_metrology_model (Image, MetrologyHandle1)
  37. **获取结果
  38. get_metrology_object_result (MetrologyHandle1, 'all', 'all', 'result_type', 'all_param', Parameter1)
  39. **显示卡尺
  40. get_metrology_object_result_contour (Contour1, MetrologyHandle1, 'all', 'all', 1.5)
  41. **边缘点
  42. get_metrology_object_measures (Contours1, MetrologyHandle1, 'all', 'all', Row1, Column1)
  43. gen_cross_contour_xld (Cross1, Row1, Column1, 6, rad(45))
  44. gen_cross_contour_xld (Center1, Parameter1[0], Parameter1[1], 20, 0.785398)

  45. **找内圆
  46. create_metrology_model (MetrologyHandle2)
  47. add_metrology_object_circle_measure (MetrologyHandle2, inCirRow, inCirCol, inCirRadius, 20, 5, 1.2, 30, [], [], Index)
  48. set_metrology_object_param (MetrologyHandle2, 'all', 'measure_transition', 'positive')//黑到白
  49. set_metrology_object_param (MetrologyHandle2, 'all', 'measure_select', 'first')//选择第一条
  50. apply_metrology_model (Image, MetrologyHandle2)
  51. **获取结果
  52. get_metrology_object_result (MetrologyHandle2, 'all', 'all', 'result_type', 'all_param', Parameter2)
  53. **显示卡尺
  54. get_metrology_object_result_contour (Contour2, MetrologyHandle2, 'all', 'all', 1.5)
  55. **边缘点
  56. get_metrology_object_measures (Contours2, MetrologyHandle2, 'all', 'all', Row2, Column2)
  57. gen_cross_contour_xld (Cross2, Row2, Column2, 6, rad(45))
  58. gen_cross_contour_xld (Center2, Parameter2[0], Parameter2[1], 20, 0.785398)


  59. angle_lx (Parameter1[0], Parameter1[1], Parameter2[0], Parameter2[1], Angle)

  60. gen_arrow_contour_xld (Arrow, Parameter1[0], Parameter1[1], Parameter2[0] - Parameter2[2] * sin(Angle), Parameter2[1] + Parameter2[2] * cos(Angle), 15, 15)
  61. dev_set_line_width (2)

  62. dev_display (Image)

  63. dev_set_color ('green')

  64. dev_display (Contour1)
  65. dev_display (Center1)
  66. dev_display (Contour2)
  67. dev_display (Center2)

  68. dev_set_color ('blue')
  69. dev_display (Contours1)
  70. dev_display (Contours2)

  71. dev_set_color ('red')
  72. dev_display (Arrow)

  73. dev_display (SmoothedContours)
  74. clear_metrology_model (MetrologyHandle1)
  75. clear_metrology_model (MetrologyHandle2)
复制代码
Image.png

奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
zjjdsg 发表于 2023-10-18 18:36:55 | 显示全部楼层
Ggg3434 发表于 2023-10-18 10:42
不影响吧   看你想怎么处理了,两者没有关联的

大佬可以看看源码吗
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
CMHCYL 发表于 2023-10-18 22:05:54 | 显示全部楼层

厉害的,很详细
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
风景你好 发表于 2023-10-18 22:37:57 | 显示全部楼层
这样可以不

  1. dev_set_draw ('margin')
  2. read_image (Image215018ms843qqssbsyqfsm, '215018ms843qqssbsyqfsm.jpg')
  3. rgb1_to_gray (Image215018ms843qqssbsyqfsm, GrayImage)
  4. threshold (GrayImage, Regions, 95, 255)
  5. closing_circle (Regions, RegionClosing, 35)
  6. area_center (RegionClosing, Area, Row, Column)
  7. fill_up (RegionClosing, RegionFillUp)
  8. difference (RegionFillUp, RegionClosing, RegionDifference)
  9. area_center (RegionDifference, Area1, Row1, Column1)
  10. dev_display (Image215018ms843qqssbsyqfsm)
  11. dev_display (RegionClosing)
  12. gen_arrow_contour_xld (Arrow, Row, Column, Row1, Column1, 10, 10)
复制代码


微信截图_20231018223727.png
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
Ggg3434 发表于 2023-10-19 08:33:26 | 显示全部楼层
zjjdsg 发表于 2023-10-18 18:36
大佬可以看看源码吗

read_image (Image, 'A1')
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width/2, Height/2, 'black', WindowHandle)
dev_display (Image)
rgb1_to_gray (Image, GrayImage)
threshold (GrayImage, Region, 100, 255)
closing_circle (Region, RegionClosing, 10)
connection (RegionClosing, ConnectedRegions1)
select_shape (ConnectedRegions1, SelectedRegions, 'area', 'and', 50000, 150000)
fill_up (SelectedRegions, RegionFillUp)
shape_trans (RegionFillUp, RegionTrans, 'outer_circle')

threshold (GrayImage, Region1, 0, 80)
opening_circle (Region1, RegionOpening, 8)
connection (RegionOpening, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions1, 'area', 'and', 30000, 60000)
shape_trans (SelectedRegions1, RegionTrans1, 'outer_circle')

area_center (RegionTrans, Area, Row, Column)
area_center (RegionTrans1, Area1, Row1, Column1)
gen_cross_contour_xld (Cross, Row, Column, 32, 0.785398)
gen_cross_contour_xld (Cross1, Row1, Column1, 32, 0.785398)
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
ychdxx 发表于 2023-10-19 10:06:27 | 显示全部楼层
学习中
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
老老常 发表于 2023-10-19 10:53:15 | 显示全部楼层
Mark一下
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
老老常 发表于 2023-10-25 08:33:04 | 显示全部楼层
先找大圆和小圆,两个圆心连线角度就算出来了
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
鑫旺兴 发表于 2023-11-4 21:26:25 | 显示全部楼层
热情解答回复
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
redfoxxxx 发表于 2023-11-4 22:47:13 | 显示全部楼层
参考一下
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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