Halcon——圆拟合算子详解

Halcon 算子 fit_circle_contour_xld 作用:用圆近似XLD轮廓; 参数翻译(对应以上参数顺序): 输入轮廓、 圆拟合算法(详细算法解释如下)、 用于计算的最大轮廓点数(MaxNumPoints >= 3,-1是所有点)、 闭合轮廓端点之间的最大距离(轮廓两头的距离MaxClosureDist >= 0.0)、 拟合过程忽略的点(轮廓首尾ClippingEndPoints >= 0)、 稳健加权拟合的最大迭代次数(Iterations >= 0)、 用于剔除异常值的剪切因子(ClippingFact.. 阅读详情
AI摘要

本文详细介绍了Halcon的fit_circle_contour_xld算子,对其各参数进行了逐一解释,如输入轮廓、圆拟合算法等。还展示了更换不同圆拟合算法的效果,以实际圆环数据进行测试,并分享了相关实例代码,有助于深入了解该算子在图像处理中的应用。

fit_circle_contour_xld (Operator)

算子介绍

该算子是 Halcon 中用于拟合轮廓的圆形的操作符。这个操作可以根据输入的轮廓点数据来计算最佳拟合的圆。
fit_circle_contour_xld(Contours : : Algorithm, MaxNumPoints, MaxClosureDist, ClippingEndPoints, Iterations, ClippingFactor : Row, Column, Radius, StartPhi, EndPhi, PointOrder)

参数详解如下:
(1)Contours:输入轮廓、
(2)Algorithm:圆拟合算法(详细算法解释如下)、
(3)MaxNumPoints:用于计算的最大轮廓点数(MaxNumPoints >= 3,-1是所有点)、
(4)MaxClosureDist:闭合轮廓端点之间的最大距离(轮廓两头的距离MaxClosureDist >= 0.0)、
(5)ClippingEndPoints:拟合过程忽略的点(轮廓首尾ClippingEndPoints >= 0)、
(6)Iterations:稳健加权拟合的最大迭代次数(Iterations >= 0)、
(7)ClippingFactor:用于剔除异常值的剪切因子(ClippingFactor > 0)一般情况下:Huber算法设置为 1.0、Tukey算法设置为 2.0、
(8)Row:输出圆心的行坐标
(9)Column:输出圆心坐标的列坐标
(10)Radius:输出圆的半径
(11)StartPhi:输出起始点的角度
(12)EndPhi:输出结束点的角度
(13)PointOrder输出沿边界的点序;

其中最重要的圆拟合算法如下:
(该参数对圆拟合精度有较大影响)
在这里插入图片描述

更换不同拟合算法效果

说明:实际圆环外径 158,圆环内径157,圆心(160,160)
以下为同一批数据,更换不同圆拟合算法测试结果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关实例代码分享

dev_close_window ()
read_image (Image, 'D:/bb/tu/8.jpg')
rgb1_to_gray (Image, GrayImage)
edges_sub_pix (GrayImage, Edges, 'canny', 1, 5, 10)
*亚像素边缘
select_shape_xld (Edges, SelectedXLD, 'contlength', 'and', 136.87, 136.9)
segment_contours_xld (SelectedXLD, ContoursSplit, 'lines_circles', 5, 4, 2)
select_shape_xld (ContoursSplit, SelectedXLD1, 'contlength', 'and', 56, 58)

fit_circle_contour_xld (SelectedXLD1, 'algebraic', -1, 0, 0, 3, 2, Row, Column, Radius, StartPhi, EndPhi, PointOrder)
*对XLD轮廓做近似圆计算--拟合圆--获得圆数据
*参数1:输入xld轮廓
*参数2:圆的拟合算法
*      'ahuber'           对轮廓点进行加权,以减少异常值的影响
*      'algebraic'        这种方法使轮廓点和生成的圆之间的代数距离最小化
*      'atukey'           对轮廓点进行加权,并忽略异常值
*      'geohuber'         对轮廓点进行加权,以减少异常值的影响
*      'geometric'    使轮廓点和生成的圆之间的几何距离最小化。距离度量在统计上是最优的,但需要更多的计算时间。
*                     如果轮廓点被噪声严重扭曲,建议使用此选项
*      'geotukey'         对轮廓点进行加权,并忽略异常值
*参数8:Row圆中心的行坐标
*参数9:Column圆中心的列坐标
*参数10:Radius圆的半径
*参数11:StartPhi起点的角度
*参数12:EndPhi终点的角度
*参数13:PointOrder沿边界的点顺序( 'negative'负序, 'positive'正序)
*注意:拟合时参数1只能包含一条xld

gen_circle_contour_xld (ContCircle, Row, Column, Radius, StartPhi, EndPhi, PointOrder, 1)
*创建圆或圆弧的XLD轮廓
*参数1:输出轮廓
*参数2:输入圆心的行坐标
*参数3:输入圆心列坐标
*参数4:输入圆的半径
*参数5:输入起始点角度
*参数6:输入结束点的角度
*参数7:输入沿边界的点序( 'negative'负序, 'positive'正序)
*参数8:输入相邻轮廓点之间的距离(Resolution >= 0.00001)


get_image_size (GrayImage, Width, Height)
dev_open_window(10,10,Width, Height,'black',WindowHandle)
dev_display(SelectedXLD1)

dev_open_window(10,10,Width, Height,'black',WindowHandle1)
dev_display(ContCircle)
Halcon 简单的圆拟合 直接贴代码 输入图像 read_image(Iamge,'') *读取图像 invert_image(Iamge, ImageInvert) *反转 threshold(ImageInvert, Region1, 40, 255) *二值化 boundary (Region1, RegionBorder, 'inner') *取得边界 *clip_region_rel (RegionBorder... 阅读详情

相关推荐

halcon系列之直线拟合和圆形拟合算子

本文对halcon中直线拟合和圆形拟合算子进行了介绍

qiaodahua的博客 4019

Halcon12.0 自动拟合圆及圆弧

Halcon12.0 自动拟合残缺的圆及完整的圆

Halcon实战:用edges_sub_pix和fit_circle_contour_xld搞定螺丝孔高精度测量(附完整代码)

本文详细介绍了如何利用Halcon的edges_sub_pix和fit_circle_contour_xld算子实现螺丝孔的高精度测量,包括亚像素边缘提取和圆拟合的关键技术参数调优。通过工业场景中的实战案例,展示了如何应对金属反光、边缘毛刺等挑战,提升测量精度至±0.01mm级别,并附完整代码示例。

weixin_30352645的博客 518

Halcon学习备忘六(拟合圆的一种方法)

对于圆形区域,我们想拟合出它的圆形

2万+

haocon找圆_基于Halcon圆拟合提取学习

1.本文主要围绕Halcon圆拟合提取的学习心得总结,主要围绕halcon算子shape_trans,small_circle,fit_circle_contour_xld,hough_circles,add_metrology_object_circle_measure展开2.Shape_trans该算子检测图像变换区域中被广泛应用;Signatureshape_trans(Region : R...

weixin_39909859的博客 1980

基于Halcon的高精度圆拟合算法思路

最近研究halcon的圆孔定位四个月了,这里分享一下我的心得,也是备忘 项目描述 图片尺寸1600*1200 支持任意类型的圆孔检测 参数:圆的半径,极性 极性除了内黑外白,内白外黑,还有可能是黑色条带中心,白色条带中心 时间:100ms以内 图像有可能虚焦 用户给出的直径有可能有10%的偏差 用户给的极性可能是错误的 圆环周围可能有干扰边缘,但必须找到最精准边缘 容差:2个像素以内 宁可拒报,不允许误报 Halcon圆检测相关方法 方法 描述 缺点 比较好用的算子 区域分割 直接用对比

qianshishangdi的博客 7062

Halcon轮廓的分割,合并及圆&矩形&线拟合

示例:fit_circle_contour_xld (Edges, 'algebraic', -1, 0, 0, 3, 2, Row20, Column20, Radius5, StartPhi1, EndPhi1, PointOrder3)示例:fit_rectangle2_contour_xld (RectangleEdges, 'tukey', -1, 0, 0, 3, 2, Row, Column, Phi, Length1, Length2, PointOrder)

a296026640的博客 5636

Halcon圆拟合实战:从测量工具到精准检测的完整流程解析

本文详细解析了Halcon圆拟合工具在工业检测中的完整流程,从测量模型搭建到参数优化,再到实战应用。通过精准的圆拟合技术,可实现亚像素级测量精度,适用于精密零件检测、PCB定位孔测量等场景,显著提升工业自动化检测效率。

weixin_29200741的博客 280

Halcon 算子 fit_circle_contour_xld 实战指南:从参数解析到工业检测应用

本文深入解析Halcon中fit_circle_contour_xld算子的核心参数与应用技巧。通过对比代数拟合与几何拟合算法,结合金属件定位孔与部分遮挡密封圈等工业检测实战案例,详细阐述了如何利用该算子实现高鲁棒性的圆轮廓拟合与精确测量,并提供了关键的避坑指南与性能优化建议。

weixin_29281915的博客 502

别再乱选算法了!Halcon圆拟合算子fit_circle_contour_xld的6种算法深度评测与避坑指南

本文深入评测Halcon圆拟合算子fit_circle_contour_xld的6种核心算法,包括algebraic、geometric、Huber系列和Tukey系列,详细分析各算法在抗噪性、计算效率和轮廓适应性等方面的表现。通过实测数据和选型策略,帮助工业视觉检测开发者根据实际场景选择最优圆拟合算法,提升检测精度和效率。

weixin_26985923的博客 723

Halcon实战:基于圆弧检测的精密圆拟合技术解析

本文深入解析Halcon在工业视觉中基于圆弧检测的精密圆拟合技术,涵盖高精度边缘提取、智能圆弧分割和稳健几何拟合等核心环节。通过实战案例和参数优化建议,帮助工程师解决遮挡、反光等复杂场景下的圆形部件测量难题,实现微米级检测精度。

weixin_42530793的博客 208

Halcon 中各种拟合算子原理及应用场景

在机器视觉和图像处理领域,拟合操作是一种非常重要的技术手段。Halcon 作为一款强大的机器视觉软件库,提供了多种拟合算子来处理不同类型的数据,如点、线、曲线等,从而帮助用户从复杂的数据中提取出有价值的几何信息。这些拟合算子基于严谨的数学原理,并且在不同的工业检测、测量以及机器人视觉等众多应用场景中发挥着关键作用。

m0_44975814的博客 2288

halcon教程- 边缘检测 亚像素边缘提取 轮廓提取

知识点是鱼,套路是渔。授人以鱼不如授人以渔!” 一般在做项目时,无论是边缘检测、瑕疵检测、Blob检测等应用,都有一定的通用套路,也可以说是通用处理框架,在此框架下根据具体应用具体分析,基本上所有项目都可完成。 总结起来:通用套路 + 灵活运用 对于初学者来说,只需掌握通用套路即可,灵活运用需要经过大量的练习才可达到,运用大学里学马克思哲学时的一句话概括,“量变引...

VisionEngineer的博客 1万+

Halcon之使用圆拟合工具进行圆拟合

【代码】Halcon之使用圆拟合工具进行圆拟合。

Major_S的博客 726

6、Halcon图像边缘提取和轮廓识别

目录 1、图像边缘提取原理 2、边缘提取算子介绍 3、图像的亚像素边缘提取 4、亚像素轮廓的特征分析 5、xld的分割及直线拟合 6、圆及椭圆的拟合 7、中心线的提取 1、图像边缘提取原理 2、边缘提取算子介绍 3、图像的亚像素边缘提取 4、亚像素轮廓的特征分析 5、xld的分割及直线拟合 6、圆及椭...

panjinliang066333的博客 2万+

halcon学习拓展系列—圆拟合卡尺算子fit_circle_base_circle

首先感谢wangpeng,joy和xy6300,三位提供了卡尺工具的思路,并提供了卡尺工具—rake函数,综合三位同事提供的思路,整合并优化,提出了矩形矢量直线拟合算子fit_circle_base_circle,增加了滤波功能,再次感谢三位同事! 涉及到卡尺工具—rake函数,请参考博客园博主xy6300《边缘分析及直线和圆拟合——第5讲》 一、算子说明 fit_circle_base_circle(Image: :threshEdge,numEdge,transition,orie...

谷棵的专栏 1998

边缘分析及直线和圆拟合——第5讲

一、直线和圆拟合概述 直线和圆的拟合,是视觉项目中非常常见的需求,但是对新手来说,在Halcon中实现却比较困难。 其基本思路都是: ① 分割出边缘,得到XLD(gen_contours_skeleton_xld、edges_sub_pix等) ② 将XLD进行分割、筛选(segment_contours_xld、select_contours_xld) ③ 将XLD进...

weixin_30398227的博客 1630

【C# + HALCON 机器视觉】HALCON经典算子:圆拟合(fit_circle_contour_xld)

摘要:本文聚焦 C# 与 HALCON 集成开发,深入研究圆拟合算子fit_circle_contour_xld在轴承滚珠尺寸检测中的应用。通过threshold分割滚珠区域,利用fit_circle_contour_xld拟合圆参数,与设计值对比判定产品是否合格。结合 C# 多线程技术,实现每秒 5 件的检测速度,并阐述 ROI 局部处理等性能优化方法、异常处理策略及跨平台集成方案。此外,还介绍了融合 3D 点云数据的立体测量扩展应用,为工业视觉检测提供全面解决方案。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1577
上一篇: C++基础学习——数据类型
Orion_CCY
博客等级 码龄8年 1312粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值