一种条码中标识字符的定位方法及装置与流程

文档序号:11654816阅读:196来源:国知局
一种条码中标识字符的定位方法及装置与流程

本发明涉及条码识别技术领域,尤其涉及一种条码中标识字符的定位方法及装置。



背景技术:

条码是将宽度不等的多个黑条和白条,按照一定的编码规则排列,用以表达一组信息的图形标识符。常见的条码是由反射率相差很大的黑条和白条排成的平行线图案。条码可以标出物品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点、类别、日期等许多信息,因而在商品流通、图书管理、邮政管理、银行系统等许多领域都得到广泛的应用。在对条码进行识别时,首先需要定位出条码中标识字符的位置,根据条码中标识字符的位置,确定条码中的每个数据字符的位置,对数据字符进行识别,从而识别该条码中包含的信息。

现有对条码中标识字符的定位方法主要包括:针对条码确定一条扫描线,针对扫描线上的边界点,根据预设的标识字符的编码信息进行匹配,如果只匹配出标识字符的一个位置,将该位置作为条码中标识字符的位置;如果匹配出标识字符的至少两个位置,如果标识字符为起始符,选取所述至少两个位置中相对扫描线的解码方向上位于最左端的标识字符的位置为条码中起始符的位置,如果标识字符为结束符,选取所述至少两个位置中相对扫描线的解码方向上位于最右端的标识字符的位置为条码中结束符的位置。

然而,现有技术在对条码中标识字符进行定位时,如果条码存在纹理干扰,在非条码的纹理区域也可能会定位出与预设的标识字符的编码信息匹配的位置,造成对条码中标识字符的错误定位,导致对条码的识别失败,降低了对条码识别的成功率。



技术实现要素:

本发明提供一种条码中标识字符的定位方法及装置,用以解决现有技术中存在对条码中标识字符定位不准确,对条码识别的成功率低的问题。

本发明实施例公开了一种条码中标识字符的定位方法,所述方法包括:

针对条码设定至少两条扫描线,根据预设的标识字符的编码信息,确定标识字符在每条扫描线上的边界点,将每个边界点作为候选点集中的候选点,所述标识字符包括起始符和结束符;

针对候选点集的任意一个候选点,根据该候选点及与该候选点所在的扫描线相邻的扫描线上的其他每个候选点的连线上各像素点的梯度值,确定所述候选点与每个其他候选点的连线抽样梯度,根据连线抽样梯度,确定所述候选点与其他候选点对应的标识字符边界子点集;

根据所述标识字符边界子点集,确定每个标识字符边界点集,并对所述标识字符进行定位。

进一步地,所述根据该候选点及与该候选点所在的扫描线相邻的扫描线上的其他每个候选点的连线上各像素点的梯度值,确定所述候选点与每个其他候选点的连线抽样梯度包括:

针对该候选点与该候选点所在的扫描线相邻的扫描线上的对应的每个其他候选点,在该候选点与该其他候选点的连线上等间隔的选取设定数量的像素点;将所述设定数量的各像素点的梯度值之和,确定为该候选点与对应的该其他候选点的连线抽样梯度。

进一步地,所述根据连线抽样梯度确定所述候选点与该候选点对应的其他候选点的标识字符边界子点集包括:

根据所述候选点与每个其他候选点的连线抽样梯度,选择连线抽样梯度最大且大于设定阈值的其他候选点,确定所述候选点与选择的所述其他候选点的标识字符边界子点集。

进一步地,所述根据确定的每个标识字符边界点集,对所述标识字符进行定位包括:

判断每个标识字符边界点集上候选点的数量是否大于设定数量,如果是,根据该标识字符边界点集,对所述标识字符进行定位。

进一步地,所述根据该标识字符边界点集,对所述标识字符进行定位包括:

如果当前待定位的标识字符为起始符,则根据位于最左端的标识字符边界点集,确定标识字符的位置;

如果当前待定位的标识字符为结束符,则根据位于最右端的标识字符边界点集,确定标识字符的位置。

本发明实施例公开了一种条码中标识字符的定位装置,所述装置包括:

生成模块,用于针对条码设定至少两条扫描线,根据预设的标识字符的编码信息,确定标识字符在每条扫描线上的边界点,将每个边界点作为候选点集中的候选点,所述标识字符包括起始符和结束符;

确定模块,用于针对候选点集的任意一个候选点,根据该候选点及与该候选点所在的扫描线相邻的扫描线上的其他每个候选点的连线上各像素点的梯度值,确定所述候选点与每个其他候选点的连线抽样梯度,根据连线抽样梯度,确定所述候选点与其他候选点对应的标识字符边界子点集;

定位模块,用于根据所述标识字符边界子点集,确定每个标识字符边界点集,并对所述标识字符进行定位。

进一步地,所述确定模块,具体用于针对该候选点与该候选点所在的扫描线相邻的扫描线上的对应的每个其他候选点,在该候选点与该其他候选点的连线上等间隔的选取设定数量的像素点;将所述设定数量的各像素点的梯度值之和,确定为该候选点与对应的该其他候选点的连线抽样梯度。

进一步地,所述确定模块,具体用于根据所述候选点与每个其他候选点的连线抽样梯度,选择连线抽样梯度最大且大于设定阈值的其他候选点,确定所述候选点与选择的所述其他候选点的标识字符边界子点集。

进一步地,所述定位模块,具体用于判断每个标识字符边界点集上候选点的数量是否大于设定数量,如果是,根据该标识字符边界点集,对所述标识字符进行定位。

进一步地,所述定位模块,具体用于如果当前待定位的的标识字符为起始符,则根据位于最左端的标识字符边界点集,确定标识字符的位置;如果当前待定位的标识字符为结束符,则根据位于最右端的标识字符边界点集,确定标识字符的位置。

本发明公开了一种条码中标识字符的定位方法及装置,所述方法包括:针对条码设定至少两条扫描线,根据预设的标识字符的编码信息,确定标识字符在每条扫描线上的边界点,将每个边界点作为候选点集中的候选点,所述标识字符包括起始符和结束符;针对候选点集的任意一个候选点,根据该候选点及与该候选点所在的扫描线相邻的扫描线上的其他每个候选点的连线上各像素点的梯度值,确定所述候选点与每个其他候选点的连线抽样梯度,根据连线抽样梯度,确定所述候选点与其他候选点对应的标识字符边界子点集;根据所述标识字符边界子点集,确定每个标识字符边界点集,并对所述标识字符进行定位。由于在本发明实施例中,根据位于标识字符上的对应边界点之间的连线抽样梯度,确定标识字符边界子点集,从而确定的每个标识字符边界点集,避免了条码中存在的纹理干扰,提高了对条码中标识字符定位的准确性,进而提高了条码识别的成功率。

附图说明

图1为本发明实施例1提供的一种条码中标识字符的定位过程示意图;

图2为本发明实施例1提供的一种条码边界点示意图;

图3为本发明实施例4提供的一种标识字符定位过程示意图;

图4为本发明实施例5提供的一种条码中标识字符的定位装置结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1:

图1为本发明实施例提供的一种条码中标识字符的定位过程示意图,该过程包括:

s101:针对条码设定至少两条扫描线,根据预设的标识字符的编码信息,确定标识字符在每条扫描线上的边界点,将每个边界点作为候选点集中的候选点,所述标识字符包括起始符和结束符。

本发明实施例提供的一种条码中标识字符的定位方法,应用于电子设备,该电子设备可以是手持式条码阅读器、固定式条码阅读器等条码阅读设备,也可以是具有条码解码功能的手机、平板电脑等终端设备。

条码是将宽度不等的多个黑条和白条,按照一定的编码规则排列,用以表达一组信息的图形标识符,条码中的边界点是指条码中用于区别白条与黑条边界或黑条与白条边界的像素点,位于白条与黑条或黑条与白条的边界处,所以边界点对应着一个较大的梯度值。在本发明实施例中,对条码的边界点进行确定是现有技术,不再进行赘述。

具体的,针对条码设定有至少两条扫描线,根据预设的标识字符的编码信息,可以确定标识字符在每条扫描线上的边界点,将每个边界点作为候选点集中的候选点,其中,所述标识字符包括起始符和结束符。针对每条扫描线,在根据预设的标识字符的编码信息中记录的标识字符对应的边界点数量及每个边界点之间的距离,以该扫描线上每个边界点为起点确定符合标识字符编码信息的边界点组合时,可能会确定出不少于两个边界点组合,并且所述不少于两个边界点组合中包含的边界点可能重复,将所述不少于两个边界点组合中包含的边界点进行去重,将去重后的边界点作为候选点集中的候选点。在本发明实施例中,根据预设的标识字符的编码信息,确定标识字符在每条扫描线上的边界点是现有技术,不再进行赘述。

s102:针对候选点集的任意一个候选点,根据该候选点及与该候选点所在的扫描线相邻的扫描线上的其他每个候选点的连线上各像素点的梯度值,确定所述候选点与每个其他候选点的连线抽样梯度,根据连线抽样梯度,确定所述候选点与其他候选点对应的标识字符边界子点集。

图2为本发明实施例提供的一种条码边界点示意图,条码中不存在纹理干扰时,条码中的白条和黑条之间是平行的,根据像素点是否由黑色像素点变化为白色像素点,或者由白色像素点变为黑色像素点,可以在每条扫描线上确定出边界点,并且每条扫描线上确定出的边界点中,如果位于不同扫描线上对应的边界点位于同一黑条或白条的边界,则位于不同扫描线上对应的边界点的连线位于一条直线上。而针对条码中纹理干扰定位出的边界点,因纹理干扰出现是无规律的、离散的,虽然相邻扫描线上的边界点可以连接为直线,但是位于该直线上的边界点的数量也是远小于扫描线的数量的。

因为候选点是根据预设的标识字符的编码信息选取的符合预设的标识字符的编码信息的边界点,如果位于不同扫描线上对应的候选点位于同一黑条或白条的边界,将所述对应的候选点连线为直线,该直线上的每个像素点对应的梯度值与边界点对应的梯度值相同,而边界点对应的梯度值较大,因此对应的候选点之间的连线抽样梯度较大;如果位于不同扫描线上对应的候选点不位于同一黑条或白条的边界,虽然对应的候选点也能连线为直线,但是该直线上的像素点中只有部分、甚至不存在像素点对应的梯度值与边界点对应的梯度值相同,该直线上大部分像素点对应的梯度值较小,甚至为零,因此对应的候选点之间的连线抽样梯度较小。

而针对条码中纹理干扰定位出的候选点,因纹理干扰出现是无规律的、离散的,因纹理干扰定位出的候选点与各候选点之间的连线确定的直线上的各像素点中也只有部分、甚至不存在像素点对应的梯度值与边界点对应的梯度值相同,该直线上大部分像素点对应的梯度值较小,甚至为零,因此对应的候选点之间的连线抽样梯度较小。针对每个候选点,判断是否存在与该候选点连线梯度大于阈值的候选点,如果不在与该候选点连线梯度大于阈值的候选点,则说明该候选点是通过纹理干扰定位出的候选点,将该候选点剔除。

具体的,针对候选点集中的任一个候选点,根据该候选点及与该候选点所在的扫描线相邻的扫描线上的其他每个候选点的连线上各像素点的梯度值,确定所述候选点与每个其他候选点的连线抽样梯度,根据连线抽样梯度,确定所述候选点与其他候选点对应的标识字符边界子点集。例如:可以将该候选点,及与该候选点所在的扫描线相邻的扫描线上的其他每个候选点的连线上各像素点的平均梯度值,作为该候选点与每个其他候选点的连线抽样梯度,将该候选点与该候选点所在的扫描线相邻的扫描线上连线抽样梯度大于设定阈值的候选点进行连接,确定所述候选点与所述连线抽样梯度大于设定阈值的候选点对应的标识字符边界子点集;当然了,也可以是将该候选点与该候选点所在的扫描线相邻的扫描线上与该候选点连线抽样梯度最大的候选点进行连接,确定所述候选点与所述连线抽样梯度最大的候选点对应的标识字符边界子点集。

s103:根据所述标识字符边界子点集,确定每个标识字符边界点集,并对所述标识字符进行定位。

具体的,可以根据每个标识字符边界子点集中的候选点,确定存在相同候选点的标识字符边界子点集之间的对应关系,根据标识字符边界子点集之间的对应关系,将存在直接或间接对应关系的标识字符边界子点集聚为一类,从而确定出每个标识字符边界点集。根据各标识字符边界点集所在的位置,如果标识字符为起始符或结束符中的一种,根据各标识字符边界点集中位于最左端和位于最右端的边界点集对应的位置确定标识字符的位置;其中,左端和右端是根据扫描线的解码方向确定的,其中,扫描线解码的起始方向为左端,扫描线解码的结束方向为右端。

由于在本发明实施例中,根据位于标识字符上的对应边界点之间的连线抽样梯度,确定标识字符边界子点集,从而确定的每个标识字符边界点集,避免了条码中存在的纹理干扰,提高了对条码中标识字符定位的准确性,进而提高了条码识别的成功率。

实施例2:

为了提高对条码中标识字符定位的准确性,在上述实施例的基础上,在本发明实施例中,所述根据该候选点及与该候选点所在的扫描线相邻的扫描线上的其他每个候选点的连线上各像素点的梯度值,确定所述候选点与每个其他候选点的连线抽样梯度包括:

针对该候选点与该候选点所在的扫描线相邻的扫描线上的对应的每个其他候选点,在该候选点与该其他候选点的连线上等间隔的选取设定数量的像素点;将所述设定数量的各像素点的梯度值之和,确定为该候选点与对应的该其他候选点的连线抽样梯度。

具体的,针对该候选点与该候选点所在的扫描线相邻的扫描线上的对应的每个其他候选点,在该候选点与该其他候选点的连线上等间隔的选取设定数量的像素点,所述设定数量可以为3、5等,将选取的所述设定数量的像素点的梯度值进行求和,将所述设定数量的像素点的梯度值之和作为该候选点与对应的该其他候选点的连线抽样梯度。在确定时,每个连线上确定的像素点的数量、确定像素点的方法相同即可。

例如:存在候选点a,与候选点a所在的扫描线相邻的扫描线上对应有候选点b、候选点c,设定数量为3,候选点a与候选点b之间等间隔选取3个像素点对应的梯度值分别为216、236、247,所述3个像素点的梯度值之和为699,确定候选点a与候选点b的连线抽样梯度为699,候选点a与候选点c之间等间隔选取3个像素点对应的梯度值分别为243、215、231,所述3个像素点的梯度值之和为689,确定候选点a与候选点c的连线抽样梯度为689。

实施例3:

为了提高对条码中标识字符定位的准确性,在上述各实施例的基础上,在本发明实施例中,所述根据连线抽样梯度确定所述候选点与该候选点对应的其他候选点的标识字符边界子点集包括:

根据所述候选点与每个其他候选点的连线抽样梯度,选择连线抽样梯度最大且大于设定阈值的其他候选点,确定所述候选点与选择的所述其他候选点的标识字符边界子点集。

在本发明实施例中,为了保证确定的每个标识字符边界子点集准确性,针对候选点之间的连线抽样梯度设置有设定阈值,所述设定阈值为预先根据位于同一黑条和白条之间的相邻扫描线上的候选点之间的连线抽样梯度,及连线上像素点的数量设定的。具体的,根据所述候选点与每个其他候选点的连线抽样梯度,选择连线抽样梯度最大且大于设定阈值的其他候选点,将所述候选点与选择的所述其他候选点作为标识字符边界子点集中的候选点,构成标识字符边界子点集。例如:候选点a与候选点b、候选点c、候选点d的连线抽样梯度分别为85、115、599,设定阈值为555,候选点a与候选点d之间的连线抽样梯度最大且大于设定阈值,将候选点a与候选点d作为标识字符边界子点集中的候选点,构成标识字符边界子点集。此时,针对每个候选点确定的边界子点集可能是一个,也可以是多个,也可能没有。

实施例4:

为了提高对条码中标识字符定位的准确性,在上述各实施例的基础上,在本发明实施例中,所述根据确定的每个标识字符边界点集,对所述标识字符进行定位包括:

判断每个标识字符边界点集上候选点的数量是否大于设定数量,如果是,根据该标识字符边界点集,对所述标识字符进行定位。

具体的,根据每个标识字符边界子点集中的候选点,确定存在相同候选点的标识字符边界子点集之间的对应关系,根据标识字符边界子点集之间的对应关系,将相互之间存在直接或间接对应关系的标识字符边界子点集聚为一类,从而确定出每个标识字符边界点集。确定每个标识字符边界点集后,如果标识字符边界点集上的候选点的数量大于设定数量阈值,则说明该标识字符边界点集为正确条码纹理区域确定的边界点集,根据候选点的数量大于设定数量阈值的各标识字符边界点集上位于最左端的标识字符边界点集和位于最右端的标识字符边界点集,确定标识字符的位置。其中,扫描线解码的起始方向为左端,扫描线解码的结束方向为右端,所述数量阈值可以根据扫描线的数量确定,例如:所述数量阈值可以为扫描线数量的三分之一或扫描线数量的二分之一等。

图3为本发明实施例提供的一种标识字符定位过程示意图;该过程包括:

s301:针对条码设定至少两条扫描线,根据预设的标识字符的编码信息,选取每条扫描线上符合预设的标识字符的编码信息的边界点作为候选点集中的候选点。

s302:判断候选点集中是否存在候选点,如果是,进行s303,如果否,进行s309。

s303:在所述候选点集中任意选取一个候选点作为搜索起点,将该候选点添加到候选边界点集中,并在候选点集中删除该候选点。

s304:计算候选点集中与该搜索起点所在的扫描线相邻的扫描线上的候选点和该搜索起点的连线抽样梯度。

s305:判断是否存在该连线抽样梯度大于设定阈值的候选点,如果是,进行s306,如果否,进行s307。

s306:将所述候选点集中与该搜索起点所在的扫描线相邻的扫描线上与该搜索起点连线抽样梯度最大且大于设定阈值的候选点作为搜索起点,并将该候选点添加到候选边界点集中,并在候选点集中删除该候选点,进行s304。

s307:判断候选边界点集中候选点的数量是否大于设定数量阈值,如果是,进行s308,如果否,删除所述候选边界点集中的每个候选点,进行s302。

s308:将所述候选边界点集中的候选点确定为一个边界点集,并删除所述候选边界点集中的每个候选点,进行s302。

s309:根据确定的每个边界点集,确定标识字符的位置。

所述根据该标识字符边界点集,对所述标识字符进行定位包括:

如果当前待定位的的标识字符为起始符,则根据位于最左端的标识字符边界点集,确定标识字符的位置;

如果当前待定位的标识字符为结束符,则根据位于最右端的标识字符边界点集,确定标识字符的位置。

具体的,如果当前待定位的标识字符为起始符,根据位于最左端的标识字符边界点集确定起始符的起始位置,从而确定出起始符的位置;如果当前待定位的标识字符为结束符,根据位于最右端的标识字符边界点集确定出结束符的结束位置,从而确定出结束符的位置,其中,扫描线解码的起始方向为左端,扫描线解码的结束方向为右端。。

实施例5:

图4为本发明实施例提供的一种条码中标识字符的定位装置结构示意图,该装置包括:

生成模块41,用于针对条码设定至少两条扫描线,根据预设的标识字符的编码信息,确定标识字符在每条扫描线上的边界点,将每个边界点作为候选点集中的候选点,所述标识字符包括起始符和结束符;

确定模块42,用于针对候选点集的任意一个候选点,根据该候选点及与该候选点所在的扫描线相邻的扫描线上的其他每个候选点的连线上各像素点的梯度值,确定所述候选点与每个其他候选点的连线抽样梯度,根据连线抽样梯度,确定所述候选点与其他候选点对应的标识字符边界子点集;

定位模块43,用于根据所述标识字符边界子点集,确定每个标识字符边界点集,并对所述标识字符进行定位。

所述确定模块42,具体用于针对该候选点与该候选点所在的扫描线相邻的扫描线上的对应的每个其他候选点,在该候选点与该其他候选点的连线上等间隔的选取设定数量的像素点;将所述设定数量的各像素点的梯度值之和,确定为该候选点与对应的该其他候选点的连线抽样梯度。

所述确定模块42,具体用于根据所述候选点与每个其他候选点的连线抽样梯度,选择连线抽样梯度最大且大于设定阈值的其他候选点,确定所述候选点与选择的所述其他候选点的标识字符边界子点集。

所述定位模块43,具体用于判断每个标识字符边界点集上候选点的数量是否与所述扫描线的数量相同,如果相同,根据该标识字符边界点集,对所述标识字符进行定位。

所述定位模块43,具体用于如果当前待定位的的标识字符为起始符,则根据位于最左端的标识字符边界点集,确定标识字符的位置;如果当前待定位的标识字符为结束符,则根据位于最右端的标识字符边界点集,确定标识字符的位置。

本发明公开了一种条码中标识字符的定位方法及装置,所述方法包括:针对条码选取至少两条扫描线,根据预设的标识字符的编码信息,确定标识字符在每条扫描线上的边界点,将每个边界点作为候选点集中的候选点,所述标识字符包括起始符和结束符;针对候选点集的任意一个候选点,根据该候选点及与该候选点所在的扫描线相邻的扫描线上的其他每个候选点的连线上各像素点的梯度值,确定所述候选点与每个其他候选点的连线抽样梯度,根据连线抽样梯度,确定所述候选点与其他候选点对应的标识字符边界子点集;根据所述标识字符边界子点集,确定每个标识字符边界点集,并对所述标识字符进行定位。由于在本发明实施例中,根据位于标识字符上的对应边界点之间的连线抽样梯度,确定标识字符边界子点集,从而确定的每个标识字符边界点集,避免了条码中存在的纹理干扰,提高了对条码中标识字符定位的准确性,进而提高了条码识别的成功率。

对于系统/装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1