CN109522767B - 一维码断码视觉检测方法 - Google Patents

一维码断码视觉检测方法 Download PDF

Info

Publication number
CN109522767B
CN109522767B CN201710842878.3A CN201710842878A CN109522767B CN 109522767 B CN109522767 B CN 109522767B CN 201710842878 A CN201710842878 A CN 201710842878A CN 109522767 B CN109522767 B CN 109522767B
Authority
CN
China
Prior art keywords
image
code
value
length
dimensional code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710842878.3A
Other languages
English (en)
Other versions
CN109522767A (zh
Inventor
江俭
张念东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Xinghe Taishite Technology Co ltd
Original Assignee
Beijing Xinghe Taishite Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Xinghe Taishite Technology Co ltd filed Critical Beijing Xinghe Taishite Technology Co ltd
Priority to CN201710842878.3A priority Critical patent/CN109522767B/zh
Publication of CN109522767A publication Critical patent/CN109522767A/zh
Application granted granted Critical
Publication of CN109522767B publication Critical patent/CN109522767B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14131D bar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10821Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
    • G06K7/10861Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices sensing of data fields affixed to objects or articles, e.g. coded labels

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Electromagnetism (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)

Abstract

本发明公开了一种一维码断码视觉检测算法,该一维码断码视觉检测算法包括:步骤S1,获取标准的一维码图像,并对标准的一维码图像进行二值化处理,以得到第一二值化图像,以及根据第一二值化图像,获取标准的一维码的码线的长度;步骤S2,获取待测试的一维码图像,并对待测试的一维码图像进行二值化处理,以得到第二二值化图像,对第二二值化图像进行骨骼化,以得到骨骼图,并根据骨骼图和码线的长度,对骨骼图中的码线的角度进行调整;步骤S3,重置骨骼图的图像颜色,再次对待测试的一维码图像进行二值化处理,以得到第三二值化图像,并且分别对第三二值化图像进行水平投影和垂直投影,以对待测试的一维码图像中的断码进行检测。

Description

一维码断码视觉检测方法
技术领域
本发明涉及图像处理技术领域,具体来说,涉及一种一维码断码视觉检测算法。
背景技术
现有很多产品的包装上广泛设置有一维码,如手机包装上的一维码、食品包装上一维码等,其不仅需要识别一维码还需要检测一维码印刷质量,而常规的视觉软件仅具备识别一维码的算法,如手机包装上的一维码上的码线出现角度倾斜、中间断开、两端缺失的问题,在这种情况下需要一种能检测一维码断码的检测算法。
针对相关技术中的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中的问题,本发明提出一种一维码断码视觉检测算法,能够解决现有技术中一维码的码线出现角度倾斜、中间断开、两端缺失的问题。
本发明的技术方案是这样实现的:
根据本发明的一个方面,提供了一种一维码断码视觉检测算法。
该一维码断码视觉检测算法包括:步骤S1,获取标准的一维码图像,并对标准的一维码图像进行二值化处理,以得到第一二值化图像,以及根据第一二值化图像,获取标准的一维码的码线的长度;步骤S2,获取待测试的一维码图像,并对待测试的一维码图像进行二值化处理,以得到第二二值化图像,对第二二值化图像进行骨骼化,以得到骨骼图,并根据骨骼图和码线的长度,对骨骼图中的码线的角度进行调整;步骤S3,重置骨骼图的图像颜色,再次对待测试的一维码图像进行二值化处理,以得到第三二值化图像,并且分别对第三二值化图像进行水平投影和垂直投影,以对待测试的一维码图像中的断码进行检测。
根据本发明的一个实施例,根据第一二值化图像,获取标准的一维码的码线的长度包括:步骤S11,确定第一二值化图像中的多个第一连通域,并分别计算每个第一连通域的最小的第一外接矩形;步骤S12,分别计算每个第一外接矩形的中心到第一二值化图像的上边缘和下边缘的距离值,并将距离值和参数值进行比较,在距离值小于参数值的情况下,将中心对应的第一连通域中的所有像素点的灰度值置为0;步骤S13,统计每个第一连通域中的像素点的数量,并将像素点的数量小于第一阈值的第一连通域中的所有像素点的灰度值置为0;步骤S14,统计剩余的第一连通域的第一外接矩形的长边,并求取所有长边的第一平均值,以得到码线的长度。
根据本发明的一个实施例,参数值为第一二值化图像的图像高度的 1/4。
根据本发明的一个实施例,步骤S2进一步包括:获取待测试的一维码图像;统计待测试的一维码图像中的所有像素点的灰度值,并求取所有灰度值的算术平均值;将算数平均值和预先设定的第二阈值进行比较,在算数平均值大于第二阈值的情况下,对待测试的一维码图像进行二值化处理,以得到第二二值化图像,对第二二值化图像进行骨骼化,以得到骨骼图,并根据骨骼图和码线的长度,对骨骼图中的码线的角度进行调整,在算数平均值小于第二阈值的情况下,退出检测。
根据本发明的一个实施例,对第二二值化图像进行骨骼化,以得到骨骼图,并根据骨骼图和码线的长度,对骨骼图中的码线的角度进行调整包括:步骤S21,通过水平扫描的方式逐行从左到右检测每个第二连通域中的像素点的灰度值,并记录第二连通域中每行第一个和最后一个灰度值为第三阈值的像素点,并将每行的第一个和最后一个的中点作为每行的第一中轴点;步骤S22,通过垂直扫描的方式逐列从上到下检测每个第二连通域中的像素点的灰度值,并记录第二连通域中每列第一个和最后一个灰度值为第三阈值的像素点,并将每列的第一个和最后一个的中点作为每列的第二中轴点;步骤S23,根据第一中轴点和第二中轴点,绘制骨骼图,并将骨骼图中的重复骨骼点删除,其中,第一中轴点和第二中轴点均为骨骼点;步骤S24,根据每个第二连通域中的第一中轴点和第二中轴点,获取每个第二连通域的质点,并将骨骼图中的所有骨骼点重新组成第三连通域,以及获取每个第三连通域的最小的第二外接矩形的长边值和短边值;步骤 S25,将长边值大于码线的长度的一半且短边值大于6个像素的第三连通域中的像素点滤除,并计算每个骨骼点的质心坐标,以及根据质心坐标,对骨骼图中的码线的角度进行调整。
根据本发明的一个实施例,分别对第三二值化图像进行水平投影和垂直投影,以对待测试的一维码图像中的断码进行检测包括:步骤S31,对第三二值化图像进行水平投影,并记录每行像素灰度值等于第四阈值的像素的数量,并根据码线的长度,将小于码线的长度一半的像素行的灰度值置为0;步骤S32,对第三二值化图像进行垂直投影,并记录每列像素灰度值等于第四阈值的像素的数量,并根据码线的长度,将小于码线的长度一半的像素行的灰度值置为0;步骤S33,切分第三二值化图像中的每一条码线,并对每条码线进行垂直投影,计算所有列的像素的数量的第二平均值,以及根据码线的长度和预设的第五阈值,获取码线长度下限,其中,码线长度下限为所有列的像素的数量阈值;步骤S34,比较第二平均值和码线长度下限,在第二平均值小于码线长度下限的情况下,计算一维码的码线区域内的第三连通域的数量,若第三连通域的数量为1,记录第三连通域的位置,若第三连通域的数量大于1,记录第三连通域的间隙的位置,在第二平均值大于码线长度下限的情况下,进行下一条码线的检测,直至所有码线检测完毕。
本发明的有益效果在于:
本发明通过获取标准的一维码图像,并对标准的一维码图像进行二值化处理,以得到第一二值化图像,以及根据第一二值化图像,获取标准的一维码的码线的长度,随后获取待测试的一维码图像,并对待测试的一维码图像进行二值化处理,以得到第二二值化图像,对第二二值化图像进行骨骼化,以得到骨骼图,并根据骨骼图和码线的长度,对骨骼图中的码线的角度进行调整,最后重置骨骼图的图像颜色,再次对待测试的一维码图像进行二值化处理,以得到第三二值化图像,并且分别对第三二值化图像进行水平投影和垂直投影,以对待测试的一维码图像中的断码进行检测,从而根据标准的一维码图像来对待测试的一维码图像提供依据,进而能够对任意类型的一维码进行断码检测,且能够纠正任意角度的倾斜,滤除明码和码线间噪点的干扰,达到一维码码线中间断开、两端缺失、断码线数量稳定检出的效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的一维码断码视觉检测算法的流程图;
图2是根据本发明实施例的学习流程的流程图;
图3是根据本发明实施例的测试流程的流程图;
图4是根据本发明实施例的角度纠偏的流程图;
图5是根据本发明实施例的检测断码的流程图;
图6是根据本发明实施例的标准的一维码区域图像的示意图;
图7是根据本发明实施例的第一二值化图像的示意图;
图8是根据本发明实施例的待测试的一维码区域图像的示意图;
图9是根据本发明实施例的第二二值化图像的示意图;
图10是根据本发明实施例的骨骼图的示意图;
图11是根据本发明实施例的角度纠偏效果图;
图12是根据本发明实施例的断码检测效果图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明的实施例,提供了一种一维码断码视觉检测算法。
如图1所示,根据本发明实施例的一维码断码视觉检测算法包括:
步骤S101,获取标准的一维码图像,并对标准的一维码图像进行二值化处理,以得到第一二值化图像,以及根据第一二值化图像,获取标准的一维码的码线的长度;
步骤S103,获取待测试的一维码图像,并对待测试的一维码图像进行二值化处理,以得到第二二值化图像,对第二二值化图像进行骨骼化,以得到骨骼图,并根据骨骼图和码线的长度,对骨骼图中的码线的角度进行调整;
步骤S105,重置骨骼图的图像颜色,再次对待测试的一维码图像进行二值化处理,以得到第三二值化图像,并且分别对第三二值化图像进行水平投影和垂直投影,以对待测试的一维码图像中的断码进行检测。
借助于本发明的上述技术方案,通过获取标准的一维码图像,并对标准的一维码图像进行二值化处理,以得到第一二值化图像,以及根据第一二值化图像,获取标准的一维码的码线的长度,随后获取待测试的一维码图像,并对待测试的一维码图像进行二值化处理,以得到第二二值化图像,对第二二值化图像进行骨骼化,以得到骨骼图,并根据骨骼图和码线的长度,对骨骼图中的码线的角度进行调整,最后重置骨骼图的图像颜色,再次对待测试的一维码图像进行二值化处理,以得到第三二值化图像,并且分别对第三二值化图像进行水平投影和垂直投影,以对待测试的一维码图像中的断码进行检测,从而根据标准的一维码图像来对待测试的一维码图像提供依据,进而能够对任意类型的一维码进行断码检测,且能够纠正任意角度的倾斜,滤除明码和码线间噪点的干扰,达到一维码码线中间断开、两端缺失、断码线数量稳定检出的效果。
根据本发明的一个实施例,根据第一二值化图像,获取标准的一维码的码线的长度包括:步骤S11,确定第一二值化图像中的多个第一连通域,并分别计算每个第一连通域的最小的第一外接矩形;步骤S12,分别计算每个第一外接矩形的中心到第一二值化图像的上边缘和下边缘的距离值,并将距离值和参数值进行比较,在距离值小于参数值的情况下,将中心对应的第一连通域中的所有像素点的灰度值置为0;步骤S13,统计每个第一连通域中的像素点的数量,并将像素点的数量小于第一阈值的第一连通域中的所有像素点的灰度值置为0;步骤S14,统计剩余的第一连通域的第一外接矩形的长边,并求取所有长边的第一平均值,以得到码线的长度。
根据本发明的一个实施例,参数值为第一二值化图像的图像高度的 1/4。
根据本发明的一个实施例,步骤S2进一步包括:获取待测试的一维码图像;统计待测试的一维码图像中的所有像素点的灰度值,并求取所有灰度值的算术平均值;将算数平均值和预先设定的第二阈值进行比较,在算数平均值大于第二阈值的情况下,对待测试的一维码图像进行二值化处理,以得到第二二值化图像,对第二二值化图像进行骨骼化,以得到骨骼图,并根据骨骼图和码线的长度,对骨骼图中的码线的角度进行调整,在算数平均值小于第二阈值的情况下,退出检测。
根据本发明的一个实施例,对第二二值化图像进行骨骼化,以得到骨骼图,并根据骨骼图和码线的长度,对骨骼图中的码线的角度进行调整包括:步骤S21,通过水平扫描的方式逐行从左到右检测每个第二连通域中的像素点的灰度值,并记录第二连通域中每行第一个和最后一个灰度值为第三阈值的像素点,并将每行的第一个和最后一个的中点作为每行的第一中轴点;步骤S22,通过垂直扫描的方式逐列从上到下检测每个第二连通域中的像素点的灰度值,并记录第二连通域中每列第一个和最后一个灰度值为第三阈值的像素点,并将每列的第一个和最后一个的中点作为每列的第二中轴点;步骤S23,根据第一中轴点和第二中轴点,绘制骨骼图,并将骨骼图中的重复骨骼点删除,其中,第一中轴点和第二中轴点均为骨骼点;步骤S24,根据每个第二连通域中的第一中轴点和第二中轴点,获取每个第二连通域的质点,并将骨骼图中的所有骨骼点重新组成第三连通域,以及获取每个第三连通域的最小的第二外接矩形的长边值和短边值;步骤 S25,将长边值大于码线的长度的一半且短边值大于6个像素的第三连通域中的像素点滤除,并计算每个骨骼点的质心坐标,以及根据质心坐标,对骨骼图中的码线的角度进行调整。
根据本发明的一个实施例,分别对第三二值化图像进行水平投影和垂直投影,以对待测试的一维码图像中的断码进行检测包括:步骤S31,对第三二值化图像进行水平投影,并记录每行像素灰度值等于第四阈值的像素的数量,并根据码线的长度,将小于码线的长度一半的像素行的灰度值置为0;步骤S32,对第三二值化图像进行垂直投影,并记录每列像素灰度值等于第四阈值的像素的数量,并根据码线的长度,将小于码线的长度一半的像素行的灰度值置为0;步骤S33,切分第三二值化图像中的每一条码线,并对每条码线进行垂直投影,计算所有列的像素的数量的第二平均值,以及根据码线的长度和预设的第五阈值,获取码线长度下限,其中,码线长度下限为所有列的像素的数量阈值;步骤S34,比较第二平均值和码线长度下限,在第二平均值小于码线长度下限的情况下,计算一维码的码线区域内的第三连通域的数量,若第三连通域的数量为1,记录第三连通域的位置,若第三连通域的数量大于1,记录第三连通域的间隙的位置,在第二平均值大于码线长度下限的情况下,进行下一条码线的检测,直至所有码线检测完毕。
为了更好的描述本发明的技术方案,下面通过具体的实施例进行描述。
本发明中的一维码断码检测算法能够对任意类型的一维码进行断码检测,且能够纠正一维码的任意角度的倾斜,还能滤除明码和码线间噪点的干扰,从而达到一维码码线中间断开、两端缺失、断码线数量稳定检出的效果。下面结合附图2-12,对本发明的技术方案进行详细的说明,具体如下:
本发明的一维码断码检测算法具体包括:学习过程、测试过程、角度纠偏、检测断码,其中,如图2所示,该学习过程是指截取一维码(区域) 图像,随后对该一维码区域图像进行二值化,以获取第一二值化图像,随后计算该第一二值化图像中第一连通域的外接矩形及其中心,剔除外接矩形中心纵坐标位于图像上1/4和下1/4区域的第一连通域,并滤除外接矩形面积小于10的第一连通域,随后计算所有符合要求的第一连通域的长边的平均值,具体地:
1、截取标准的一维码区域图像:通过绘制包含一维码(或条码)区域的窗口,确定待检测的条码区域,截取包含条码的窗口区域的图像;
2、二值化图像:判断图片中像素点RGB值,将符合要求的像素点保留并将其灰度值设置为255(即将其设置为白色,下文灰度值设置为255 与其含义类似),不合符合要求的点的灰度值设置为0,以获得第一二值化图像;
3、计算第一二值化图像中第一连通域的外接矩形及其中心:选取符合八连通的像素点作为第一连通域,计算每个第一连通域的最小外接矩形,通过最小外接矩形的左上角坐标和边长,求取外接矩形的中心坐标,即通过该外接矩形的一个边的端点的坐标以及该边的边长,从而能够获取该外接矩形的中心坐标;
4、剔除外接矩形中心纵坐标位于该第一二值化图像上1/4和下1/4区域的第一连通域:分别计算每个外接矩形中点到图像上边缘和下边缘的距离,剔除距离值小于图像高度1/4的连通域,剔除方法为将连通域所有像素点灰度值置为0;
5、滤除外接矩形面积小于10的第一连通域:统计第一二值化图像中的第一连通域的像素点数量,剔除掉像素点数量小于10的第一连通域,滤除方法为将连通域所有像素点的灰度置为0;
6、计算所有符合要求的连通域长边的平均值:统计第一二值化图像中剩余的所有第一连通域的最小外接矩形的长边,求取所有长边的平均值,将其作为一维码的码线的长度。
此外,如图3所示,该测试过程是指截取待测试的一维码区域图像,计算图像的平均灰度(retgray),若平均灰度小于设定值,则退出检测;若平均灰度大于设定值,对该待测试的一维码图像进行二值化,以获得第二二值化图像,随后纠正第二二值化图像中的一维码角度,随后重置第二二值化图像的颜色,以获得第三二值化图像,并对第三二值化图像进行检测断码,同时标记断码位置,具体地:
1、截取待测试的一维码区域图像:通过绘制包含条码区域的窗口,确定待检测的条码区域,截取包含条码的窗口区域的图像;
2、计算图像的平均灰度:将图像由RGB三通道图像转换为单通道灰度图像,统计图像中所有像素点的灰度值,求取灰度值的算术平均值,将平均灰度与检测前设定的阈值进行比较,若小于阈值,则退出检测;
3、图像二值化:判断图片中像素点RGB值,将符合要求的像素点保留并将灰度值设置为255,不合符合要求的点的灰度值设置为0,以获得第二二值化图像;
4、纠正一维码角度:请参照角度纠偏的流程,在此不再详细描述;
5、重置图像颜色:将图像中像素点灰度值小于200的灰度值置为0,大于200的像素点的灰度值设置为255;
6、检测断码:请参照检测断码的流程,在此不再详细描述。
另外,如图4所示,上文提及的角度纠偏是指骨骼化二值图,并将浮点型骨骼坐标转换为整数型坐标,绘制骨骼图,过滤坐标重复骨骼点,求取每个骨骼的质心,逐骨骼计算最小外接矩形及其长边与短边,滤除长边小于码线长一半且短边大于6个像素的骨骼,存储符合规格骨骼,应用最小二乘方法,以骨骼质心为采样点,求取直线及其角度a,反方向旋转a,具体地:
1、骨骼化二值图:以第二二值化图像中的第二连通域为单位,扫描每个第二连通域水平中轴坐标和垂直中轴坐标,这两组坐标作为条码的骨骼点。水平扫描的方式为逐行从左向右检测每个像素点的灰度值,记录下第一个和最后一个灰度值为255的像素点坐标,求取每行中记录的第一个点和最后一个点的中点作为水平中轴的像素点,直到扫描完所有行的中轴点;垂直扫描方式为逐列从上向下检测每个像素点的灰度值,记录下第一个和最后一个灰度值为255的像素点坐标,求取每列中记录的第一个和最后一个的中点作为垂直中轴的像素点,直到扫描完所有列的中轴点;
2、将浮点型骨骼坐标转换为整数型坐标:将浮点型的数据利用四舍五入的方式转换为整型数据;
3、绘制骨骼图:根据求取的骨骼坐标,将其在灰度图像上以灰度值为 255的形式绘制出来,也即将骨骼坐标置为白点,其中,骨骼坐标是指骨骼点的坐标;
4、过滤坐标重复骨骼点:将每个骨骼点与剩余的骨骼点进行比较,若横纵坐标完全相同,则删除其中之一;若没有重复,则保留骨骼点;
5、求取每个骨骼的质心:对每个第二连通域的骨骼坐标求取质心,方法是所有坐标点的横坐标求和,并求平均值作为质心的横坐标,所有坐标点的纵坐标求和,并求平均值作为质心的纵坐标;
6、逐骨骼计算最小外接矩形及其长边与短边:所有的骨骼点按照八连通的方式组第三成连通域,并根据第三连通域,计算第三连通域的最小外接矩形,并记录下该最小外接矩形的长边和短边;
7、滤除长边小于码线长一半且短边大于6个像素的骨骼:以编程时,输入的条码线的长度作为门限值,滤除长边小于条码线长一半或者是短边大于6个像素的骨骼;
8、应用最小二乘方法,以骨骼质心为采样点,求取直线及其角度a,反方向旋转a:计算每个骨骼的质心,其方法为求取所有属于骨骼的所有点的横纵坐标的平均值,分别作为质心的横纵坐标,以求得的所有质心作为采样点,利用最小二乘法求取直线方程,再求取直线的角度,反向旋转条码图像,则得到角度纠正后的条码图像。
此外,如图5所示,上文提及的检测断码是指水平投影第三二值化图像,滤除小于最大长度50%的像素行,垂直投影第三二值化图像,滤除码线间噪声,切分每一条码线,逐条检测每条码线破损的长度是否大于输入的码线破损长度,若大于,计算该条码线区域的连通域数量,若仅为一个连通域,记录该连通域的位置,若为两个或以上连通域,则记录连通域间隙的位置,具体地:
1、水平投影第三二值化图像:计算每行像素点灰度值为255的像素点数量,并记录每行像素点数量值;
2、滤除小于最大长度50%的像素行:从上一步中记录的每行像素点的数组中查找到像素点数量最多的那一行,将长度小于最大码线长度50%的像素行灰度值置为0,达到滤除明码的目的;
3、垂直投影第三二值化图像,滤除码线间噪声:计算每列像素点灰度值为255的像素点数量,并记录该值,将像素点数量小于条码线长一半的那列像素点灰度值全部置为0,已达到滤除码线间的噪点的目的;
4、切分每一条码线:计算每条条码的外接矩形,按照其横坐标的起点和终点截取每条条码的区域;
5、逐条检测每条码线破损的长度是否大于输入的码线的破损长度:垂直投影每条码线,计算所有列的像素点数量的平均值,记为LAVG(其中, L表示长度,AVG表示平均值,LAVG表示列像素点数量的平均值,或第二平均值),按照公式计算ThresholdL(ThresholdL表示列像素点数量阈值,或码线长度下限):码线长×(1-破损度),其中,码线长是学习过程中得到的参数,破损度是测试过程中输入的参数,ThresholdL为列的像素点数量阈值,并将LAVG与ThresholdL比较,若LAVG小于等于ThresholdL,则计算该条码线区域内第三连通域数量,若第三连通域数量不为1,则计算多个第三连通域中心的位置,若为1,则记录条码线中心位置;若LAVG 大于ThresholdL,则进行下一条条码线的检测,直到所有条码线全部检测完毕,退出断码检测,返回所有记录的条码破损的位置。
下面通过一个具体的实施例对该一维码断码视觉检测算法进行说明,具体地:
步骤1:先进行学习过程,通过获取条码图像,进行预处理,提取出条码线的长度;
步骤2:进行测试过程:获取待测试的条码图像,然后进行如下步骤:
(1)截取一维码区域图像;
(2)判定图中是否存在一维码,若不存在,退出检测,若存在,继续检测;
(3)预处理条码图像,其中包括二值化图像、纠正一维码角度、滤除明码和码线间噪点的干扰、逐条切分条码;
(4)检测断码。
步骤1和步骤2中获取一维码图像的方式:用穹顶光源对被测物进行照明,达到均匀、稳定的照明效果,用CCD相机采集被测条码的图像。
步骤1中学习过程:
(1)获得条码图像后,绘制包含条码和明码区域的矩形窗口,并截取该矩形区域作为待检测条码区域,如图6所示;
(2)预处理过程实施步骤如下:
1)、设置二值化参数,也即设定RGB各通道的基准值和容差范围,R 通道的基准值为113、容差为116,G通道的标准值为115、容差为80,B 通道的基准值为79、容差为80,判断图片中像素点RGB值,将符合要求的像素点保留并将其灰度值设为255,并将不合符合要求的点的灰度值设为0,达到二值化的效果,如图7所示;
2)、计算二值化后连通域的外接矩形及其中心:通过选取符合八连通的像素点作为连通域,计算每个连通域的最小外接矩形,通过最小外接矩形的左上角坐标和边长,求取矩形的中心坐标;
3)、剔除外接矩形中心纵坐标位于图像上1/4和下1/4区域的连通域:分别计算每个外接矩形中点到图像上边缘和下边缘的距离,剔除距离值小于图像高度1/4的连通域,剔除方法为将连通域所有像素点灰度值置为0;
4)、滤除外接矩形面积小于10的连通域:统计连通域的像素点数量,剔除掉像素点数量小于10的连通域,
5)、计算所有符合要求连通域长边的平均值:统计剩余连通域最小外接矩形的长边,求取长边的平均值,将其作为一根条码的长度,其值为78。
步骤2为测试流程:
1)、截取一维码区域的操作与步骤1中相同,如在获得条码图像后,绘制包含条码和明码区域的矩形窗口,并截取该矩形区域作为待检测条码区域,如图8所示;
2)、判定图中是否存在一维码,其思想在于,如果不存在一维码,则该区域为纯色区域。具体计算过程如下:
统计图像中所有像素点的灰度值,求取灰度值的算术平均值retgray,其值为57.5,将retgray与检测前设定的阈值(25)进行比较,该值大于阈值,进行后续检测;
预处理过程如下:
1)、二值化过程与学习流程中的二值化相同,效果如图9所示;
2)、纠正一维码角度:骨骼化二值图,通过垂直水平扫描连通域的中轴坐标,得到中轴坐标的数组,将浮点型骨骼坐标转换为整数型坐标,绘制骨骼图,如图10所示,过滤坐标重复骨骼点,求取每个骨骼的质心;
3)、滤除明码和码线间噪点的干扰:逐骨骼计算最小外接矩形及其长边与短边,滤除长边小于码线长一半且短边大于6个像素的骨骼,存储符合规格骨骼,应用最小二乘方法,以骨骼质心为采样点,求取直线及其角度a,反方向旋转a,旋转后的图像如图11所示。
4)、逐条切分条码:按照步骤3)中求出的每条条码线的短边及其左上角坐标,逐条分割出条码线,这样能够达到兼容任意常规条码类型的效果。
5)、检测断码:垂直投影每条码,计算所有列像素点数量的平均值,记为LAVG,计算出码线长与1减去破损度之差的积,记为ThresholdL,本次检测中码线长78,要检测的破损度为0.2,故ThresholdL为15.6,将 LAVG与ThresholdL比较,如图12中,有四处位置满足断码检测条件,分别用灰度矩形框进行了表示。
综上所述,借助于本发明的上述技术方案,通过获取标准的一维码图像,并对标准的一维码图像进行二值化处理,以得到第一二值化图像,以及根据第一二值化图像,获取标准的一维码的码线的长度,随后获取待测试的一维码图像,并对待测试的一维码图像进行二值化处理,以得到第二二值化图像,对第二二值化图像进行骨骼化,以得到骨骼图,并根据骨骼图和码线的长度,对骨骼图中的码线的角度进行调整,最后重置骨骼图的图像颜色,再次对待测试的一维码图像进行二值化处理,以得到第三二值化图像,并且分别对第三二值化图像进行水平投影和垂直投影,以对待测试的一维码图像中的断码进行检测,从而根据标准的一维码图像来对待测试的一维码图像提供依据,进而能够对任意类型的一维码进行断码检测,且能够纠正任意角度的倾斜,滤除明码和码线间噪点的干扰,达到一维码码线中间断开、两端缺失、断码线数量稳定检出的效果。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (4)

1.一种一维码断码视觉检测方法,其特征在于,包括:
步骤S1,获取标准的一维码图像,并对所述标准的一维码图像进行二值化处理,以得到第一二值化图像,以及根据所述第一二值化图像,获取所述标准的一维码的码线的长度;
步骤S2,获取待测试的一维码图像,并对所述待测试的一维码图像进行二值化处理,以得到第二二值化图像,对所述第二二值化图像进行骨骼化,以得到骨骼图,并根据所述骨骼图和所述码线的长度,对所述骨骼图中的码线的角度进行调整;
步骤S3,重置所述骨骼图的图像颜色,再次对重置所述骨骼图的图像颜色后的所述待测试的一维码图像进行二值化处理,以得到第三二值化图像,并且分别对所述第三二值化图像进行水平投影和垂直投影,以对所述待测试的一维码图像中的断码进行检测,
其中,所述步骤S2中对所述第二二值化图像进行骨骼化,以得到骨骼图,并根据所述骨骼图和所述码线的长度,对所述骨骼图中的码线的角度进行调整包括:
步骤S21,通过水平扫描的方式逐行从左到右检测每个第二连通域中的像素点的灰度值,并记录所述第二连通域中每行第一个和最后一个灰度值为第三阈值的像素点,并将每行的第一个和最后一个的中点作为每行的第一中轴点;
步骤S22,通过垂直扫描的方式逐列从上到下检测每个第二连通域中的像素点的灰度值,并记录所述第二连通域中每列第一个和最后一个灰度值为第三阈值的像素点,并将每列的第一个和最后一个的中点作为每列的第二中轴点;
步骤S23,根据所述第一中轴点和所述第二中轴点,绘制所述骨骼图,并将所述骨骼图中的重复骨骼点删除,其中,所述第一中轴点和所述第二中轴点均为所述骨骼点;
步骤S24,根据每个第二连通域中的第一中轴点和所述第二中轴点,获取所述每个第二连通域的质点,并将所述骨骼图中的所有骨骼点重新组成第三连通域,以及获取每个第三连通域的最小的第二外接矩形的长边值和短边值;
步骤S25,将所述长边值大于所述码线的长度的一半且所述短边值大于6个像素的第三连通域中的像素点滤除,并计算每个骨骼点的质心坐标,以及根据所述质心坐标,对所述骨骼图中的码线的角度进行调整,
其中,所述步骤S3中分别对所述第三二值化图像进行水平投影和垂直投影,以对所述待测试的一维码图像中的断码进行检测包括:
步骤S31,对所述第三二值化图像进行水平投影,并记录每行像素灰度值等于第四阈值的像素的数量,并根据所述码线的长度,将小于所述码线的长度一半的像素行的灰度值置为0;
步骤S32,对所述第三二值化图像进行垂直投影,并记录每列像素灰度值等于第四阈值的像素的数量,并根据所述码线的长度,将小于所述码线的长度一半的像素行的灰度值置为0;
步骤S33,切分所述第三二值化图像中的每一条码线,并对每条码线进行垂直投影,计算所有列的像素的数量的第二平均值,以及根据所述码线的长度和预设的第五阈值,获取码线长度下限,其中,所述码线长度下限为所有列的像素的数量阈值;
步骤S34,比较所述第二平均值和所述码线长度下限,在所述第二平均值小于所述码线长度下限的情况下,计算所述一维码的码线区域内的所述第三连通域的数量,若第三连通域的数量为1,记录所述第三连通域的位置,若所述第三连通域的数量大于1,记录所述第三连通域的间隙的位置,在所述第二平均值大于所述码线长度下限的情况下,进行下一条码线的检测,直至所有码线检测完毕。
2.根据权利要求1所述的一维码断码视觉检测方法,其特征在于,根据所述第一二值化图像,获取所述标准的一维码的码线的长度包括:
步骤S11,确定所述第一二值化图像中的多个第一连通域,并分别计算每个第一连通域的最小的第一外接矩形;
步骤S12,分别计算每个第一外接矩形的中心到所述第一二值化图像的上边缘和下边缘的距离值,并将所述距离值和参数值进行比较,在所述距离值小于所述参数值的情况下,将所述中心对应的第一连通域中的所有像素点的灰度值置为0;
步骤S13,统计每个第一连通域中的像素点的数量,并将所述像素点的数量小于第一阈值的第一连通域中的所有像素点的灰度值置为0;
步骤S14,统计剩余的第一连通域的第一外接矩形的长边,并求取所有长边的第一平均值,以得到所述码线的长度。
3.根据权利要求2所述的一维码断码视觉检测方法,其特征在于,所述参数值为所述第一二值化图像的图像高度的1/4。
4.根据权利要求2所述的一维码断码视觉检测方法,其特征在于,所述步骤S2进一步包括:
获取所述待测试的一维码图像;
统计所述待测试的一维码图像中的所有像素点的灰度值,并求取所有灰度值的算术平均值;
将所述算术平均值和预先设定的第二阈值进行比较,在所述算术平均值大于所述第二阈值的情况下,对所述待测试的一维码图像进行二值化处理,以得到第二二值化图像,对所述第二二值化图像进行骨骼化,以得到骨骼图,并根据所述骨骼图和所述码线的长度,对所述骨骼图中的码线的角度进行调整,在所述算术平均值小于所述第二阈值的情况下,退出检测。
CN201710842878.3A 2017-09-18 2017-09-18 一维码断码视觉检测方法 Active CN109522767B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710842878.3A CN109522767B (zh) 2017-09-18 2017-09-18 一维码断码视觉检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710842878.3A CN109522767B (zh) 2017-09-18 2017-09-18 一维码断码视觉检测方法

Publications (2)

Publication Number Publication Date
CN109522767A CN109522767A (zh) 2019-03-26
CN109522767B true CN109522767B (zh) 2022-07-29

Family

ID=65768207

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710842878.3A Active CN109522767B (zh) 2017-09-18 2017-09-18 一维码断码视觉检测方法

Country Status (1)

Country Link
CN (1) CN109522767B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110245536B (zh) * 2019-05-09 2024-02-27 深圳盈达信息科技有限公司 条码识别方法
CN112017147B (zh) * 2019-05-31 2024-03-22 杭州三坛医疗科技有限公司 一种骨骼图像的提取方法及装置
CN110889842B (zh) * 2019-11-28 2023-08-22 常德金鹏印务有限公司 一种小盒烟标松散度检测方法
CN111882572A (zh) * 2020-07-27 2020-11-03 珠海格力电器股份有限公司 一种一维码检测方法、装置、存储介质及电子设备
CN112069851B (zh) * 2020-09-07 2023-12-22 凌云光技术股份有限公司 一种dm码区域的获取方法及装置
CN115358998B (zh) * 2022-08-22 2023-06-16 法博思(宁波)半导体设备有限公司 一种随机阵列图片中点坐标的获取方法及系统
CN116415610B (zh) * 2023-06-12 2023-10-03 恒银金融科技股份有限公司 银行存折条形码的处理方法、装置和电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102034078A (zh) * 2010-12-24 2011-04-27 东信和平智能卡股份有限公司 图像条码识别的编码方法
CN103761499A (zh) * 2014-01-20 2014-04-30 江苏物联网研究发展中心 基于多核dsp的条码识别方法
CN103793679A (zh) * 2014-03-05 2014-05-14 江苏物联网研究发展中心 基于DaVinci技术的一维条码识别方法
CN105335681A (zh) * 2014-07-14 2016-02-17 株式会社理光 条形码识别装置、文档图像管理系统以及条形码识别方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002042053A (ja) * 2000-07-21 2002-02-08 Fujitsu Ltd バーコードスキャナ
JP3542971B2 (ja) * 2001-03-02 2004-07-14 Necインフロンティア株式会社 バーコード読み取り方法及びバーコード読み取り装置並びにプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102034078A (zh) * 2010-12-24 2011-04-27 东信和平智能卡股份有限公司 图像条码识别的编码方法
CN103761499A (zh) * 2014-01-20 2014-04-30 江苏物联网研究发展中心 基于多核dsp的条码识别方法
CN103793679A (zh) * 2014-03-05 2014-05-14 江苏物联网研究发展中心 基于DaVinci技术的一维条码识别方法
CN105335681A (zh) * 2014-07-14 2016-02-17 株式会社理光 条形码识别装置、文档图像管理系统以及条形码识别方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于EAN-13条形码识别的改进算法;徐益峰等;《计算机与数字工程》;20110731;全文 *

Also Published As

Publication number Publication date
CN109522767A (zh) 2019-03-26

Similar Documents

Publication Publication Date Title
CN109522767B (zh) 一维码断码视觉检测方法
CN110084241B (zh) 一种基于图像识别的电表自动读数方法
CN110611770B (zh) 线阵相机行频与物体运动速度是否匹配的判断方法及系统
CN109977944B (zh) 一种数字水表读数的识别方法
CN110533686B (zh) 线阵相机行频与物体运动速度是否匹配的判断方法及系统
CN115131354B (zh) 一种基于光学手段的实验室用塑料薄膜缺陷检测方法
CN109191516B (zh) 结构光模组的旋转纠正方法、装置及可读存储介质
CN107356213B (zh) 滤光片同心度测量方法及终端设备
WO2017050082A1 (zh) 一种端子位置的确定方法及终端设备
CN113298769B (zh) Fpc软排线外观缺陷检测方法、系统和介质
CN113658092A (zh) 一种基于图像处理的铝电解电容缺陷检测方法
CN114820594A (zh) 基于图像检测板材封边缺陷的方法、相关设备及存储介质
CN110288619B (zh) 基于视觉的太阳花模组表面螺钉孔位置检测方法
CN113283439B (zh) 基于图像识别的智能计数方法、装置及系统
CN116563298B (zh) 基于高斯拟合的十字线中心亚像素检测方法
CN113569859B (zh) 一种图像处理方法、装置、电子设备及存储介质
CN114125435A (zh) 一种用于网络摄像机的图像缺陷智能检测方法
CN114937003A (zh) 一种针对玻璃面板的多类型缺陷检测系统和方法
CN107239776A (zh) 倾斜图像校正的方法和装置
CN113888504A (zh) mesh组件检测方法、装置和存储介质
JP5846100B2 (ja) 表示装置の欠陥検査方法
CN111445431A (zh) 一种图像分割方法、终端设备及计算机可读存储介质
CN108205672B (zh) 一种显示屏幕的自动标定方法
JP5249855B2 (ja) 電子部品の端子位置検出方法、および電子部品の端子位置検出システム
CN117593302B (zh) 一种缺陷零件溯源方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant