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

新手求教:如图不同圆形产品需要测试其内径和外径

[复制链接]
洞庭渔人 发表于 2018-11-22 11:27:54 | 显示全部楼层 |阅读模式
如图不同圆形产品需要测试其内径和外径 由于下面的那个小的固定块会出现遮挡住内外圆边缘 造成有时候检测不到或者是不够稳定 刚开始接触Halcon的小白真心求指导呀
微信图片_20181121200020.png
10_22924_b554f42f1e2ec7e.png
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
绝地武士 发表于 2018-11-22 21:06:10 | 显示全部楼层
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| 洞庭渔人 发表于 2018-11-22 22:32:07 | 显示全部楼层
绝地武士 发表于 2018-11-22 21:06
用spoke卡圆工具试试https://www.51halcon.com/thread-117-1-1.html

哦哦 但是使用spoke卡圆工具前也要获取内外圆的区域吧 这个得怎么获取呀 谢谢
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
djx808 发表于 2018-11-23 10:59:56 | 显示全部楼层
先blob提取内外圆两个区域,然后求最小外接圆,接着用spoke工具
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| 洞庭渔人 发表于 2018-11-23 13:43:10 | 显示全部楼层
djx808 发表于 2018-11-23 10:59
先blob提取内外圆两个区域,然后求最小外接圆,接着用spoke工具

嗯 是打算这么做的呢 但就是现在感觉blob提取内外圆两个区域的时候偏差太大 怎么减小使用blob提取时的偏差呀 还请再指点下呀 谢谢
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
绝地武士 发表于 2018-11-23 14:20:37 | 显示全部楼层
本帖最后由 绝地武士 于 2018-11-23 14:36 编辑
洞庭渔人 发表于 2018-11-23 13:43
嗯 是打算这么做的呢 但就是现在感觉blob提取内外圆两个区域的时候偏差太大 怎么减小使用blob提取时的偏 ...
  1. ImageList:=[]
  2. ImageList[0]:='C:/Users/Admin/Desktop/1.png'
  3. ImageList[1]:='C:/Users/Admin/Desktop/2.png'
  4. for Index:=0 to |ImageList|-1 by 1
  5.     read_image (Image, ImageList[Index])
  6.     rgb1_to_gray (Image, GrayImage)
  7.     threshold (GrayImage, Region, 60, 255)
  8.     connection (Region, ConnectedRegions)
  9.     select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 70)
  10.     closing_circle (SelectedRegions, RegionClosing, 50)
  11.     region_to_spoke (RegionClosing, 300, SpokeRows1, SpokeCols1)
  12.     *gen_cross_contour_xld (Cross, SpokeRows, SpokeCols, 15, 0.785398)
  13.     spoke (GrayImage, Regions, 30, 30, 15, 1, 20, 'all', 'max', SpokeRows1, SpokeCols1, 'inner', ResultRow1, ResultColumn1, ArcType1)
  14.     pts_to_best_circle (Circle1, ResultRow1, ResultColumn1, ArcType1, 15, RowCenter1, ColCenter1, Radius1, StartPhi1, EndPhi1, PointOrder1, ArcAngle1)

  15.     fill_up (RegionClosing, RegionFillUp)
  16.     difference (RegionFillUp, RegionClosing, RegionDifference)
  17.     region_to_spoke (RegionDifference, 300, SpokeRows2, SpokeCols2)
  18.     *gen_cross_contour_xld (Cross, SpokeRows, SpokeCols, 15, 0.785398)
  19.     spoke (GrayImage, Regions, 30, 30, 15, 1, 20, 'all', 'max', SpokeRows2, SpokeCols2, 'inner', ResultRow2, ResultColumn2, ArcType2)
  20.     pts_to_best_circle (Circle2, ResultRow2, ResultColumn2, ArcType2, 15, RowCenter2, ColCenter2, Radius2, StartPhi2, EndPhi2, PointOrder2, ArcAngle2)

  21.     dev_set_line_width (3)
  22.     dev_display (Image)
  23.     dev_display (Circle1)
  24.     dev_display (Circle2)
  25.     gen_cross_contour_xld (Cross1,RowCenter1, ColCenter1, 15, 0.785398)
  26.     gen_cross_contour_xld (Cross2,RowCenter2, ColCenter2, 15, 0)
  27. endfor
复制代码

第一张图像可以,第二张要调试下参数,把圆环先填充好再进行
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| 洞庭渔人 发表于 2018-11-23 15:53:25 | 显示全部楼层
绝地武士 发表于 2018-11-23 14:20
第一张图像可以,第二张要调试下参数,把圆环先填充好再进行

前辈 spoke 和pts_to_best——circle是调用的外部函数拟合圆 但是这个region_to_spoke (RegionClosing, 300, SpokeRows1, SpokeCols1)是要怎么用呢
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| 洞庭渔人 发表于 2018-11-23 16:12:55 | 显示全部楼层
绝地武士 发表于 2018-11-23 14:20
第一张图像可以,第二张要调试下参数,把圆环先填充好再进行

region_to_spoke也是一样 是调用的外部函数么 我没有这个所以导致报错 是这样么 前辈?
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
绝地武士 发表于 2018-11-23 18:30:31 | 显示全部楼层
洞庭渔人 发表于 2018-11-23 16:12
region_to_spoke也是一样 是调用的外部函数么 我没有这个所以导致报错 是这样么 前辈? ...

都在这个地址地址 spoke卡圆工具试试https://www.51halcon.com/thread-117-1-1.html
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| 洞庭渔人 发表于 2018-11-23 19:03:36 | 显示全部楼层
绝地武士 发表于 2018-11-23 18:30
都在这个地址地址 spoke卡圆工具试试https://www.51halcon.com/thread-117-1-1.html

嗯嗯 这个我找到了 在Halcon里面运行还是会报错额 像图片上面这样的报错是什么问题呢 前辈
微信图片_20181123190143.png
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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