一种基于图像处理的非接触式测量间距的方法

文档序号:1534009 发布日期:2020-02-14 浏览:49次 >En<

阅读说明:本技术 一种基于图像处理的非接触式测量间距的方法 (Image processing-based non-contact distance measuring method ) 是由 闵慧 艾米尔 强豪 张诚威 于 2019-11-18 设计创作,主要内容包括:本发明公开了一种基于图像处理的非接触式测量间距的方法,首先,激光扫描目标物体,将摄像头对准光线使物体出现在屏幕中间,抓拍图片image;对图片image进行图像预处理,得到光线图像gauss_gray;然后,削弱gauss_gray中的全部光线的强度,减少由于物体反射造成的误差,得到待处理的最亮光线图像narrow_img,去除图像中多余光线只留下测量间距的光线,用于计算缝隙实际距离;最后,通过图像X轴和Y轴的像素比计算所测间隙的像素值,与实际像素点代表的距离值进行公式换算,计算大于T的像素点数量,大于像素值的像素点视为缝隙所在位置。本发明无需搭建支撑固定摄像头与间距的距离,可以有效的测量出工业生产中的细小缝隙距离,提高了工业生产的工作效率,减少误差。(The invention discloses a non-contact distance measuring method based on image processing, which comprises the following steps of firstly, scanning a target object by laser, aligning a camera to light rays to enable the object to appear in the middle of a screen, and capturing a picture image; carrying out image preprocessing on the image to obtain a light ray image gauss _ gray; then, weakening the intensity of all light rays in the gauss _ gray, reducing errors caused by object reflection, obtaining a brightest light ray image narrow _ img to be processed, removing redundant light rays in the image, only leaving light rays at a measurement interval, and calculating the actual distance of the gap; and finally, calculating the pixel value of the measured gap according to the pixel ratio of the X axis and the Y axis of the image, performing formula conversion on the pixel value and the distance value represented by the actual pixel point, calculating the number of the pixel points larger than T, and regarding the pixel points larger than the pixel value as the positions of the gaps. According to the invention, the distance between the fixed camera and the interval is not required to be built, the distance of a small gap in industrial production can be effectively measured, the working efficiency of industrial production is improved, and the error is reduced.)

一种基于图像处理的非接触式测量间距的方法

技术领域

本发明属于基于图像处理的激光测距技术领域,特别涉及一种基于图像处理的非接触式测量间距的方法。

背景技术

传统的测量缝隙间距的方法有通过测量电容或电流的变化计算出缝隙的间距,传统的电容测量方法利用绝缘电极与金属形成的电容进行测量的,电容发生变化的区域就是需要测量的间距,通过时间和速度的公式计算出准确的间距。也有基于图像处理的激光测距技术方法是利用两束呈一定夹角的激光照射被测物体,利用图像传感器采集被测物体表面反射的激光光斑图像,通过上位机对图像的分析处理获得两个激光光斑的间距,拟合出光斑间距与被测距离之间的数学关系;这种测量方式适用于距离范围较大的物体,并且所测数据并不能精确到毫米,误差在两厘米左右,对于测量细小缝隙无法满足要求。传统的方法在测量方式上存在的影响因素较多,会导致最终结果的偏差,通过对激光成像图的处理加强了距离计算的准确度,通过检测光线的形变有效的降低了间距测量出现的误差。

发明内容

发明目的:本发明提供一种基于图像处理的非接触式测量间距的方法,增强了缝隙测量的精度和准度度,加入图像处理技术提升了计算速度,减弱了外界环境对测量结果造成的影响。

技术方案:本发明提出一种基于图像处理的非接触式测量间距的方法,包括以下步骤:

(1)激光扫描目标物体,将摄像头对准光线使物体出现在屏幕中间,抓拍图片image;

(2)对图片image进行图像预处理,通过高斯滤波和灰度处理方法,得到光线图像gauss_gray;

(3)对图片gauss_gray做图像处理,削弱gauss_gray中的全部光线的强度,减少由于物体反射造成的误差,得到待处理的最亮光线图像narrow_img,去除图像中多余光线只留下测量间距的光线,用于计算缝隙实际距离;

(4)通过图像X轴和Y轴的像素比计算所测间隙的像素值,与实际像素点代表的距离值进行公式换算,定义像素值T,从图像的中沿X轴正向和负向遍历查找大于T的像素点,沿Y轴正向和负向遍历查找大于T的像素点,计算大于T的像素点数量,大于像素值的像素点视为缝隙所在位置。

进一步地,所述步骤(1)包括以下步骤:

(11)拍照过程中使用绿色LED背景灯,用于消除在低光照下的白噪声和高强度激光束,增加在高光照下的激光线强度;

(12)抓拍图像使激光线出现在液晶屏的中心视点上,用引导线和圆来定位激光在目标上的位置;

(13)规定gamma值调节人眼视觉与图像显示的舒适度,调整图像位置,截取以屏幕中心为圆心半径为150mm的圆形图片image。

进一步地,所述步骤(2)包括以下步骤:

(21)从图像Image中提取直线作为新图像中的水平线,定义为图像的X轴;

(22)通过numpy()函数生成mask图像,通过np.zeros()函数生成一个640*480的矩阵图像,填充为0(黑色),在ROI区域填充步骤(1)得到的图像image,得到掩膜处理后的图像out;

(23)通过GaussianBlur函数处理图像out,得到待处理图像new_frame;

(24)通过cvtColor函数处理图像new_frame,得到待处理灰度图像gray;

(25)通过inRange函数设置阈值去除图像gray的背景,得到光线清晰的待处理图像mask_white;

(26)通过GaussianBlur函数对除去背景的图像mask_white进行高斯滤波处理,得到待处理的图像gauss_gray。

进一步地,所述步骤(3)包括以下步骤:

(31)定义像素值T,提取gauss_gray图像中光线像素值大于T的点,将低于阈值的点的像素值改成0(黑色),得到图像narrow_img;

(32)通过Canny算子处理图像gauss_gray,得到光线笔直的图像dst,通过cvtColor()函数将图像dst转换成RGB图像;

(33)通过HoughLinesP()函数检测直线的变形,在变形前找出直线两侧的位置点;

(34)定义函数get_angle()计算位置点与X轴的角度,通过np.math.atan2()函数计算位置点与X轴的弧度;

(35)定义函数line_angle()调用函数get_angle()通过计算位置点确定光线与X轴的角度;

(36)沿X轴遍历查找直线两侧的位置点,计算直线的角度,删除图像中低于160°的直线;

(37)统计绿色背景下的直线数量,确认留下缝隙表面的两条直线;

(38)定义函数gap_find()函数找到两条在同一角度的直线,遍历图像中X轴和Y轴的像素点,计算光线的角度,找到两条角度差小于10的光线,就是最终用于计算的目标光线。

进一步地,所述步骤(4)包括以下步骤:

(41)定义函数find_gap_middle()函数计算缝隙的像素,定义像素值T,从图像的中点沿X轴正向和负向遍历查找大于T的像素点,沿Y轴正向和负向遍历查找大于T的像素点,计算大于T的像素点数量;

(42)定义函数gap_inside()计算缝隙内部的距离;

(43)定义函数gap_flush()计算缝隙深度的值;

(44)定义函数excel()输出测量的数值保存至excel文档。

有益效果:与现有技术相比,本发明的有益效果:在激光测距的基础上加上了图像处理技术,相比于传统的通过图像传感器的激光测距方法,对于所能测量的间距范围进行了增强,可以用于测量1-10mm的细小间隙,可用于工业精密仪器的生产校对,通过技术降低了人工校对可能出现的误差,提高了工业生产的效率,相比传统的激光测距方法,本发明方法在抓拍照片到测算出实际距离共耗时0.79秒,可反复多次测量,误差在于0.01mm。

附图说明

图1为本发明的流程图。

具体实施方式

下面结合附图,对本发明作进一步详细说明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。如图1所示,本发明包括以下步骤:

步骤1:激光扫描目标物体,将摄像头对准光线使物体出现在屏幕中间,抓拍图片image。

步骤1.1:拍照过程中使用绿色LED背景灯,用于消除在低光照下的白噪声和高强度激光束,增加在高光照下的激光线强度。

步骤1.2:抓拍图像使激光线出现在液晶屏的中心视点上,用引导线和圆来定位激光在目标上的位置。

步骤1.3:规定gamma值调节人眼视觉与图像显示的舒适度,调整图像位置,截取以屏幕中心为圆心半径为150mm的圆形图片image。

步骤2:对图片image进行图像预处理,通过高斯滤波和灰度处理方法,得到光线图像gauss_gray。

步骤2.1:从图像Image中提取直线作为新图像中的水平线,定义为图像的X轴。

步骤2.2:通过numpy()函数生成mask图像,通过np.zeros()函数生成一个640*480的矩阵图像,填充为0(黑色),在ROI区域填充步骤1得到的图像image,得到掩膜处理后的图像out。

步骤2.3:通过GaussianBlur函数处理图像out,得到待处理图像new_frame。

步骤2.4:通过cvtColor函数处理图像new_frame,得到待处理灰度图像gray。

步骤2.5:通过inRange函数设置阈值去除图像gray的背景,得到光线清晰的待处理图像mask_white。

步骤2.6:通过GaussianBlur函数对除去背景的图像mask_white进行高斯滤波处理,得到待处理的图像gauss_gray。

步骤3:对图片gauss_gray做图像处理,削弱gauss_gray中的全部光线的强度,减少由于物体反射造成的误差,得到待处理的最亮光线图像narrow_img,去除图像中多余光线只留下测量间距的光线,用于计算缝隙实际距离。

步骤3.1:定义像素值T,此处T=5,提取gauss_gray图像中光线像素值大于5的点,将低于阈值的点的像素值改成0(黑色),得到削弱光线亮度后的激光图像narrow_img。

步骤3.2:通过Canny算子处理图像gauss_gray,得到光线笔直的图像dst,通过cvtColor()函数将图像dst转换成RGB图像。

步骤3.3:通过HoughLinesP()函数检测直线的变形,在变形前找出直线两侧的位置点;以1为步长,pi/180为角度在变形前找出直线两侧的位置点。

步骤3.4:定义函数get_angle()计算位置点与X轴的角度,通过np.math.atan2()函数计算位置点与X轴的弧度。

步骤3.5:定义函数line_angle()调用函数get_angle()通过计算位置点确定光线与X轴的角度。

步骤3.6:沿X轴遍历查找直线两侧的位置点,计算直线的角度,删除图像中低于160°的直线,并认为是不可用于目标测量的无效光线。

步骤3.7:统计绿色背景下的直线数量,确认留下缝隙表面的两条直线;计算最终成像中的光线数量,确认是否存在用于测距的两条激光,如果检测到的光线数量小于2则返回上述步骤3.3,如果光线数量大于等于2且小于等于4则执行下一步。

步骤3.8:定义函数gap_find()函数找到两条在同一角度的直线,遍历图像中X轴和Y轴的像素点,计算光线的角度,找到两条角度差小于10的光线,就是最终用于计算的目标光线。

步骤4:通过图像X轴和Y轴的像素占比计算所测间隙的像素值,与实际像素点代表的距离值进行公式换算,得到所测间距真实数据。

通过图像X轴和Y轴的像素比计算所测间隙的像素值,与实际像素点代表的距离值进行公式换算(1)(2):

Figure BDA0002276903200000051

Figure BDA0002276903200000052

其中x表示缝隙的间距,y表示缝隙边缘的高度差,p表示缝隙占据的像素点的数量,a表示横向的像素值,n表示横向的像素点数量,b表示纵向的像素值,m表示纵向的像素点数量。

步骤4.1:定义函数find_gap_middle()函数计算缝隙的像素,定义像素值T,从图像的中点沿X轴正向和负向遍历查找大于T的像素点,沿Y轴正向和负向遍历查找大于T的像素点,计算大于T的像素点数量。定义像素值T=5,从图像的中点(X/2,Y/2)沿X轴正向和负向35个像素点遍历查找像素值大于5的像素点,再沿Y轴正向和负向25个像素点遍历查找像素值大于5的像素点,最终计算像素值大于5的横向和纵向所占的像素点数量。

步骤4.2:定义函数gap_inside()计算缝隙内部的距离,即步骤4.1计算出的横向所占的像素点的数量。

步骤4.3:定义函数gap_flush()计算缝隙深度的值,即步骤4.1计算出的纵向所占的像素点的数量。

步骤4.4:定义函数excel()输出测量的数值保存至excel文档,将测量数据gap_inside、gap_flush以及测量时间通过filename()函数写入自定义的excel表格,实现数据的导出。

通过3568次实际测量,通过测量不同材质表面的缝隙,对不同背景灯光下激光的图像处理效果,结合两者实验的效果数据对激光测量间隙方法进行改善。改进的激光测量方法在保证了计算速度的同时也提高了测量数据的准确度,在实际检测中达到了98%的准确度。

9页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:相控阵雷达发射波形幅度加权方法及相控阵雷达

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!