一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种用于孔轴装配的图像处理方法

2022-08-17 10:46:23 来源:中国专利 TAG:


1.本发明涉及图像领域,尤其涉及一种用于孔轴装配的图像处理方法。


背景技术:

2.在带装配孔零件进行孔轴装配领域中,传统的人工装配逐渐被自动装配替代。虽然自动装配有着人工成本低,装配速度快,产量高等优点但也存在着定位精度低,装配成功率不高,材料损耗大等缺点。针对这一问题,设计了一种用于孔轴装配的图像处理方法,


技术实现要素:

3.基于背景技术存在的技术问题,本发明提出了一种用于孔轴装配的图像处理方法,意在解决孔轴自动装配过程中,存在的定位精度低,装配成功率不高,材料损耗大等缺点。
4.本发明采用的技术方案是:
5.一种用于孔轴装配的图像处理方法,其特征在于,包括以下步骤:
6.步骤一:对于装配前的单个装配孔进行检测,包括roi设置、灰度化、高斯滤波、canny边缘检测、轮廓检测、最小外接圆圆检测,求出装配孔的的直径和坐标,并与设定值相比较以判断装配孔的尺寸以及装配孔的位置是否合格;
7.步骤二:对于装配时的多个装配孔对中形成的轮廓进行检测,包括roi设置、灰度化、高斯滤波、canny边缘检测、查找轮廓和求轮廓面积,将轮廓面积与设定值比较,以判断能否进行轴装配。
8.步骤三:对于装配后的销轴进行检测,包括roi设置、灰度化、霍夫梯度变换,求销轴的的直径和坐标,以判断装配是否合格。
9.进一步地,所述的一种用于孔轴装配的图像处理方法,其特征在于,步骤一所述的对于装配前的单个装配孔进行检测,具体包括:
10.2.1roi设置
11.基于装配孔误差范围,通过rect()函数设置roi区域;
12.2.2灰度化
13.对于拍摄的rgb图像用cvtcolor()函数,第三个参数设置为 color_bgr2gray进行图像灰度化转换;
14.2.3高斯滤波
15.调用gaussianblur()函数对图像f(x,y)进行高斯滤波平滑处理;
16.2.4canny边缘检测
17.对于平滑后的图像调用canny()函数对图像进行边缘检测;
18.2.5查找轮廓
19.将边缘检测后的二值图像输入到findcontours()函数中以输出点集,求最小外接圆minenclosingcircle()函数和椭圆检测fitellipse()函数都需要输入点集来进行处
理。
20.2.6最小外接圆
21.通过实验验证,最小外接圆检测圆在合理设置参数后,有着高灵敏度和稳定度的优点,通过调用minenclosingcircle()函数求最小外接圆;将返回的圆的直径和坐标与设定值相比较以判断装配孔的尺寸以及装配孔的位置是否合格。
22.进一步地,所述的一种用于孔轴装配的图像处理方法,其特征在于,步骤二所述的对于装配时的多个装配孔对中形成的轮廓进行检测,具体包括:
23.3.1图像预处理
24.roi设置、灰度化、高斯滤波、canny边缘检测过程同步骤一;
25.3.2查找轮廓
26.先调用findcontours()函数中输出roi区域轮廓点集,再调用fitellipse()函数在findcontours()函数查找能够拟合出椭圆的轮廓,且该椭圆的圆心坐标和长短轴在限制范围内,则该多重约束下的轮廓就是该多装配孔相交的轮廓;
27.3.3求面积
28.通过调用contourarea()函数求出轮廓的面积,并与设定值比较,以判断能否进行轴装配。
29.进一步地,所述的一种用于孔轴装配的图像处理方法,其特征在于,步骤三所述的对于装配后的销轴进行检测,具体包括:
30.4.1图像预处理
31.roi设置、灰度化处理过程同步骤一;
32.4.2霍夫梯度变换
33.对于灰度图像调用houghcircles()即可检测销轴圆,对于返回的圆的直径和坐标与设定值相比较以判断装配是否合格。
34.本发明的优点是:
35.本发明方法通过对单个孔进行、以及对装配时多个装配孔孔对中形成的轮廓进行灰度化、高斯滤波canny边缘检测、查找轮廓和求两对孔对中时形成的轮廓面积,来判断零件是否合格以及零件位置是否到位;在装配前、装配中、装配后实时检测装配孔的位置、直径和面积,并与控制系统进行通信从而提高定位精度,提升装配成功率,减小材料损耗。
附图说明
36.图1(a)为装配孔图像设置roi前的示意图,(b)为装配孔图像设置roi 后的示意图;
37.图2为图像灰度化处理后的示意图;
38.图3为图像高斯滤波处理后的示意图;
39.图4为图像canny边缘检测处理后的示意图;
40.图5为经最小包围圆检测到的圆的示意图;
41.图6为步骤二中查找轮廓求面积的图像处理框图;
42.图7为检测多装配孔对中后所形成的的轮廓示意图;
43.图8为本发明实例中的发卡示意图;
44.图9为本发明实施例中的控制系统流程图;
45.图10为本发明实施例中的图像处理系统流程图。
46.图11为本发明孔轴装配图像处理框图。
具体实施方式
47.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
48.实施例1。以发卡的自动装配为例。
49.发卡如图8所示,一个完整的发卡一般由两瓣发卡主体、一根销轴和一个弹簧组成。每一瓣发卡主体都有两个装配孔,通常将两装配孔间距稍大的一瓣称为大发卡,装配孔间距稍小的一瓣称为小发卡。装配时将大发卡的两个装配孔间包着小发卡的两个装配孔,小发卡的两个装配孔中间包着弹簧孔。进行对中后,将销轴依次穿过大发卡第一个装配孔、小发卡第一个装配孔、弹簧孔、小发卡第二个装配孔、大发卡第二个装配孔后即可视为完成装配。
50.其控制系统流程图如图9所示,图像处理系统如图10所示。轴孔装配辅助检测系统开机后,上位机便会与plc进行通信,询问夹持位的状态。在振动盘将大小发卡进行排列送到夹持位,机械爪夹住大小发卡后,夹持位状态置位。plc 通信工控机开始进行图像预处理和最小外接圆法检测圆,求出两圆孔对应的圆孔直径和圆心坐标,将圆孔直径通过标定的pixels/millimeter求出实际直径,并与设定值相比较,若合格则通信plc执行后续的装配程序否则开始下一轮。
51.在夹持位检测合格后,上位机便会通信plc询问装配位状态。自动发卡装配机将大小发卡和弹簧装配好后,装配位标志位置位。上位机便会开始将拍摄到的由多个零件组装导致多个孔对中形成的单个圆形轮廓进行图像预处理,canny 边缘检测,查找轮廓和求轮廓面积。将多个孔对中形成的轮廓面积根据 pixels/millimeter求出实际面积并与设定值比较,若合格则通信plc执行后续的插入销轴程序否则开始下一轮。
52.插入销轴完成后,检查标志位置位。plc通信工控机开始进行图像预处理和霍夫梯度变换,求出该销轴对应的半径和圆心坐标。当图像检测到销轴的圆形轮廓并且plc也检测到执行该插入步骤的器件到位后,说明此次装配成功,否则装配失败。通过分拣机构将装配成功的和装配失败的发卡进行分开分拣。并开始下一轮。
53.如图1-7以及图11所示,一种用于孔轴装配的图像处理方法,包括以下步骤:
54.步骤一:对于装配前的单个装配孔进行检测,包括roi设置、灰度化、高斯滤波、canny边缘检测、轮廓检测、最小外接圆圆检测,求出装配孔的的直径和坐标,并与设定值相比较以判断装配孔的尺寸以及装配孔的位置是否合格;
55.步骤二:对于装配时的多个装配孔对中形成的轮廓进行检测,包括roi设置、灰度化、高斯滤波、canny边缘检测、查找轮廓和求轮廓面积,将轮廓面积与设定值比较,以判断能否进行轴装配。
56.步骤三:对于装配后的销轴进行检测,包括roi设置、灰度化、霍夫梯度变换,求销轴的的直径和坐标,以判断装配是否合格。
57.步骤一对于装配前的单个装配孔进行检测,具体包括:
58.2.1roi设置
59.基于装配孔误差范围,通过rect()函数设置roi区域;
60.2.2灰度化
61.对于拍摄的rgb图像用cvtcolor()函数,第三个参数设置为 color_bgr2gray进行图像灰度化转换;
62.对于拍摄的rgb图像用(1)式进行图像灰度化转换:
63.gray(i,j)=(r(i,j)*299 g(i,j)*587 b(i,j)*114 500)/1000
ꢀꢀ
(1)
64.2.3高斯滤波
65.调用gaussianblur()函数对图像f(x,y)进行高斯滤波平滑处理;
66.对与图像f(x,y)进行高斯滤波平滑处理,高斯模板由公式(2)中的二维高斯函数确定:
[0067][0068]
高斯模板取高斯核3*3,σ=0.8,经过二维高斯函数计算和四舍五入,添加系数可得高斯模板
[0069][0070]
取滤波的像素点为e,则
[0071][0072]
用公式(3)中的高斯模板遍历图像f(x,y)即可完成高斯滤波。
[0073]
2.4canny边缘检测
[0074]
对于平滑后的图像调用canny()函数对图像进行边缘检测;
[0075]
2.5查找轮廓
[0076]
将边缘检测后的二值图像输入到findcontours()函数中以输出点集,求最小外接圆minenclosingcircle()函数和椭圆检测fitellipse()函数都需要输入点集来进行处理。
[0077]
2.6最小外接圆
[0078]
通过实验验证,最小外接圆检测圆在合理设置参数后,有着高灵敏度和稳定度的优点,通过调用minenclosingcircle()函数求最小外接圆;将返回的圆的直径和坐标与设定值相比较以判断装配孔的尺寸以及装配孔的位置是否合格。
[0079]
步骤二对于装配时的多个装配孔对中形成的轮廓进行检测,具体包括:
[0080]
3.1图像预处理
[0081]
roi设置、灰度化、高斯滤波、canny边缘检测过程同步骤一;
[0082]
3.2查找轮廓
[0083]
先调用findcontours()函数中输出roi区域轮廓点集,再调用fitellipse()函数在findcontours()函数查找能够拟合出椭圆的轮廓,且该椭圆的圆心坐标和长短轴在限
制范围内,则该多重约束下的轮廓就是该多装配孔相交的轮廓;
[0084]
3.3求面积
[0085]
通过调用contourarea()函数求出轮廓的面积,并与设定值比较,以判断能否进行轴装配。
[0086]
findcontours函数为opencv中的轮廓检测算法,其原理是:对于一副二值图像f(i,j),使用光栅扫描法扫描整幅图像,当扫描到某个像素点的灰度值 f(i,j)≠0时执行如图10所示的步骤,设当前跟踪的边界的编号nbd=1,上一个边界编号lnbd=1,每次扫描到图片的新行的起始位置时,将lnbd重置为1。最后将轮廓信息以vector容器储存。通过使用contourarea函数和求得的轮廓信息即可求出两对圆孔相交的面积。
[0087][0088]
步骤三对于装配后的销轴进行检测,具体包括:
[0089]
4.1图像预处理
[0090]
roi设置、灰度化处理过程同步骤一;
[0091]
4.2霍夫梯度变换
[0092]
对于灰度图像调用houghcircles()即可检测销轴圆,对于返回的圆的直径和坐标与设定值相比较以判断装配是否合格。
[0093]
对图像进行高斯滤波变换后需要进行求梯度值g和梯度方向θ:
[0094][0095][0096]
在图像中用sobel算子进行卷积求梯度值和梯度方向,若要对像素点e求其梯度值和梯度方向,则像素点e在x和y方向的梯度值分别为:
[0097][0098][0099]
再根据公式(5)和公式(6)求出梯度值和梯度方向,遍历每个像素点,在每个像素点的梯度方向进行一次累加,最后累加值大的便是可能的圆心;再计算图中每个非零点到圆心的距离,并进行投票,最后投票数最高的便是这个圆的半径,最后确定一个圆。
[0100]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,
任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献