一种基于OpenCV的高反光瓶盖缺陷检测方法转让专利

申请号 : CN202111222247.4

文献号 : CN114018946B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 朱大虎张曙文杨永佳涂秋平田大庄庄可佳

申请人 : 武汉理工大学

摘要 :

本发明公开了一种基于OpenCV的高反光瓶盖缺陷检测方法,包括瓶盖端面检测和瓶盖侧面检测,首先采用相机对高反光瓶盖端部进行拍照,得到端面图像,利用边缘检测并拟合提取瓶盖边界曲线,利用OpenCV库中函数阈值分割寻找边界曲线内的缺陷,如果有缺陷,通过OpenCV库中函数将缺陷显示在图像上;之后采用至少四个方向对高反光瓶盖的侧面进行拍照,得到侧面图像,利用已知模板图像提取图像中瓶盖侧面的目标区域,并对目标区域进行图像预处理,之后利用OpenCV库中函数对侧面图像进行阈值分割识别缺陷,并将缺陷显示在侧面图像上。本发明计算效率高,所需算力小,能自动识别出塑料瓶盖上的划痕、凹坑等缺陷,并有效的定位缺陷的位置,大幅度提高了生产效率。

权利要求 :

1.一种基于OpenCV的高反光瓶盖缺陷检测方法,其特征在于,包括以下步骤:步骤K1、瓶盖端面检测:采用相机对高反光瓶盖端部进行拍照,得到端面图像,利用高反光瓶盖端面缺陷检测方法对高反光瓶盖的端面图像进行检测,如果瓶盖端面含有缺陷则判断其为端面不合格产品,并缺陷标记在端面图像中,如果不含缺陷则进行瓶盖侧面检测;

步骤K2、瓶盖侧面检测,采用至少四个方向对高反光瓶盖的侧面进行拍照,得到侧面图像,利用高反光瓶盖侧面缺陷检测方法对高反光瓶盖的侧面图像进行检测,如果瓶盖侧面含有缺陷则判断其为侧面不合格产品,并将缺陷标记在侧面图像中,如果瓶盖侧面图像都检测完,全部不含缺陷,则将该瓶盖标记为合格产品,重复步骤K1和步骤K2进行下一个瓶盖产品检测;

所述高反光瓶盖端面缺陷检测方法包括如下步骤:

步骤1、将拍摄得到的瓶盖端面图像进行灰度处理,得到瓶盖的端部灰度图;

步骤2、边缘提取,对端部灰度图利用阈值分割的方法寻找出瓶盖端面的边界曲线,然后将所有的边界曲线长度排序,取最长的边界以及第二长的边界的边界曲线;

步骤3、数据转换,将获得的边界曲线转换成含有(x,y)形式的坐标列表,并从坐标列表中等距的取出M个坐标点数据作为拟合数据点集Q,M大于3;

步骤4、通过上述的M个坐标点数据利用圆拟合方法寻找边界的拟合圆,得到内边界圆和外边界圆;

步骤5、利用拟合的边界圆在步骤1中得到的端部灰度图上做掩膜操作分别得到内圆以内的内圆图像和内外圆之间的环形图像;

步骤6、寻找目标图像,利用OpenCV库中的cv2.threshold函数在步骤5中得到的内圆图像以及内外圆之间环形图像中寻找阈值范围内的缺陷;

步骤7、利用OpenCV库中的cv2.findContours函数寻找步骤6得到的图像中的缺陷边界,如果缺陷边界数量小于阈值,就将其标记为合格端面;否则就将其标记为不合格端面;

并将缺陷边界在步骤1中的原瓶盖端面图像中显示出来;

步骤4中,拟合圆的具体方法如下:

步骤4.1、从拟合数据点集Q内随机抽取3个坐标点,组成拟合数据集P,对数据集P采用三点拟合圆方法求解出拟合圆S1的圆心坐标以及半径;

步骤4.2、计算拟合数据点集Q中剩余的M‑3个坐标点数据与拟合圆S1之间的位置关系,将所有落在拟合圆S1的圆内或者圆周上的点标记为局内点,所有局内点一起组成形成局内点集J1,判断局内点集的点数M1是否大于N,如果大于执行步骤4.3,否则返回步骤4.1;

步骤4.3、在局内点集J1内随机选取三个坐标点,组成拟合数据集P’,对数据集P’采用三点拟合圆方法求解出新拟合圆S1’的圆心坐标以及半径;

步骤4.4、判断步骤4.1中选取的P内3个坐标点和局内点集J1内剩余坐标点与新拟合圆S1’的位置关系,得到新局内点集J1’,如果新局内点集J1’与步骤4.2中的局内点集J1中坐标点数量相同,则保留步骤4.1中拟合圆S1作为备选拟合圆S2,否则舍弃;

步骤4.5、重复执行步骤4.1至步骤4.4,完成设定循环次数K,从K次循环中选取局内点集J1中坐标点最多的备选拟合圆S2作为最优拟合圆S0,相应局内点集J1为最优局内点集J0;

步骤4.6、判断拟合数据点集Q减去最优局内点集J0后坐标点总数是否大于3,如果大于

3,则将拟合数据点集Q减去最优局内点集J0后作为新的拟合数据点集Q,并返回执行步骤

4.1;否则拟合圆结束,并取点数量最多的最优局内点集J0作为最终的最优局内点集J,相应的最优拟合圆S0为最终输送拟合圆S,输出最优拟合圆S的圆心坐标和半径;

所述高反光瓶盖侧面缺陷检测方法包括如下步骤:

步骤S1、对同型号瓶盖侧面拍照,选取拍摄图像里确定没有缺陷的一张图,将瓶盖所在区域的矩形图像截取出来作为模板图像;

步骤S2、对待检测瓶盖侧面进行拍照,将拍摄得到的侧面图像进行局部直方图均衡化处理,消除光照不均匀情况;

步骤S3、提取ROI区域,将待检测的侧面灰度图与模板图像进行匹配提取出图像中的目标区域,得到检测图像;

步骤S4、将步骤S3中得到的检测图像中的高亮区域去除掉以消除干扰;

步骤S5、将步骤S4中得到消除高亮区域的检测图像转换成灰度图,然后利用灰度值的阈值分割图像获得目标阈值范围内的缺陷;

步骤S6、利用OpenCV库中的cv2.findContours函数寻找步骤S6中图像内的缺陷边界,如果缺陷边界数量小于阈值,就将其标记为合格侧面;否则就将其标记为不合格面;并将缺陷边界在步骤S1中的原侧面图像中显示出来;

步骤S4中具体方法如下:

步骤S4.1、将侧面检测的步骤S3中得到的目标区域的检测图像转换成灰度图,消除颜色的干扰;

步骤S4.2、利用OpenCV库中的cv2.threshold函数分割出灰度图中的高亮区域;

步骤S4.3、利用八邻域法提取阈值范围内的连通域,选择并标记最大连通域;

步骤S4.4、将最大连通域做膨胀操作;

步骤S4.5、在步骤S4.4中得到的图片中寻找光亮区域的边界并将其填充为黑色,在图上显示出来;

步骤S4.6、利用OpenCV中的cv2.bitwise_xor函数将步骤S4.5中得到的图像与步骤S3中提取ROI区域的检测图像做异处理得到去除高亮区域的检测图像。

2.根据权利要求1所述的高反光瓶盖缺陷检测方法,其特征在于:所述拟合数据点集中坐标点的数量M为10‑30,步骤4.5中循环次数K为100‑500次,步骤4.2局内点总数的判断阈值N范围为5‑10。

3.根据权利要求1所述的高反光瓶盖缺陷检测方法,其特征在于:步骤6中,在目标区域找到缺陷后,通过remove_small_objects函数删掉小缺陷进行噪声剔除,然后执行步骤7。

4.根据权利要求1所述的高反光瓶盖缺陷检测方法,其特征在于:步骤4中三点拟合圆的具体方法如下:(1)从拟合数据点集或局内点集中随机选取的3个坐标点记为(x1,y1),(x2,y2),(x3,y3),构建矩阵(2)将上述的3个点的坐标构建矩阵

(3)求解px=q,解即为拟合的圆的坐标矩阵,

(4)根据求得的解矩阵x求解圆心坐标(x0,y0)以及半径r。

5.根据权利要求1所述的高反光瓶盖缺陷检测方法,其特征在于:所述最长的边界以及第二长的边界分别为瓶盖倒角的外边界和内边界。

6.根据权利要求1所述的高反光瓶盖缺陷检测方法,其特征在于:步骤S5中,在目标区域找到缺陷后,通过remove_small_objects函数删掉小缺陷进行噪声剔除,然后执行步骤S6。

说明书 :

一种基于OpenCV的高反光瓶盖缺陷检测方法

技术领域

[0001] 本发明属于智能检测领域,涉及一种瓶盖缺陷检测,具体涉及一种基于OpenCV的高反光瓶盖缺陷检测方法。

背景技术

[0002] 人们的日常生活中会用到各种各样的瓶盖,市面上常见的瓶盖大致可以分为圆柱形,圆柱与球形的结合形以及宝塔形等几种类型,为了美观的需求在加工完之后需要在瓶盖的外表面进行喷漆处理,这就造成瓶盖的外表面成为极易反光的面,而特殊的形状又会造成光线的反射导致出现一些高反光的区域;喷完漆的瓶盖表面是极其脆弱的,容易出现划痕,喷漆掉落等缺陷,在生产过程中的碰撞会导致瓶盖表面出现凹坑,这些缺陷的出现及分布是不规律的,可能出现在瓶盖的端面,侧面甚至是端面和侧面的连接处。而目前并没有较好的技术能够解决这种高反光瓶盖表面上的瑕疵检测,OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,包含大量可以调用函数,能够对视觉学习进行处理,因此本发明提出一种基于OpenCV的高反光塑料瓶盖外表面瑕疵智能检测方法,在检测的时候分别对瓶盖的端面和侧面进行检测,能够有效的解决现有的高反光类的瓶盖上的瑕疵检测问题。

发明内容

[0003] 本发明针对现有的工业生产过程中的高反光表面的塑料瓶盖上的缺陷只能依靠人工进行检测导致的劳动强度大以及检测效果差的问题,结合OpenCV提出了一种缺陷自主识别检测的方法。该方法通过提取瓶盖图像上的ROI(Region of Interest)区域对瓶盖进行定位进而对瓶盖上的缺陷进行识别和定位,最终通过执行机构对瓶盖进行筛选,达到瓶盖的缺陷自主检测、识别的目的。
[0004] 为了实现上述目的,本发明的技术方案如下:
[0005] 本发明提供了一种基于OpenCV的高反光瓶盖端面缺陷检测方法,其特征在于,包括如下步骤:
[0006] 步骤1、将拍摄得到的瓶盖端面图像进行灰度处理,得到瓶盖的端部灰度图;
[0007] 步骤2、边缘提取,对端部灰度图利用阈值分割的方法寻找出瓶盖端面的边界曲线,然后将所有的边界曲线长度排序,取最长的边界以及第二长的边界的边界曲线;
[0008] 步骤3、数据转换,将获得的边界曲线转换成含有(x,y)形式的坐标列表,并从坐标列表中等距的取出M个坐标点数据作为拟合数据点集Q,M大于3;
[0009] 步骤4、通过上述的M个坐标点数据利用圆拟合方法寻找边界的拟合圆,得到内边界圆和外边界圆;
[0010] 步骤5、利用拟合的边界圆在步骤1中得到的端部灰度图上做掩膜操作分别得到内圆以内的内圆图像和内外圆之间的环形图像;
[0011] 步骤6、寻找目标图像,利用OpenCV库中的cv2.threshold函数在步骤5中得到的内圆图像以及内外圆之间环形图像中寻找阈值范围内的缺陷;
[0012] 步骤7、利用OpenCV库中的cv2.findContours函数寻找步骤6得到的图像中的缺陷边界,如果缺陷边界数量小于阈值,就将其标记为合格端面;否则就将其标记为不合格端面;并将缺陷边界在步骤1中的原瓶盖端面图像中显示出来。
[0013] 进一步地,步骤4中,拟合圆的具体方法如下:
[0014] 步骤4.1、从拟合数据点集Q内随机抽取3个坐标点,组成拟合数据集P,对数据集P采用三点拟合圆方法求解出拟合圆S1的圆心坐标以及半径;
[0015] 步骤4.2、计算拟合数据点集Q中剩余的M‑3个坐标点数据与拟合圆S1之间的位置关系,将所有落在拟合圆S1的圆内或者圆周上的点标记为局内点,所有局内点一起组成形成局内点集J1,判断局内点集的点数M1是否大于N,如果大于执行步骤4.3,否则返回步骤4.1;
[0016] 步骤4.3、在局内点集J1内随机选取三个坐标点,组成拟合数据集P’,对数据集P’采用三点拟合圆方法求解出新拟合圆S1’的圆心坐标以及半径;
[0017] 步骤4.4、判断步骤4.1中选取的P内3个坐标点和局内点集J1内剩余坐标点与新拟合圆S1’的位置关系,得到新局内点集J1’,如果新局内点集J1’与步骤4.2中的局内点集J1中坐标点数量相同,则保留步骤4.1中拟合圆S1作为备选拟合圆S2,否则舍弃;
[0018] 步骤4.5、重复执行步骤4.1至步骤4.4,完成设定循环次数K,从K次循环中选取局内点集J1中坐标点最多的备选拟合圆S2作为最优拟合圆S0,相应局内点集J1为最优局内点集J0;
[0019] 步骤4.6、判断拟合数据点集Q减去最优局内点集J0后坐标点总数是否大于3,如果大于3,则将拟合数据点集Q减去最优局内点集J0后作为新的拟合数据点集Q,并返回执行步骤4.1;否则拟合圆结束,并取点数量最多的最优局内点集J0作为最终的最优局内点集J,相应的最优拟合圆S0为最终输送拟合圆S,输出最优拟合圆S的圆心坐标和半径。
[0020] 进一步地,所述拟合数据点集中坐标点的数量M为10‑30,步骤4.5中循环次数K为100‑500次,最优为300次,步骤4.2局内点总数的判断阈值N范围为5‑10。
[0021] 进一步地,步骤6中,在目标区域找到缺陷后,通过remove_small_objects函数删掉小缺陷进行噪声剔除,然后执行步骤7。
[0022] 进一步地,步骤4中三点拟合圆的具体方法如下:
[0023] (1)从拟合数据点集或局内点集中随机选取的3个坐标点记为(x1,y1),(x2,y2),(x3,y3),构建矩阵
[0024] (2)将上述的3个点的坐标构建矩阵
[0025] (3)求解px=q,解即为拟合的圆的坐标矩阵,
[0026] (4)根据求得的解矩阵x求解圆心坐标(x0,y0)以及半径r。
[0027] 进一步地,所述最长的边界以及第二长的边界分别为瓶盖倒角的外边界和内边界。
[0028] 本发明还提供一种基于OpenCV的高反光瓶盖侧面缺陷检测方法,其特征在于,包括如下步骤:
[0029] 步骤S1、对同型号瓶盖侧面拍照,选取拍摄图像里确定没有缺陷的一张图,将瓶盖所在区域的矩形图像截取出来作为模板图像;
[0030] 步骤S2、对待检测瓶盖侧面进行拍照,将拍摄得到的侧面图像进行局部直方图均衡化处理,消除光照不均匀情况;
[0031] 步骤S3、提取ROI区域,将待检测的侧面灰度图与模板图像进行匹配提取出图像中的目标区域,得到检测图像;
[0032] 步骤S4、将步骤S3中得到的检测图像中的高亮区域去除掉以消除干扰;
[0033] 步骤S5、将步骤S4中得到消除高亮区域的检测图像转换成灰度图,然后利用灰度值的阈值分割图像获得目标阈值范围内的缺陷;
[0034] 步骤S6、利用OpenCV库中的cv2.findContours函数寻找步骤S6中图像内的缺陷边界,如果缺陷边界数量小于阈值,就将其标记为合格侧面;否则就将其标记为不合格面;并将缺陷边界在步骤S1中的原侧面图像中显示出来。
[0035] 进一步地,步骤S4中具体方法如下:
[0036] 步骤S4.1、将侧面检测的步骤S3中得到的目标区域的检测图像转换成灰度图,消除颜色的干扰;
[0037] 步骤S4.2、利用OpenCV库中的cv2.threshold函数分割出灰度图中的高亮区域;
[0038] 步骤S4.3、利用八邻域法提取阈值范围内的连通域,选择并标记最大连通域;
[0039] 步骤S4.4、将最大连通域做膨胀操作;
[0040] 步骤S4.5、在步骤S4.4中得到的图片中寻找光亮区域的边界并将其填充为黑色,在图上显示出来;
[0041] 步骤S4.6、利用OpenCV中的cv2.bitwise_xor函数将步骤S4.5中得到的图像与步骤S3中提取ROI区域的检测图像做异处理得到去除高亮区域的检测图像。
[0042] 进一步地,步骤S5中,在目标区域找到缺陷后,通过remove_small_objects函数删掉小缺陷进行噪声剔除,然后执行步骤S6。
[0043] 本发明一种基于OpenCV的高反光瓶盖缺陷检测方法,其特征在于,包括以下步骤:
[0044] 步骤K1、瓶盖端面检测:采用相机对高反光瓶盖端部进行拍照,得到端面图像,利用上述高反光瓶盖端面缺陷检测方法对高反光瓶盖的端面图像进行检测,如果瓶盖端面含有缺陷则判断其为端面不合格产品,并缺陷标记在端面图像中,如果不含缺陷则进行瓶盖侧面检测;
[0045] 步骤K2、瓶盖侧面检测,采用至少四个方向对高反光瓶盖的侧面进行拍照,得到侧面图像,利用上述高反光瓶盖侧面缺陷检测方法对高反光瓶盖的侧面图像进行检测,如果瓶盖侧面含有缺陷则判断其为侧面不合格产品,并将缺陷标记在侧面图像中,如果瓶盖侧面图像都检测完,全部不含缺陷,则将该瓶盖标记为合格产品,重复步骤K1和步骤K2进行下一个瓶盖产品检测。
[0046] 与现有技术相比,本发明的有益效果是:
[0047] 本发明充分考虑了现有的高反光表面瓶盖检测的方法,结合计算机视觉提出了一种基于OpenCV的缺陷检测方法,能够有效的解决高反光瓶盖侧面的高反光区域带来的影响,自动识别出塑料瓶盖上的划痕、凹坑等缺陷,并有效的定位缺陷的位置,并且实现了瓶盖缺陷自动检测功能,提高了生产效率。

附图说明

[0048] 图1为本发明实施例中高反光瓶盖缺陷检测方法的整体流程图。
[0049] 图2为本发明实施例中的瓶盖端面检测流程图。
[0050] 图3为本发明实施例中瓶盖侧面检测流程图。
[0051] 图4为拟合圆选取算法流程图。
[0052] 图5为去除高亮区域算法流程图。

具体实施方式

[0053] 本发明提出一种基于OpenCV的高反光塑料瓶盖外表面瑕疵智能检测方法,检测分为端面检测和侧面检测,端面检测的流程图如图2所示,侧面检测的流程图如图3所示。主要是利用OpenCV自带的库函数对拍摄得到的瓶盖的图像进行处理进而得到瓶盖上的缺陷的位置。
[0054] 现有的高反光塑料瓶盖检测上的瑕疵主要是靠人工进行肉眼检测,工作强度大但是检测效率不高,因此本发明提出了基于OpenCV的高反光塑料瓶盖缺陷检测算法,实现高反光表面塑料瓶盖上的缺陷的自主识别和定位。
[0055] 如图1至图5所示,本发明提供一种基于OpenCV的高反光瓶盖缺陷检测方法,包括瓶盖端面检测和瓶盖侧面检测,具体方法如下:
[0056] 如图2所示,瓶盖端面检测,采用相机对高反光瓶盖端部进行拍照,得到端面图像,对端面图像处理方法如下:
[0057] 步骤1、将拍摄得到的瓶盖端面图像进行灰度处理,得到瓶盖的端部灰度图;
[0058] 步骤2、对灰度图进行处理,将灰度图像中像素点灰度值大于210的设置为255,提高后续图像处理准确度,利用OpenCV库中的cv2.threshold先找出图片中瓶盖端面的边界曲线,对所有边界曲线长度排序,取最长的边界以及第二长的边界的曲线作为边界曲线,其中最长的边界为瓶盖外圆边界,第二长边界为瓶盖倒角的内圆边界;
[0059] 步骤3、将边界曲线包含的坐标值进行转换,变为形式为(x,y)的列表,然后从其中等距的选取出M=15个点的坐标作为拟合数据点集Q;
[0060] 步骤4、对选取出的坐标进行处理,通过圆拟合方法对拟合数据点集处理寻找边界的拟合圆,如图4所示,圆拟合方法的步骤如下:
[0061] 步骤4.1、从拟合数据点集Q内随机抽取3个坐标点,组成拟合数据集P,对数据集P采用三点拟合圆方法求解出拟合圆S1的圆心坐标以及半径;
[0062] 步骤4.2、计算拟合数据点集Q中剩余的M‑3个坐标点数据与拟合圆S1之间的位置关系,将所有落在拟合圆S1的圆内或者圆周上的点标记为局内点,所有局内点一起组成形成局内点集J1,判断局内点集的点数M1是否大于N=6,如果大于执行步骤4.3,否则返回步骤4.1;
[0063] 步骤4.3、在局内点集J1内随机选取三个坐标点,组成拟合数据集P’,对数据集P’采用三点拟合圆方法求解出新拟合圆S1’的圆心坐标以及半径;
[0064] 步骤4.4、判断步骤4.1中选取的P内3个坐标点和局内点集J1内剩余坐标点与新拟合圆S1’的位置关系,得到新局内点集J1’,如果新局内点集J1’与步骤4.2中的局内点集J1中坐标点数量相同,则保留步骤4.1中拟合圆S1作为备选拟合圆S2,否则舍弃;
[0065] 步骤4.5、重复执行步骤4.1至步骤4.4,完成设定循环次数K=300,从K次循环中选取局内点集J1中坐标点最多的备选拟合圆S2作为最优拟合圆S0,相应局内点集J1为最优局内点集J0;
[0066] 步骤4.6、判断拟合数据点集Q减去最优局内点集J0后坐标点总数是否大于3,如果大于3,则将拟合数据点集Q减去最优局内点集J0后作为新的拟合数据点集Q,并返回执行步骤4.1;否则拟合圆结束,并取点数量最多的最优局内点集J0作为最终的最优局内点集J,相应的最优拟合圆S0为最终输送拟合圆S,输出最优拟合圆S的圆心坐标和半径。
[0067] 具体本发明实施例中,三点拟合圆方法如下:
[0068] (1)从拟合数据点集或局内点集中随机选取的3个坐标点记为(x1,y1),(x2,y2),(x3,y3),构建矩阵
[0069] (2)将上述的3个点的坐标构建矩阵
[0070] (3)求解px=q,解即为拟合的圆的坐标矩阵,
[0071] (4)根据求得的解矩阵x求解圆心坐标(x0,y0)以及半径r,横坐标x0=x[0]/2,纵坐标y0=x[1]/2,圆的半径
[0072] 步骤5、根据上述找出的最佳拟合圆方式找出的内边界圆和外边界圆在步骤1中原端部灰度图上做掩膜操作,别得到内圆以内的内圆图像和内外圆之间的环形图像,将图像中的端面内圆以内以及内、外圆之间的图像显示出来;
[0073] 步骤6、利用OpenCV库中的cv2.threshold函数将在内圆图像以及内外圆之间环形图像中寻找阈值范围内的缺陷,具体的,利用cv2.threshold函数对图像中按照灰度值的阈值进行分割,具的,将像素点灰度值大于阈值70的设置为255,此时阈值为70;灰度值小于阈值70的像素点连续集合即构成缺陷,利用remove_small_objects函数去除图像的目标区域内较小的缺陷,进行去除噪声处理,并执行S7;
[0074] 步骤7、利用OpenCV中的cv2.findContours函数将步骤6的缺陷图像中缺陷边界寻找出来,如果缺陷边界数量小于阈值,就将其标记为合格端面;否则就将其标记为不合格端面;再利用cv2.drawContours函数将缺陷的边界画到步骤1中原瓶盖端面图像上,该瓶盖也会被标记为端面不合格产品。
[0075] 需要说明的是,上述方法中,M和N均不限于上述数量,所述拟合数据点集Q中坐标点的数量M为10‑30,步骤4.2局内点总数的判断阈值N范围为5‑10,步骤4.5中循环次数K为100‑500次,最优的可以采用300次。
[0076] 需要说明的是,上述端面图像处理中分割缺陷的灰度值阈值不限于70,可以根据实际情况进行调整,一般为30‑100。
[0077] 瓶盖侧面检测,采用相机至少从四个方向对高反光瓶盖侧面进行拍照,得到侧面图像,对端面图像处理方法如下:
[0078] 步骤S1、对同型号瓶盖侧面拍照,选取拍摄到的侧面的图像里没有缺陷的一张,将瓶盖所在区域截取作为后续检测的模板图像;
[0079] 步骤S2、对待检测瓶盖侧面进行拍照,将拍摄得到的侧面图像做局部直方图均衡化处理,将较亮的区域的灰度值和较暗的区域的灰度值做均衡处理,消除由于拍摄时光照不均匀带来的差异;
[0080] 步骤S3、提取ROI区域,利用选取的模板图像和拍摄到的侧面图像进行匹配,找出瓶盖所在的区域,即为ROI区域(目标区域),并将侧面图像中其他区域变为黑色;
[0081] 步骤S4、将S3中得到的侧面图像进行去除高亮区域的操作,消除由于拍摄端面时的灯光对侧面造成的影响,去除高亮区域时的操作如下:
[0082] 步骤S4.1、将S3中得到的目标区域的检测图像转化为灰度图;
[0083] 步骤S4.2、利用OpenCV库中的cv2.threshold函数将S4.1中得到的灰度图中较亮的区域提取出来;
[0084] 步骤S4.3、利用八邻域法提取S4.2中得到的连通域,并标记最大连通域;
[0085] 步骤S4.4、对上述连通域做膨胀操作,确保最大连通域能够被完全消除;
[0086] 步骤S4.5、利用OpenCV中的cv2.findContours函数寻找S4.4中得到的区域的边界并将其内部填充为黑色,在图上显示出来;
[0087] 步骤S4.6、将S4.5中得到的区域与S3最终得到检测图像中的瓶盖侧面区域做异操作,得到的消除高亮区域的检测图像;
[0088] 步骤S5、将步骤S4中得到消除高亮区域的检测图像转换成灰度图,利用OpenCV库中的cv2.threshold函数分割缺陷所在的阈值范围(灰度值小于阈值的像素点连续集合即构成缺陷),具体的,将灰度值大于38的像素点的灰度值设置为255,此时阈值为38,利用remove_small_objects函数去除灰度图中较小的缺陷,进行去除噪声处理,并执行S6;
[0089] 步骤S6、利用OpenCV中的cv2.findContours函数寻找S5中得到的阈值范围内的缺陷的轮廓,如果缺陷边界数量小于阈值,就将其标记为合格侧面;否则就将其标记为不合格面,该瓶盖标记为侧面不合格产品;并将缺陷边界在步骤S1中的原侧面图像中显示出来。
[0090] 通过上述端面图像处理方法对待检测瓶盖的至少四个侧面图像进行处理和判断,当瓶盖的端部和侧面都不含缺陷时,则将该瓶盖标记为合格产品,否则将瓶盖判断为端面不合格产品和/或侧面不合格产品,并在图像中显示相应的缺陷。
[0091] 需要说明的是,上述侧面图像处理中分割缺陷的灰度值阈值不限于38,可以根据实际情况进行调整,一般为20‑60。
[0092] 以上实施例仅用于说明本发明的设计思想和特点,其目的在于使本领域内的技术人员能够了解本发明的内容并据以实施,本发明的保护范围不限于上述实施例。所以,凡依据本发明所揭示的原理、设计思路所作的等同变化或修饰,均在本发明的保护范围之内。