本发明涉及焊缝跟踪技术领域,特别是该领域的一种焊缝图像处理方法及系统。
背景技术:
在制造领域,经常会有焊接作业,在焊接作业的过程中,为了提高焊接的质量,需要实现自主焊接,即需要对焊缝进行精确跟踪与识别。现有的常用的焊缝跟踪方法是:拍摄焊缝图像;对焊缝图像进行处理,得到焊缝中心线。精确的获取焊缝特征信息对实现焊缝跟踪及自主焊接具有重要意义。
焊缝图像处理的方法主要有:高通滤波法、均值滤波、高斯滤波、梯度算子、拉普拉斯算子等。高通滤波法消除噪声的同时从某种程度而言也会将与噪声频率类似的图像信息滤除掉,导致特征信息缺失,降低图像的精度,以至于在很多情况下滤波鲁棒性差。均值滤波不能很好的保护光条的边缘信息,会让图像不清晰。高斯滤波只对高斯噪声的平滑效果好,也不能保护边缘信息。梯度算子和拉普拉斯算子处理效果比较差,不能够很高的提取图像的边缘信息,精确度不够高。
技术实现要素:
本发明所要解决的技术问题是提供一种焊缝图像处理方法及系统,能够有效地提高焊接中的焊缝中心线提取的准确性及抗干扰能力。
本发明解决上述技术问题的技术方案如下:一种焊缝图像处理方法,包括以下步骤,
s1,获取焊缝的原始图像;
s2,对所述原始图像进行灰度变换,获得灰度图像以及对应的灰度直方图;
s3,根据所述灰度直方图对所述灰度图像进行阈值处理,获得阈值图像;
s4,对所述阈值图像进行中值滤波处理,获得滤波图像;
s5,对所述滤波图像进行先腐蚀后细化的形态学处理,获得多条焊缝中心线;
s6,基于最小二乘法分别求取多条所述焊缝中心线中相邻两条所述焊缝中心线之间的拐点,获得焊缝的特征信息。
本发明的有益效果是:本发明一种焊缝图像处理方法,先获取焊缝原始图像;然后对原始图像进行灰度变换,获取图像的灰度直方图,接着根据图像的灰度直方图对原始图像进行阈值处理,接着对阈值处理图像进行中值滤波处理,之后对图像进行先腐蚀后细化的形态学处理获取图像中心线,最后基于最小二乘法求中心线相邻线段的拐点,确定焊缝中心线各交点的位置;应用本发明提供的一种焊缝图像处理方法比较能够在一定程度上提高焊缝中心线的提取精度。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述s3还包括,对所述阈值图像进行边缘提取处理;
所述s4还包括,对进行边缘提取处理后的阈值图像进行中值滤波处理,获得滤波图像。
进一步,具体采用罗伯特算子、索贝尔算子、prewitt算子、log算子以及canny算子中的任一算子对阈值处理后的图像进行边缘提取。
进一步,所述s3具体为,分割提取所述灰度图像中感兴趣的区域,基于所述灰度直方图对所述灰度图像中的感兴趣区域进行阈值处理,得到所述阈值图像,其中,所述阈值处理具体为二值化处理,所述阈值图像具体为黑白二值图像。
进一步,所述s4具体为,提取所述阈值图像中的感兴趣区域,基于非线性方法对所述阈值图像中的感兴趣区域进行中值滤波,得到滤波图像。
进一步,所述s6具体为,基于最小二乘法对多条所述焊缝中心线进行直线拟合,分别求出相邻两条所述焊缝中心线之间的拐点,其中,所述拐点具体为相邻两条所述焊缝中心线之间的交点,所述拐点即为焊缝的特征点,焊缝的特征点的信息即为焊缝的特征信息。
进一步,在所述s6后还包括s7,
s7,获取焊炬的位置信息和焊缝的特征信息,并根据焊炬的位置信息和焊缝的特征信息计算焊炬与焊缝之间的偏差量,且根据所述偏差量调整焊炬的位置。
基于上述一种焊缝图像处理方法,本发明还提供一种焊缝图像处理系统。
一种焊缝图像处理系统,包括图像获取模块、灰度变换模块、阈值处理模块、滤波处理模块、形态学处理模块和拐点计算模块,
所述图像获取模块,其用于获取焊缝的原始图像;
所述灰度变换模块,其用于对所述原始图像进行灰度变换,获得灰度图像以及对应的灰度直方图;
所述阈值处理模块,其用于根据所述灰度直方图对所述灰度图像进行阈值处理,获得阈值图像;
所述滤波处理模块,其用于对所述阈值图像进行中值滤波处理,获得滤波图像;
所述形态学处理模块,其用于对所述滤波图像进行先腐蚀后细化的形态学处理,获得多条焊缝中心线;
所述拐点计算模块,其用于基于最小二乘法分别求取多条所述焊缝中心线中相邻两条所述焊缝中心线之间的拐点,获得焊缝的特征信息。
本发明的有益效果是:本发明一种焊缝图像处理系统,先获取焊缝原始图像;然后对原始图像进行灰度变换,获取图像的灰度直方图,接着根据图像的灰度直方图对原始图像进行阈值处理,接着对阈值处理图像进行中值滤波处理,之后对图像进行先腐蚀后细化的形态学处理获取图像中心线,最后基于最小二乘法求中心线相邻线段的拐点,确定焊缝中心线各交点的位置;应用本发明提供的一种焊缝图像处理方法比较能够在一定程度上提高焊缝中心线的提取精度。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述阈值处理模块还用于,对所述阈值图像进行边缘提取处理;
所述滤波处理模块还用于,对进行边缘提取处理后的阈值图像进行中值滤波处理,获得滤波图像。
进一步,所述所述阈值处理模块具体用于,采用罗伯特算子、索贝尔算子、prewitt算子、log算子以及canny算子中的任一算子对阈值处理后的图像进行边缘提取。
附图说明
图1为本发明一种焊缝图像处理方法的流程图;
图2为利用本发明方法进行处理的图像状态变化过程图;
图3为本发明方法中边缘提出处理的效果对比图;
图4为本发明一种焊缝图像处理系统的结构框图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,一种焊缝图像处理方法,包括以下步骤,
s1,获取焊缝的原始图像;
s2,对所述原始图像进行灰度变换,获得灰度图像以及对应的灰度直方图;
s3,根据所述灰度直方图对所述灰度图像进行阈值处理,获得阈值图像;
s4,对所述阈值图像进行中值滤波处理,获得滤波图像;
s5,对所述滤波图像进行先腐蚀后细化的形态学处理,获得多条焊缝中心线;
s6,基于最小二乘法分别求取多条所述焊缝中心线中相邻两条所述焊缝中心线之间的拐点,获得焊缝的特征信息。
在本具体实施例中:
图2给出了利用本发明方法进行处理的图像状态变化过程图。
(1)获取焊缝原始图像:
这里所说的焊缝原始图像指的是包含焊接过程中的焊缝的图像。实际应用中,处理系统获取的焊缝图像可以是接收图像采集器获得的,也可以是接收外界输入获得的,当然,在具体的应用场景中,还可以在处理系统上设置激光传感器等图像采集器,使得处理系统可以直接获得焊缝图像。
(2)对所述原始图像进行灰度变换,获得灰度图像以及对应的灰度直方图:
摄像头拍摄的图像是24位真彩色bmp格式图像,bmp位图像素在计算机中的存贮顺序为b(蓝)g(绿)r(红),即先存贮蓝分量,接着存绿分量,后存红分量,转换为灰度图像可以减少计算机的运算量。转换后的灰度图像的各像素用一个字节表示该点的灰度值,其值在0~255之间,数值越大,该点越亮,即越白,数值越小则越黑。利用绘制图像灰度直方图帮助确定图像进行二值化时所需要的灰度阈值。
(3)根据所述灰度直方图对所述灰度图像进行阈值处理,获得阈值图像:
原始图像经过灰度处理后就含有不同级别的灰度值,而图像阈值处理就是将处理过的图像再转换成黑白二值图像,即图像的像素只有亮点和暗点。灰度的阈值变换能够把一幅灰度图像转变成黑白二值图像。它的操作步骤是提前确定好阈值,然后对图像进行处理,若图像中某一个像素的灰度值比这个阈值小,那么把这个像素的灰度值设定成0,不然灰度值设定成255。
灰度阈值变换的转换函数关系式如下所示:
其中,t为提前确定的阈值。后续的图像处理是建立在经过二值化处理的图像上的。
(4)对所述阈值图像进行中值滤波处理,获得滤波图像:
由于在焊接现场有弧光、电、磁、烟尘等干扰,摄像机采集到的图像会受到相应的影响。这些噪声会影响图像的进一步处理,因此需要对图像进行滤波处理,以此来降低图片中干扰的噪声信号。中值滤波是一种非线性的信号处理方法,一般采用一个含有奇数个点的滑动窗口,用窗口中各点灰度值的中值来替代指定点(一般是窗口中心点)的灰度值。中值是指按大小排序后中间的数值,有5×5邻域和3×3邻域。这种算法对于消除脉冲干扰和孤立噪声,同时克服图像细节的模糊特别有效。在使用中值滤波操作时,最重要的就是能够选取适当的滤波窗口。如果滤波窗口过小,则除噪效果较差,滤波不明显。如果滤波窗口过大,则图像模糊程度会增加,为后面处理带来影响。
(5)对所述滤波图像进行先腐蚀后细化的形态学处理,获得多条焊缝中心线:
实际应用中,在经过之前的处理后,可以借助先腐蚀后细化的形态学处理来获取焊缝图像的中心线,中心线的数量可以根据实际计算过程确定。
a和b是z2中的集合,则b对a的腐蚀可表示为:
这个公式表明了b对a腐蚀指的是一个用z平移的b包含在a中的所有的点的集合里面。
细化操作的目的是提取图像的骨架,即把在原图像中的像素条宽度大于1个像素的像素条细化为一个像素的大小。提前对图像实施细化处理能够凸显形状特点并且消除多余的信息。
(6)基于最小二乘法分别求取多条所述焊缝中心线中相邻两条所述焊缝中心线之间的拐点,获得焊缝的特征信息:
经过之前的处理后会得到一些断断续续的线段,接着就可以基于最小二乘法对那些线段进行直线拟合,分别求出相邻两条所述焊缝中心线之间的拐点,即焊缝的特征点,获取特征信息。
此处的中心思想是对已知线段和它相邻的线段分别进行最小二乘法直线拟合,然后根据建系得到的直线方程求出两直线的交点,即为中心线的拐点,同理可求出所有的拐点。
(7)获取焊炬的位置信息;基于所述位置信息计算所述焊炬与所述焊缝之间的偏差量;判断所述偏差量是否小于预设数值,若否,则发送所述偏差量至焊炬控制器,以供所述焊炬控制器调整所述焊炬的位置。
在本具体实施例中,若s4中滤波后的图像特征不够清晰,可以用罗伯特算子、索贝尔算子、prewitt算子、log算子以及canny算子对s3中阈值处理后的图像进行边缘提取,再执行s4,若图像够清晰则可不用。
进行边缘提取的具体步骤为:将对阈值变换后的图像进行图像边缘提取,分别用罗伯特算子、索贝尔算子、prewitt算子、log算子以及canny算子对图像进行锐化处理;罗伯特算子、索贝尔算子、prewitt算子、log算子以及canny算子对图像进行锐化处理的效果对比图如图3所示;罗伯特算子、索贝尔算子和prewitt算子法是基于算子的一阶微分的图像边缘检测算子。log算子是对图像进行基于偏导运算的拉普拉斯运算。canny算子首先是利用高斯函数来平滑图像,然后用一阶微分算子计算出梯度值的最大导数值。通过两个阈值来抑制梯度极大值,使得它具有较高的边缘定位精度、较强的抗噪声能力,完美得平衡了精度与噪声的关系,因此,本具体实施例选用canny算子法作为边缘提取方法。
本发明一种焊缝图像处理方法,先获取焊缝原始图像;然后对原始图像进行灰度变换,获取图像的灰度直方图,接着根据图像的灰度直方图对原始图像进行阈值处理,接着对阈值处理图像进行中值滤波处理,之后对图像进行先腐蚀后细化的形态学处理获取图像中心线,最后基于最小二乘法求中心线相邻线段的拐点,确定焊缝中心线各交点的位置;本发明建立了一种焊缝图像处理方法,只需输入焊缝原始图像就能很快地得到焊缝图像的特征信息,具有较高的准确性和快速性,解决现有焊缝特征提取准确性不高的问题。
基于上述一种焊缝图像处理方法,本发明还提供一种焊缝图像处理系统。
如图4所示,一种焊缝图像处理系统,包括图像获取模块、灰度变换模块、阈值处理模块、滤波处理模块、形态学处理模块和拐点计算模块,
所述图像获取模块,其用于获取焊缝的原始图像;
所述灰度变换模块,其用于对所述原始图像进行灰度变换,获得灰度图像以及对应的灰度直方图;
所述阈值处理模块,其用于根据所述灰度直方图对所述灰度图像进行阈值处理,获得阈值图像;
所述滤波处理模块,其用于对所述阈值图像进行中值滤波处理,获得滤波图像;
所述形态学处理模块,其用于对所述滤波图像进行先腐蚀后细化的形态学处理,获得多条焊缝中心线;
所述拐点计算模块,其用于基于最小二乘法分别求取多条所述焊缝中心线中相邻两条所述焊缝中心线之间的拐点,获得焊缝的特征信息。
所述阈值处理模块还用于,对所述阈值图像进行边缘提取处理;所述滤波处理模块还用于,对进行边缘提取处理后的阈值图像进行中值滤波处理,获得滤波图像。
所述所述阈值处理模块具体用于,采用罗伯特算子、索贝尔算子、prewitt算子、log算子以及canny算子中的任一算子对阈值处理后的图像进行边缘提取。
本发明一种焊缝图像处理系统,先获取焊缝原始图像;然后对原始图像进行灰度变换,获取图像的灰度直方图,接着根据图像的灰度直方图对原始图像进行阈值处理,接着对阈值处理图像进行中值滤波处理,之后对图像进行先腐蚀后细化的形态学处理获取图像中心线,最后基于最小二乘法求中心线相邻线段的拐点,确定焊缝中心线各交点的位置;应用本发明提供的一种焊缝图像处理方法比较能够在一定程度上提高焊缝中心线的提取精度。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。