[0004] 为了克服人工检测LED玻璃灯杯凹槽深度的弊端,本发明提出一种基于图像处理的LED玻璃灯杯凹槽深度的检测方法。本方法采用面阵相机、远心镜头以及平行光源作为图像捕获设备,以水平投影的方式采集图像,并通过统计铆钉超过灯杯表面高度的起始点与终止点的像素点差值来间接的计算灯杯凹槽深度。图像处理的具体步骤是:
[0005] 步骤(1):f(x,y)表示采集到的大小为M×N的LED玻璃灯杯一帧水平投影图像,x,y表示图像的横坐标和纵坐标,按如下方式对灯杯图像作二值化处理:
[0006]
[0007] 其中η为二值化阈值;
[0008] 步骤(2):铆钉超过灯杯表面高度的终止点定位:
[0009] (a)按从左到右,从上到下的扫描方式访问二值化图像中的每个像素点,并统计每行黑色像素点个数,第i行黑色像素点个数记为Ci。若连续三行的黑色像素点个数Ci,Ci+1,Ci+2都大于阈值β,则保留第i行对应的y轴坐标值,记为y1,否则继续扫描。
[0010] (b)从y轴坐标值为y1的位置出发,按从左到右的扫描方式访问每个像素点,根据像素值的变化实时改变当前的状态T,T1代表初始状态,T2代表第一次由白色像素点跳变到黑色像素点,T3代表第一次由黑色像素点跳变到白色像素点,T4代表第二次由白色像素点跳变到黑色像素点,T5代表第二次由黑色像素点跳变到白色像素点。当状态为T3时,记录对应的点的坐标值E1;当状态为T4时,记录对应的点的坐标值E2。
[0011] (c)求点E1与点E2的中点E3:然后从点E3沿着y轴出发,按从上到下的扫描方式访问每个像素点,遇到的第一个黑色像素点即为铆钉超过灯杯表面高度的终止点E。
[0012] 步骤(3):根据铆钉超过灯杯表面高度的终止点进行图像分割:
[0013] 以通过E点的y轴线作为分割线将原二值图f(x,y)分割为f1(x,y)与f2(x,y)。
[0014] 步骤(4):铆钉超过灯杯表面高度的起始点定位:
[0015] (a)按从上到下,从左到右的扫描方式访问二值化图像f1(x,y)或f2(x,y)中的每个像素点,遇到的第一个黑色像素点停止,记录该点为S1,计数A置为1,并跳转到下一列j继续扫描。遇到第j列的第一个黑色像素点停止,记录该点的y轴坐标值yj,计数A加1,并跳转到下一列j+1继续扫描。直至计数A达到阈值α1为止。若某列中不存在黑色像素点,则计数A置为0。然后对连续的A个y轴坐标值按如下式作差与累加:
[0016]
[0017] 如果K≤阈值α2,则保留点S1,否则继续按上述方式扫描图像定位点S1。同样地,按照从上到下,从右到左的扫描方式可以定位到点S2。
[0018] (b)取点S1与点S2的中点作为铆钉超过灯杯表面高度的起始点S。
[0019] 步骤(5):LED玻璃灯杯凹槽深度计算:
[0020] 按下式计算出LED玻璃灯杯凹槽深度:
[0021] D=L-(yS-yE)×P
[0022] 其中D是LED玻璃灯杯凹槽深度,L是铆钉固定长度,yS表示起始点S的y轴坐标值,yE表示终止点E的y轴坐标值,P表示每个像素点代表的实际距离,该系数由相机参数与镜头参数决定。通过统计起始点S与终止点E在y轴上像素点差值,并转化为实际距离,最后由铆钉固定长度减去该实际距离完成对LED玻璃灯杯凹槽深度的计算。
[0023] 本发明的有益效果:本发明方法利用图像处理方法对LED玻璃灯杯凹槽深度进行了自动在线检测,克服了人工检测效率低下,无法保证产品质量的一致性以及检测模具磨损对产品容错性提高等弊端。本发明具有效率高、检测精度高、可在线检测等优点,可以减少生产岗位用工,降低人工成本,并提高灯杯生产效率与产品质量一致性,具有重要的工程实际意义。具体实施方式:
[0024] 步骤(1):f(x,y)表示采集到的大小为M×N的LED玻璃灯杯一帧水平投影图像,x,y表示图像的横坐标和纵坐标,按如下方式对灯杯图像作二值化处理:
[0025]
[0026] 其中二值化阈值η设为110;
[0027] 步骤(2):铆钉超过灯杯表面高度的终止点定位:
[0028] (a)按从左到右,从上到下的扫描方式访问二值化图像中的每个像素点,并统计每行黑色像素点个数,第i行黑色点像素个数记为Ci。若连续三行的黑色像素点个数Ci,Ci+1,Ci+2都大于550,则保留第i行对应的y轴坐标值,记为y1,否则继续扫描。
[0029] (b)从y轴坐标值为y1的位置出发,按从左到右的扫描方式访问每个像素点,根据像素值的变化实时改变当前的状态T,T1代表初始状态,T2代表第一次由白色像素点跳变到黑色像素点,T3代表第一次由黑色像素点跳变到白色像素点,T4代表第二次由白色像素点跳变到黑色像素点,T5代表第二次由黑色像素点跳变到白色像素点。当状态为T3时,记录对应的点的坐标值E1;当状态为T4时,记录对应的点的坐标值E2。
[0030] (c)求点E1与点E2的中点E3:然后从点E3沿着y轴出发,按从上到下的扫描方式访问每个像素点,遇到的第一个黑色像素点即为铆钉超过灯杯表面高度的终止点E。
[0031] 步骤(3):根据铆钉超过灯杯表面高度的终止点进行图像分割:
[0032] 以通过E点的y轴线作为分割线将原二值图f(x,y)分割为f1(x,y)与f2(x,y)。
[0033] 步骤(4):铆钉超过灯杯表面高度的起始点定位:
[0034] (a)按从上到下,从左到右的扫描方式访问二值化图像f1(x,y)或f2(x,y)中的每个像素点,遇到的第一个黑色像素点停止,记录该点为S1,计数A置为1,并跳转到下一列j继续扫描。遇到第i列的第一个黑色像素点停止,记录该点的y轴坐标值yj,计数A加1,并跳转到下一列j+1继续扫描。直至计数A达到20为止。若某列中不存在黑色像素点,则计数A置为0。然后对连续的A个y轴坐标值按如下式作差与累加:
[0035]
[0036] 如果K≤5,则保留点S1,否则继续按上述方式扫描图像定位点S1。同样地,按照从上到下,从右到左的扫描方式可以定位到点S2。
[0037] (b)取点S1与点S2的中点作为铆钉超过灯杯表面高度的起始点S。
[0038] 步骤(5):LED玻璃灯杯凹槽深度计算:
[0039] 按下式计算出LED玻璃灯杯凹槽深度:
[0040] D=L-(yS-yE)×P
[0041] 其中D是LED玻璃灯杯凹槽深度,L是铆钉固定长度yS表示起始点S的y轴坐标值,yE表示终止点E的y轴坐标值,P表示每个像素点代表的实际距离,该系数由相机参数与镜头参数决定。通过统计起始点S与终止点E在y轴上像素点差值,并转化为实际距离,最后由铆钉固定长度减去该实际距离完成对LED玻璃灯杯凹槽深度的计算。