一种门把手圆弧的识别与定位方法技术

技术编号:36396257 阅读:51 留言:0更新日期:2023-01-18 10:02
本发明专利技术涉及圆弧检测算法领域,具体是一种门把手圆弧的识别与定位方法,其具体步骤如下:S1、原始单通道或者三通道图像;S2、Canny边缘检测;S3、灰度图像;S4、计算梯度方位角正切;S5、根据图像1、图像2、图像3和矩阵1,查找圆心;S6、筛选圆弧上的点;S7、遍历图像6,计算弧对应的圆心;S8、遍历center,过滤圆心;S9、根据center求半径;S10、定位大圆弧,对门把手上的圆弧进行了识别与定位,为机器人实现喷涂轨迹自动化提供了可能,现有的圆弧识别和定位是通过多条直线拟合而成的,导致机器人喷涂轨迹不平滑,油漆厚度不均匀,无法满足客户需求;本发明专利技术提供的方法精确地识别和定位到了大圆弧,使喷涂轨迹更平滑,油漆厚度更均匀。油漆厚度更均匀。油漆厚度更均匀。

【技术实现步骤摘要】
一种门把手圆弧的识别与定位方法


[0001]本专利技术涉及圆弧检测算法领域,具体是一种门把手圆弧的识别与定位方法。

技术介绍

[0002]现有喷涂软件AXPS提供的圆弧检测算法,是通过拟合多条直线进行定位的,如图3所示,该种识别方法,导致轨迹规划出多条直线路径,喷涂路径不平滑,油漆不均匀,这种处理圆弧的技术,已经不满足客户日益增加的精益求精的需求。

技术实现思路

[0003]为了解决上述问题,本专利技术提出一种门把手圆弧的识别与定位方法。
[0004]一种门把手圆弧的识别与定位方法,其具体步骤如下:
[0005]S1、原始单通道或者三通道图像:待识别工件放入视觉传感器视野内,获取图像1;
[0006]S2、Canny边缘检测:对图像1进行Canny边缘检测,得到图像2;
[0007]S3、灰度图像:对图像1进行图像灰度化,得到图像3;
[0008]S4、计算梯度方位角正切:
[0009]a、对图像3分别进行X方向和Y方向的梯度运算,得到X方向的梯度图像4和Y方向的梯度图像5;
[0010]b、根据图像4和图像5求梯度方位角正切,得到矩阵1;
[0011]S5、根据图像1、图像2、图像3和矩阵1,查找圆心,具体步骤如下:
[0012]5.1遍历图像2中的第一个点;
[0013]5.2如果该点在图像2中的值不为0,且该点在矩阵1中的值不为0,进入5.4;
[0014]5.3如果5.2中的条件不满足,判断图像2中的点是否遍历结束,否,遍历图像2中的下一个点,回到步骤5.2;是,遍历结束;
[0015]5.4若满足5.2中的点p(x,y)在弧上,那么假设圆心坐标为(a,b),则圆方程为:
[0016]x=a+rcosθ,y=b+rsinθ
ꢀꢀꢀ
(公式1)
[0017]其中r是半径,是参数,消去r即得到:
[0018]b=a*tanθ

x*tanθ+y
[0019]5.5令图像3的第一列为a;
[0020]5.6计算b的值;
[0021]5.7如果0<b<图像3的总行数,则在该点的累加器矩阵2上加1;
[0022]5.8判断图像3的列数是否遍历结束;
[0023]5.9否,遍历下一列,回到步骤5.6;是,判断图像2中的点是否遍历结束;
[0024]5.10否,遍历图像2中的下一个点,回到步骤5.2;是,遍历结束;
[0025]5.11根据矩阵2计算圆心;
[0026]5.12遍历矩阵2;
[0027]5.13提取矩阵2中的非零点的位置和值,并且放入容器vec中;
[0028]5.14按值第一优先,位置坐标x第二优先,位置坐标y第三优先,对vec进行排序;
[0029]5.15vec中的第一个位置对应的票数最多,肯定是圆心,放入圆心容器vec2中;
[0030]5.16从vec中的第二个位置开始遍历,查找圆心;
[0031]S6、筛选圆弧上的点,具体步骤如下:
[0032]6.1、遍历图像2;
[0033]6.2如果该点p不为0,找到vec2中距离p点最近的圆心nearestCenter;
[0034]6.3根据点p,点nearestCenter和矩阵1,计算p点是否在以点nearestCenter为圆心的弧上,得到图像6:
[0035]S7、遍历图像6,计算弧对应的圆心:
[0036]7.1该点的值不为0,则在圆心vec2中找到最近的圆心;
[0037]7.2将圆心坐标,该点与圆心的距离,该点的坐标放在同一块内存center中;
[0038]7.3判断图像6是否遍历结束;
[0039]7.4判断图像6是否遍历结束;
[0040]7.5否,遍历下一个点,回到步骤7.1;
[0041]7.6是,遍历图像6结束;
[0042]S8、遍历center,过滤圆心;
[0043]8.1如果该圆心对应的弧上的点数量小于经验阈值N_VOTE_T,则在内存中删掉该圆心,该圆心对应的弧上的所有点,以及各个弧上的点与圆心的距离;
[0044]8.2判断遍历是否结束;
[0045]8.3否,遍历center中的下一组数据,回到8.1;
[0046]8.4是,遍历结束,得到圆心坐标,各圆心对应的弧的坐标,各圆心与对应弧的距离的容器center;
[0047]S9、根据center求半径:
[0048]9.1遍历center;
[0049]9.2将center中的圆心与对应弧的距离进行从小到大排序;
[0050]9.3取9.2中的最小值放入容器dists中;
[0051]9.4遍历9.2中第二小值到最大值;
[0052]S10、定位大圆弧:
[0053]10.1取半径最大的一组数据,即圆心坐标,半径值,对应弧上的点坐标;
[0054]10.2遍历弧上点的坐标;
[0055]10.3计算该弧上的点与圆心的距离,判断该距离是否小于经验阈值RADII_T;
[0056]10.4是,该点是真圆弧点,放入容器point_arc中;
[0057]10.5否,该点不是真圆弧点;
[0058]10.6判断弧上的点是否遍历结束;
[0059]10.7否,遍历弧上的下一个点,回到10.2中;
[0060]10.8是,定位结束。
[0061]所述的步骤S5的5.12具体步骤如下:
[0062]5.12.1如果该点的票数不大于经验阈值N_VOTE_T,也不是局部最大值,则该点不是圆心,将该点的票数置为0;
[0063]5.12.2判断矩阵2是否遍历结束;
[0064]5.12.3否,遍历矩阵2下一个点,回到步骤5.12.1中;
[0065]5.12.4是,进入下一步。
[0066]所述的步骤S5的5.16具体步骤如下:
[0067]5.16.1计算当前位置与容器vec2中所有位置的距离,该距离如果大于经验阈值DISTANCE_T,则当前位置也是圆心,放入圆心容器vec2中;
[0068]5.16.2判断vec中的位置是否遍历结束;
[0069]5.16.3否,遍历vec中的下一个位置,转到步骤5.15.1;
[0070]5.16.4是,所有的圆心在容器vec2中,圆心查找结束。
[0071]所述的步骤S6的6.3具体步骤如下:
[0072]6.3.1令p(px,py),nearestCenter(cx,cy),令矩阵1中坐标为(px,py)的值为tan;
[0073]6.3.2由公式(1)可得,tan=y

b/x

a,,即y

本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种门把手圆弧的识别与定位方法,其特征在于:其具体步骤如下:S1、原始单通道或者三通道图像:待识别工件放入视觉传感器视野内,获取图像1;S2、Canny边缘检测:对图像1进行Canny边缘检测,得到图像2;S3、灰度图像:对图像1进行图像灰度化,得到图像3;S4、计算梯度方位角正切:a、对图像3分别进行X方向和Y方向的梯度运算,得到X方向的梯度图像4和Y方向的梯度图像5;b、根据图像4和图像5求梯度方位角正切,得到矩阵1;S5、根据图像1、图像2、图像3和矩阵1,查找圆心;S6、筛选圆弧上的点,具体步骤如下:6.1、遍历图像2;6.2如果该点p不为0,找到vec2中距离p点最近的圆心nearestCenter;6.3根据点p,点nearestCenter和矩阵1,计算p点是否在以点nearestCenter为圆心的弧上,得到图像6:S7、遍历图像6,计算弧对应的圆心:7.1该点的值不为0,则在圆心vec2中找到最近的圆心;7.2将圆心坐标,该点与圆心的距离,该点的坐标放在同一块内存center中;7.3判断图像6是否遍历结束;7.4判断图像6是否遍历结束;7.5否,遍历下一个点,回到步骤7.1;7.6是,遍历图像6结束;S8、遍历center,过滤圆心;S9、根据center求半径;S10、定位大圆弧。2.根据权利要求1所述的一种门把手圆弧的识别与定位方法,其特征在于:所述的步骤S5的具体步骤如下:5.1遍历图像2中的第一个点;5.2如果该点在图像2中的值不为0,且该点在矩阵1中的值不为0,进入5.4;5.3如果5.2中的条件不满足,判断图像2中的点是否遍历结束,否,遍历图像2中的下一个点,回到步骤5.2;是,遍历结束;5.4若满足5.2中的点p(x,y)在弧上,那么假设圆心坐标为(a,b),则圆方程为:x=a+rcosθ,y=b+rsinθ
ꢀꢀꢀꢀ
(公式1)其中r是半径,是参数,消去r即得到:b=a*tanθ

x*tanθ+y5.5令图像3的第一列为a;5.6计算b的值;5.7如果0<b<图像3的总行数,则在该点的累加器矩阵2上加1;5.8判断图像3的列数是否遍历结束;5.9否,遍历下一列,回到步骤5.6;是,判断图像2中的点是否遍历结束;
5.10否,遍历图像2中的下一个点,回到步骤5.2;是,遍历结束;5.11根据矩阵2计算圆心;5.12遍历矩阵2;5.13提取矩阵2中的非零点的位置和值,并且放入容器vec中;5.14按值第一优先,位置坐标x第二优先,位置坐标y第三优先,对vec进行排序;5.15vec中的第一个位置对应的票数最多,肯定是圆心,放入圆心容器vec2中;5.16从vec中的第二个位置开始遍历,查找圆心。3.根据权利要求2所述的一种门把手圆弧的识别与定位方法,其特征在于:所述的步骤S5的5.12具体步骤如下:5.12.1如果该点的票数不大于经验阈值N_VOTE_T,也不是局部最大值,则该点不是圆心,将该点的票数置为0;5.12.2判断矩阵2是否遍历结束;5.12.3否,遍历矩阵2下一个点,回到步骤5.12.1中;5.12.4是,进入下一步。4.根据权利要求2所述的一种门把手圆弧的识别与定位方法,其特征在于:所述的步骤S5的5.16具体步骤如下:5.16.1计算当前位置与容器vec2中所有位置的距离,该距离如果大于经验阈值DISTANCE_T,则当前位置也是圆心,放入圆心容器vec2中;5.16.2判断vec中的位置是否遍历结束;5.16.3否,遍历vec中的下一个位置,转到步骤5.15.1;5.16.4是,所有的圆心在容器vec2中,圆心查找结束。5.根据权利要求1所述的一种门把手圆弧的识别与定位方法,其特征在于:所述的步骤S6的6.3具...

【专利技术属性】
技术研发人员:马英刘一帆王慧星王玉成李顺治张震易廷昊
申请(专利权)人:上海埃奇机器人技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1