一种基于图像处理的表面擦伤缺陷联通的算法制造技术

技术编号:20161829 阅读:24 留言:0更新日期:2019-01-19 00:14
本发明专利技术公开了一种基于图像处理的表面擦伤缺陷联通的算法,首先识别出所有的缺陷,剔除掉擦伤缺陷中个别面积很小的缺陷,既没有对整个擦伤缺陷的造成很大的影响,同时也避免了小缺陷和线段生成的二次缺陷对整个擦伤缺陷带来的影响;然后对剩余的缺陷在一定的条件下进行相互的联通,通过计算相邻两缺陷轮廓间最短距离的两个点的连线,并对上述两个点用直线进行连接。由此,联通后的擦伤区域在尽可能不改变其本身的各种性质的条件下,成为一个独立的完整缺陷,且能代表其中的原有独立缺陷的特点;在后续的图像处理中,可对其二值图像进行求取相关特征描述,构建特征向量,由相关分类器进行识别判断缺陷的类型。

【技术实现步骤摘要】
一种基于图像处理的表面擦伤缺陷联通的算法
本专利技术涉及图像处理领域,更具体地,涉及一种基于图像处理的表面擦伤缺陷联通的算法。
技术介绍
随着生产技术和工艺的发展,人们对产品外观质量给予了足够的重视,特别是对于产品表面缺陷的考察,也日渐成为各行业的关注点。表面的缺陷不仅影响了包装、工艺品等这些以外观为重的产品的美观,还对某些金属、光纤等产品的性能产生了很大的影响。目前,国内越来越多的企业运用机器视觉等相关技术,对生产线上的产品进行表面缺陷的在线检测。其关键技术是将缺陷区域从图像中分割出来后,进行图像的预处理,后对缺陷进行特征描述,进而利用各种分类器来识别缺陷的类型。但对于少量类型的缺陷,如擦伤缺陷。在进行图像预处理时,用常规的形态学操作或者联通域操作将擦伤缺陷进行联通,会大大改变缺陷其本身实际的几何、形状等性质,导致后续的缺陷类型识别不准确。
技术实现思路
本专利技术为克服上述现有技术所述对于表面擦伤缺陷联通造作的不足,在尽可能小的改变擦伤缺陷实际性质的前提下,对离散的擦伤缺陷进行联通,使之成为一个独立完整的缺陷,提供一种基于图像处理的表面擦伤缺陷联通的算法。为解决上述技术问题,本专利技术的技术方案如下:一种基于图像处理的表面擦伤缺陷联通的算法,包括以下步骤:S1.获取图像,设定最小缺陷面积阈值δ,使用图像轮廓查找算法对图像进行缺陷轮廓识别,并将图像中面积小于δ的缺陷移除;S2.初始化参数,对每个缺陷轮廓进行标记,记为contours[i],i代表当前第i+1的缺陷轮廓;0<=i<k,其中,k为缺陷轮廓的总数,每个缺陷轮廓均由一定数目的点组成;S3.对每个缺陷轮廓进行和其他缺陷轮廓遍历比较的操作,计算相邻2个缺陷轮廓间的最小距离,并且将距离最小时的2个点进行直线连接,使相邻的2个缺陷轮廓联通、合并;S4.输出经过联通缺陷的图像,算法结束。进一步地,所述步骤S1中,缺陷移除的具体方式为如下:计算缺陷面积,与所述阈值δ进行比较,若小于δ,则将该区域的灰度值设置为0;若缺陷面积大于δ,则不做处理,保留原本图像的灰度值。进一步地,所述步骤S2中,初始化参数具体还包括以下步骤:S201.设定最小距离minDistance,设i=p=q=0。进一步地,所述步骤S3采用OpenCV的函数进行遍历比较,在OpenCV中,contours.size()代表图像中所有的离散的缺陷轮廓的数量,contours[i].size()代表为第i个轮廓中点集的数目,步骤S3的具体过程包括以下步骤:S301.判断i<contours.size()-1是否成立,如果是,则进入步骤S302,否则进入步骤S4;S302.判断p<contours[i].size()是否成立,如果是,则进入步骤S303,否则进入步骤S307;S303.判断q<contours[i+1].size()是否成立,如果是,则进入步骤S304;否则将p递增1,进入步骤S302;S304.计算p点和q点之间的距离dis,将q递增1;S305.判断dis<minDistance,如果成立,则进入步骤S306,否则进入步骤S303;S306.将dis的值赋予minDistance,记录当前p点和q点的位置,进入步骤S303;S307.在图像上,将p点和q点之间用直线进行连接,将minDistance设为1000,将i递增1,进入步骤S301。与现有技术相比,本专利技术技术方案的有益效果是:本专利技术通过采用计算相邻两缺陷轮廓间最短距离的两个点的连线,从而将离散的缺陷进行联通,使多个缺陷构成一个整体,能较好地维持缺陷本身性质,便于后续对其二值图像进行求取相关特征描述,构建特征向量,继而便可由相关分类器进行识别判断缺陷的类型,增加了识别判断阶段的准确度。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是基于图像处理的表面擦伤缺陷联通的算法流程示意图。图2是剔除小缺陷前和剔除后的效果图。图3是缺陷联通后的效果图。具体实施方式附图仅用于示例性说明,不能理解为对本专利的限制;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。下面结合附图和实施例对本专利技术的技术方案做进一步的说明。一种基于图像处理的表面擦伤缺陷联通的算法,其具体实施过程如图1所示,包括以下步骤:S1.获取图像,设定最小缺陷面积阈值δ,使用图像轮廓查找算法对图像进行缺陷轮廓识别,并将图像中面积小于δ的缺陷移除;S2.初始化参数,对每个缺陷轮廓进行标记,记为contours[i],i代表当前第i+1的缺陷轮廓;0<=i<k,其中,k为缺陷轮廓的总数,每个缺陷轮廓均由一定数目的点组成;S3.对每个缺陷轮廓进行和其他缺陷轮廓遍历比较的操作,计算相邻2个缺陷轮廓间的最小距离,并且将距离最小时的2个点进行直线连接,使相邻的2个缺陷轮廓联通、合并;S4.输出经过联通缺陷的图像,算法结束。在本实施例中,步骤S1中的缺陷移除的具体方式为如下:擦伤缺陷包含很多离散的小缺陷,将每个离散的缺陷的面积计算出来后,与所设的阈值δ进行比较,以图2中带有离散缺陷的图像为例,若小于δ,则将该区域的灰度值置为0(黑色);若面积大于δ,则不做处理,保留原本图像的灰度值(白色即缺陷)。具体的,如图2中圈出的缺陷所示,这些缺陷本属于一个擦伤缺陷,但其面积较小,若继续后续的步骤,将离散的缺陷之间用直线连接,那么可能会出现连接的线段反而会比该小缺陷的面积更大,故将其剔除掉。本实例中,设定的阈值δ为50(即50个像素),若离散的缺陷的面积(像素组成个数)小于50,则将该小区域的灰度值置为0(黑色),若其面积大于50,则不做任何处理。经次处理后,便可达到将面积较小的区域剔除掉的目的,具体的效果如图2右侧。在本实施例中,步骤S2中,初始化参数具体还包括以下步骤:S201.设定最小距离minDistance,设i=p=q=0。在本实施例中,步骤S3采用OpenCV的函数进行遍历比较,在OpenCV中,contours.size()代表图像中所有的离散的缺陷轮廓的数量,contours[i].size()代表为第i个轮廓中点集的数目,步骤S3的具体过程包括以下步骤:S301.判断i<contours.size()-1是否成立,如果是,则进入步骤S302,否则进入步骤S4;S302.判断p<contours[i].size()是否成立,如果是,则进入步骤S303,否则进入步骤S307;S303.判断q<contours[i+1].size()是否成立,如果是,则进入步骤S304;否则将p递增1,进入步骤S302;S304.计算p点和q点之间的距离dis,将q递增1;S305.判断dis<minDistance,如果成立,则进入步骤S306,否则进入步骤S303;S306.将dis的值本文档来自技高网...

【技术保护点】
1.一种基于图像处理的表面擦伤缺陷联通的算法,其特征在于,包括以下步骤:S1.获取图像,设定最小缺陷面积阈值δ,使用图像轮廓查找算法对图像进行缺陷轮廓识别,并将图像中面积小于δ的缺陷移除;S2.初始化参数,对每个缺陷轮廓进行标记,记为contours[i],i代表当前第i+1的缺陷轮廓;0

【技术特征摘要】
1.一种基于图像处理的表面擦伤缺陷联通的算法,其特征在于,包括以下步骤:S1.获取图像,设定最小缺陷面积阈值δ,使用图像轮廓查找算法对图像进行缺陷轮廓识别,并将图像中面积小于δ的缺陷移除;S2.初始化参数,对每个缺陷轮廓进行标记,记为contours[i],i代表当前第i+1的缺陷轮廓;0<=i<k,其中,k为缺陷轮廓的总数,每个缺陷轮廓均由一定数目的点组成;S3.对每个缺陷轮廓进行和其他缺陷轮廓遍历比较的操作,计算相邻2个缺陷轮廓间的最小距离,并且将距离最小时的2个点进行直线连接,使相邻的2个缺陷轮廓联通、合并;S4.输出经过联通缺陷的图像,算法结束。2.根据权利要求1所述的基于图像处理的表面擦伤缺陷联通的算法,其特征在于,所述步骤S1中,缺陷移除的具体方式为如下:计算缺陷面积,与所述阈值δ进行比较,若小于δ,则将该区域的灰度值设置为0;若缺陷面积大于δ,则不做处理,保留原本图像的灰度值。3.根据权利要求1所述的基于图像处理的表面擦伤缺陷联通的算法,其特征在于,所述步骤S2中,初始化参数具体还包括以下步骤:S201.设定最小距离minDistance,设i=p=q=0。4.根据权利要求1所述的基于图像...

【专利技术属性】
技术研发人员:王柯赛张洪蒋梁中林金燕黄雄
申请(专利权)人:广东工业大学
类型:发明
国别省市:广东,44

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

1