机器视觉——(三)halcon的XLD技术拟合圆

机器视觉——(三)halcon的XLD技术拟合圆

利用halcon提供的操作XLD的算子,可以对XLD轮廓进行优化、选择、拟合等操作。以下例子提取XLD轮廓并选取需要的轮廓来拟合工件的外径圆。

基本步骤:

  1. 对图像进行平滑处理。常用算子:滤波类算子。
  2. 边缘提取。常用算子:edges_sub_pix等提取边缘的算子。
  3. 初次挑选边缘、分类边缘、根据边缘的特性来筛选边缘。总之,最终挑选出想要的边缘。常用算子:select_shape_xld、segment_contours_xld。
  4. 边缘的连接。根据需求来连接轮廓。 常用算子:union_*类算子。
  5. 形状拟合。根据最终轮廓来拟合目标形状。常用算子:fit_*类算子。
	*平滑
    median_image(Image,ImageMedian,'square', 5, 'mirrored')
    *canny边缘
    edges_sub_pix(Image,edges,'canny',1,20,40)
    *第一次挑选出长的轮廓,有效滤除假边缘
    select_shape_xld(edges,select_edges,'area','or',2000,9999999)
    *将XLD轮廓分割为直线段、圆(圆弧)、椭圆弧。
    segment_contours_xld (select_edges, ContoursSplit, 'lines_circles', 5, 4, 3)
    *根据轮廓点面积挑选出长的圆形轮廓
    select_shape_xld(ContoursSplit,select_edges2,'area','or',4000,999999)
    *根据圆度挑选轮廓
    select_shape_xld(select_edges2,select_edges3,'circularity','or',0,0.15)
    count_obj (select_edges3, Number)
    *连接轮廓
    union_cocircular_contours_xld (select_edges3, CircleContours, rad(45), rad(0), rad(45), 300, 50, 50, 'true', 10)     
    *利用连接的轮廓拟合圆
    fit_circle_contour_xld (CircleContours, 'algebraic', -1, 0, 0, 3, 2, Row, Column, Radius, StartPhi, EndPhi, PointOrder)
    *拟合圆的坐标、半径

拟合结果:
外径圆的拟合结果1
外径圆的拟合结果1

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值