一种条码解码方法及装置转让专利

申请号 : CN201710170774.2

文献号 : CN107016318B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 马诗洁谢世斌周璐张兴明李铭

申请人 : 浙江华睿科技有限公司

摘要 :

本发明公开了一种条码解码方法及装置,用以解决现有技术条码在溢墨或过曝,条空的宽度发生变化时,可能造成解码不准确的问题。该方法包括:确定待解码的条码中每个标识字符的条空宽度的第一比值,标识字符包括起始字符和/或终止字符;识别待解码的条码的类型的每个标识字符的标准模板中的条空宽度的第二比值;根据第一比值和第二比值确定的缩放比例对每个解码字符中的条宽度或空宽度进行调整,对调整后的每个解码字符进行解码。由于在本发明实施例中,根据缩放比例对条空宽度进行调整,调整后的条空宽度更加接近标准的条空宽度,减弱条码溢墨或者过曝的情况导致的条码的条空宽度变化,对调整后的解码字符进行解码,能够有效的提高解码准确性。

权利要求 :

1.一种条码解码方法,其特征在于,所述方法包括:

确定待解码的条码中每个标识字符的条宽度和空宽度的第一比值,其中,所述标识字符包括起始字符和/或终止字符;

根据所述待解码的条码的类型,识别所述类型的条码的所述每个标识字符的标准模板中的条宽度与空宽度的第二比值;其中,第一比值和第二比值均为根据预设位置上的条宽度和预设位置上的空宽度的比值;

根据所述第一比值和所述第二比值,确定待解码的条码中每个解码字符的缩放比例;

根据所述缩放比例对所述每个解码字符中的条宽度或空宽度进行调整,对条宽度或空宽度进行调整后的每个解码字符进行解码。

2.如权利要求1所述的方法,其特征在于,当所述标识字符包括起始字符和终止字符时,所述根据所述第一比值和所述第二比值,确定待解码的条码中每个解码字符的缩放比例包括:根据起始字符的第一比值和所述第二比值,确定待解码的条码中每个解码字符的第一子缩放比例;

根据终止字符的第一比值和所述第二比值,确定待解码的条码中每个解码字符的第二子缩放比例;

根据所述第一子缩放比例和所述第二子缩放比例,确定待解码的条码中每个解码字符的缩放比例。

3.如权利要求1或2所述的方法,其特征在于,所述确定待解码的条码中每个标识字符的条宽度和空宽度的第一比值包括:根据待解码的条码中位于至少两条行扫描线上的像素点,识别每条行扫描线上的每个标识字符的条宽度和空宽度的第一子比值;

根据所述每条行扫描线上的第一子比值以及行扫描线的条数,确定所述待解码的条码中每个标识字符的条宽度和空宽度的第一比值。

4.如权利要求1所述的方法,其特征在于,所述根据所述缩放比例对所述每个解码字符中的条宽度或空宽度进行调整,对条宽度或空宽度进行调整后的每个解码字符进行解码包括:识别每个解码字符的空宽度或条宽度,根据所述缩放比例对所述空宽度或条宽度进行调整;

根据每个解码字符中的调整后的条宽度与未调整的空宽度或调整后的空宽度与未调整的条宽度,确定每个解码字符对应的每个调整后的解码字符,对每个调整后的解码字符进行解码。

5.如权利要求1所述的方法,其特征在于,确定所述待解码的条码的类型包括:识别所述待解码的条码的起始字符和/或终止字符的条空宽度;

根据预先保存的每种类型的条码对应的起始字符和/或终止字符的标准条空宽度,以及识别的所述条空宽度,确定所述待解码的条码的类型。

6.一种条码解码装置,其特征在于,所述装置包括:

确定模块,用于确定待解码的条码中每个标识字符的条宽度和空宽度的第一比值,其中,所述标识字符包括起始字符和/或终止字符;

识别模块,用于根据所述待解码的条码的类型,识别所述类型的条码的所述每个标识字符的标准模板中的条宽度与空宽度的第二比值;其中,第一比值和第二比值均为根据预设位置上的条宽度和预设位置上的空宽度的比值;

所述确定模块,还用于根据所述第一比值和所述第二比值,确定待解码的条码中每个解码字符的缩放比例;

调整解码模块,用于根据所述缩放比例对所述每个解码字符中的条宽度或空宽度进行调整,对条宽度或空宽度进行调整后的每个解码字符进行解码。

7.如权利要求6所述的装置,其特征在于,所述确定模块,具体用于根据起始字符的第一比值和所述第二比值,确定待解码的条码中每个解码字符的第一子缩放比例;根据终止字符的第一比值和所述第二比值,确定待解码的条码中每个解码字符的第二子缩放比例;

根据所述第一子缩放比例和所述第二子缩放比例,确定待解码的条码中每个解码字符的缩放比例。

8.如权利要求6或7所述的装置,其特征在于,所述确定模块,具体用于根据待解码的条码中位于至少两条行扫描线上的像素点,识别每条行扫描线上的每个标识字符的条宽度和空宽度的第一子比值;根据所述每条行扫描线上的第一子比值以及行扫描线的条数,确定所述待解码的条码中每个标识字符的条宽度和空宽度的第一比值。

9.如权利要求6所述的装置,其特征在于,所述调整解码模块,具体用于识别每个解码字符的空宽度或条宽度,根据所述缩放比例对所述空宽度或条宽度进行调整;根据每个解码字符中的调整后的条宽度与未调整的空宽度或调整后的空宽度与未调整的条宽度,确定每个解码字符对应的每个调整后的解码字符,对每个调整后的解码字符进行解码。

10.如权利要求6所述的装置,其特征在于,所述确定模块,还用于识别所述待解码的条码的起始字符和/或终止字符的条空宽度;根据预先保存的每种类型的条码对应的起始字符和/或终止字符的标准条空宽度,以及识别的所述条空宽度,确定所述待解码的条码的类型。

说明书 :

一种条码解码方法及装置

技术领域

[0001] 本发明涉及条码技术领域,特别涉及一种条码解码方法及装置。

背景技术

[0002] 条码技术是在计算机技术与信息技术基础上发展起来的一门集编码、印刷、识别、数据采集和处理于一身的新兴技术。条码技术由于其识别快速、准确、可靠以及成本低等优点,被广泛应用于商业、图书管理、仓储、邮电、交通和工业控制等领域,并且势必在逐渐兴起的“物联网”应用中发挥重大的作用。
[0003] 基于视觉系统的条码检测方案中,主要分为条码定位和条码解码。在条码解码过程中,如何提高解码的正确率,一直是一个重要的研究课题。
[0004] 现有条码解码方案主要包括:1、基于条码宽度的模板匹配算法:通过记录条空中所含的像素点的个数确定条空的宽度,将确定的宽度与标准宽度的模板进行匹配确定出对应的码值。2、平均距离法:定位出条码的起始位置后得出该条码的总宽度,根据条码总的模板长度和总宽度,求出单位模板的像素数,进而测量出条码中的各个条空的宽度,将确定的宽度与标准宽度的模板进行匹配确定出对应的码值。3、相似边距离法:通过计算相邻条空宽度之和,与标准字符模板的相邻条空宽度之和进行匹配来解码,但若计算结果相似或者条码编码逻辑不严谨时,则解码可能错误。4、将方法1的基于条码宽度的模板匹配算法与方法3的相似边距离法相结合,利用相似边距离法进行解码,对于相似边距离法得出的结果相似或者条码编码逻辑不严谨的情形,利用条码宽度的模板匹配算法进行误差补偿,进行解码。
[0005] 采用上述各个方法对条码进行解码时,解码的正确率与条码中的条空宽度有直接关系,但因为印刷等其他问题,条空的宽度可能并不准确,例如在溢墨或过曝情况下,条空的宽度将会发生变化,并且可能会出现相邻条空宽度之和相同。因此采用现有条码解码方法,将可能造成解码的不准确。

发明内容

[0006] 本发明提供一种条码解码方法及装置,用以解决现有技术中条码在溢墨或过曝情况下,条空的宽度发生变化时,可能造成解码不准确的问题。
[0007] 为达到上述目的,本发明实施例公开了一种条码解码方法,所述方法包括:
[0008] 确定待解码的条码中每个标识字符的条宽度和空宽度的第一比值,其中,所述标识字符包括起始字符和/或终止字符;
[0009] 根据所述待解码的条码的类型,识别所述类型的条码的每个标识字符的标准模板中的条宽度与空宽度的第二比值;
[0010] 根据所述第一比值和所述第二比值,确定待解码的条码中每个解码字符的缩放比例;
[0011] 根据所述缩放比例对所述每个解码字符中的条宽度或空宽度进行调整,对条宽度或空宽度进行调整后的每个解码字符进行解码。
[0012] 进一步地,当所述标识字符包括起始字符和终止字符时,所述根据所述第一比值和所述第二比值,确定待解码的条码中每个解码字符的缩放比例包括:
[0013] 根据起始字符的第一比值和所述第二比值,确定待解码的条码中每个解码字符的第一子缩放比例;
[0014] 根据终止字符的第一比值和所述第二比值,确定待解码的条码中每个解码字符的第二子缩放比例;
[0015] 根据所述第一子缩放比例和所述第二子缩放比例,确定待解码的条码中每个解码字符的缩放比例。
[0016] 进一步地,所述确定待解码的条码中每个标识字符的条宽度和空宽度的第一比值包括:
[0017] 根据待解码的条码中位于至少两条行扫描线上的像素点,识别每条行扫描线上的每个标识字符的条宽度和空宽度的第一子比值,根据所述每条行扫描线上的第一子比值以及行扫描线的条数,确定所述待解码的条码中每个标识字符的条宽度和空宽度的第一比值。
[0018] 进一步地,所述根据所述缩放比例对所述每个解码字符中的条宽度或空宽度进行调整,对条宽度或空宽度进行调整后的每个解码字符进行解码包括:
[0019] 识别每个解码字符的空宽度或条宽度,根据所述缩放比例对所述空宽度或条宽度进行调整;
[0020] 根据每个解码字符中的调整后的条宽度与未调整的空宽度或调整后的空宽度与未调整的条宽度,确定每个解码字符对应的每个调整后的解码字符,对每个调整后的解码字符进行解码。
[0021] 进一步地,确定所述待解码的条码的类型包括:
[0022] 识别所述待解码的条码的起始字符和/或终止字符的条空宽度;
[0023] 根据预先保存的每种类型的条码对应的起始字符和/或终止字符的标准条空宽度,以及识别的所述条空宽度,确定所述待解码的条码的类型。
[0024] 本发明实施例公开了一种条码解码装置,所述装置包括:
[0025] 确定模块,用于确定待解码的条码中每个标识字符的条宽度和空宽度的第一比值,其中,所述标识字符包括起始字符和/或终止字符;
[0026] 识别模块,用于根据所述待解码的条码的类型,识别所述类型的条码的每个标识字符的标准模板中的条宽度与空宽度的第二比值;
[0027] 所述确定模块,还用于根据所述第一比值和所述第二比值,确定待解码的条码中每个解码字符的缩放比例;
[0028] 调整解码模块,用于根据所述缩放比例和所述类型的待解码的条码中的每个解码字符的宽度对所述每个解码字符中的条宽度和空宽度进行调整,对调整后的每个解码字符进行解码。
[0029] 进一步地,所述确定模块,具体用于根据起始字符的第一比值和所述第二比值,确定待解码的条码中每个解码字符的第一子缩放比例;根据终止字符的第一比值和所述第二比值,确定待解码的条码中每个解码字符的第二子缩放比例;根据所述第一子缩放比例和所述第二子缩放比例,确定待解码的条码中每个解码字符的缩放比例。
[0030] 进一步地,所述确定模块,具体用于根据待解码的条码中位于至少两条行扫描线上的像素点,识别每条行扫描线上的每个标识字符的条宽度和空宽度的第一子比值;根据所述每条行扫描线上的第一子比值以及行扫描线的条数,确定所述待解码的条码中每个标识字符的条宽度和空宽度的第一比值。
[0031] 进一步地,所述调整解码模块,具体用于识别每个解码字符的空宽度或条宽度,根据所述缩放比例对所述空宽度或条宽度进行调整;根据每个解码字符中的调整后的条宽度与未调整的空宽度或调整后的空宽度与未调整的条宽度,确定每个解码字符对应的每个调整后的解码字符,对每个调整后的解码字符进行解码。
[0032] 进一步地,所述确定模块,还用于识别所述待解码的条码的起始字符和/或终止字符的条空宽度;根据预先保存的每种类型的条码对应的起始字符和/或终止字符的标准条空宽度,以及识别的所述条空宽度,确定所述待解码的条码的类型。
[0033] 本发明实施例公开了一种条码解码方法及装置,所述方法包括:确定待解码的条码中每个标识字符的条宽度和空宽度的第一比值,其中,所述标识字符包括起始字符和/或终止字符;根据所述待解码的条码的类型,识别所述类型的条码的每个标识字符的标准模板中的条宽度与空宽度的第二比值;根据所述第一比值和所述第二比值,确定待解码的条码中每个解码字符的缩放比例;根据所述缩放比例对所述每个解码字符中的条宽度或空宽度进行调整,对条宽度或空宽度进行调整后的每个解码字符进行解码。由于在本发明实施例中,确定待解码的条码中起始字符和/或终止字符的条宽度和空宽度的第一比值,并根据起始字符和/或终止字符的标准模板中的条空宽度的第二比值和所述第一比值确定每个解码字符的缩放比例,根据所述缩放比例对所述每个解码字符中的条宽度或空宽度进行调整,从而使调整后的条宽度或空宽度更加接近标准的对应的条宽度或空宽度,减弱条码溢墨或者过曝的情况导致的条码中的条空宽度变化,进而对调整后的解码字符进行解码能够有效的提高解码准确性。

附图说明

[0034] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0035] 图1为本发明实施例1提供的一种条码解码过程示意图;
[0036] 图2为本发明实施例提供的一种条码解码过程示意图;
[0037] 图3A为本发明实施例提供的一种发生溢墨情况的条码;
[0038] 图3B为本发明实施例提供的一种发生溢墨情况的条码;
[0039] 图4为本发明实施例1提供的一种解码装置结构图。

具体实施方式

[0040] 为了使条码在溢墨或过曝情况下,提高条码解码的准确性,本发明实施例提供了一种条码解码方法及装置。
[0041] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0042] 图1为本发明实施例1提供的一种条码解码过程示意图,该过程包括以下步骤:
[0043] S101:确定待解码的条码中每个标识字符的条宽度和空宽度的第一比值,其中,所述标识字符包括起始字符和/或终止字符。
[0044] 本发明实施例提供的条码解码方法可以应用于电子设备,该电子设备可以是手持式条码阅读器、固定式条码阅读器等条码阅读设备,也可以是具有条码解码功能的手机、平板电脑等终端设备。所述电子设备可以识别所述待解码的条码中的每个标识字符的位置,并且可以识别出标识字符中的条宽度和空宽度。电子设备在识别每个标识字符的位置时,可以根据每个标识字符的标识信息确定所述标识字符的位置,所述标识信息可以是所述标识字符中的条宽度和空宽度。电子设备在识别条宽度和空宽度时,可以根据像素点的灰度值以及像素点的坐标来识别。所述识别所述待解码的条码中的标识字符的位置的过程属于现有技术,在本发明实施例中对该过程不进行详细赘述。所述识别每个标识字符中的条宽度和空宽度的过程属于现有技术,在本发明实施例中对该过程不进行详细赘述。
[0045] 所述条宽度和所述空宽度可以是所述标识字符中的所有条的总宽度和所有空的总宽度,也可以是预设位置上的条宽度和预设位置上的空宽度。当识别出标识字符中的条宽度和空宽度后,就可以确定所述条宽度和空宽度的第一比值了。所述预设位置上的条宽度和预设位置上的空宽度,例如可以是,所述标识字符包含两个条和两个空,所述预设的位置可以是第一个条和第一个空,在确定待解码的条码中标识字符的条宽度和空宽度的第一比值时,则可以确定所述所述标识字符中的第一个条的宽度与第一个空的宽度的第一比值,所述标识字符也可以是起始字符,可以是终止字符,也可以是起始字符和终止字符。
[0046] S102:根据所述待解码的条码的类型,识别所述类型的条码的每个标识字符的标准模板中的条宽度与空宽度的第二比值。
[0047] 电子设备在扫描到待解码的条码时,可以确定出所述待解码的条码的类型,每种类型的条码的每个标识字符有其对应的标准模板,该标准模板中的条宽度和空宽度是确定的。根据确定的所述标准模板中的条宽度和空宽度,确定每个标识字符的标准模板中的条宽度与空宽度的第二比值。所述条宽度和所述空宽度可以是标准模板中所述标识字符中的所有条的总宽度和所有空的总宽度,也可以是预设位置上的条宽度和预设位置上的空宽度。所述标识字符可以是起始字符,可以是终止字符,也可以是起始字符和终止字符。
[0048] 在确定第一比值和第二比值时,待解码的条码采用的标识字符与标准模板采用的标识字符是相同的,即当待解码的条码采用的标识字符为起始字符时,所述标准模板采用的标识字符也为起始字符,当待解码的条码采用的标识字符为终止字符时,所述标准模板采用的标识字符也为终止字符。
[0049] 所述第一比值与所述第二比值的确定方法是相同的,可以是均为所有条的总宽度和所有空的总宽度的比值,也可以是均为预设位置上的条宽度和预设位置上的空宽度的比值。
[0050] 当所述标识字符为所述起始字符和终止字符时,在确定了每个标识字符的第一比值和第二比值时,判断待解码的条码中的起始字符的第一比值与标准模板的起始字符的第二比值的第一差值,以及待解码的条码中的终止字符的第一比值与标准模板的终止字符的第二比值的第二差值,取差值最小的标识字符对应的第一比值和第二比值。
[0051] S103:根据所述第一比值和所述第二比值,确定待解码的条码中每个解码字符的缩放比例。
[0052] 在确定出第一比值和第二比值后,可以根据所述第一比值和所述第二比值,确定待解码的条码中每个解码字符的缩放比例,具体的可以是将第一比值与第二比值的商作为第三比值,也可以是所述将第二比值与第一比值的商作为第三比值,所述第三比值为待解码的条码中每个解码字符的缩放比例。当所述第三比值为第一比值与第二比值的商时,如果所述第三比值大于1,则说明所述待解码的条码中的条宽度变大,空宽度变小,则所述待解码的条码出现了溢墨情况;如果所述第三比值小于1,则说明所述待解码的条码中的条宽度变小,空宽度变大,则所述条码出现了过曝情况;如果所述第三比值等于1,则说明所述待解码的条码是正常,没有出现溢墨或过曝的情况。由此可以类推出,当所述第三比值为第二比值与第一比值的商时,所述待解码的条码中的条宽度与空宽度的变化情况,相信本领域技术人员可以根据本发明实施例的描述,确定相应的实施方式,在此不进行详细描述。
[0053] S104:根据所述缩放比例对所述每个解码字符中的条宽度或空宽度进行调整,对条宽度或空宽度进行调整后的每个解码字符进行解码。
[0054] 当确定出所述缩放比例后,就可以知道该待解码的条码是出现了溢墨的情况还是出现了过曝的情况,从而确定出该待解码的条码中解码字符的条宽度和空宽度是应该进行放大调整还是进行缩小调整,以便使调整后的条宽度或空宽度更加接近标准模板对应的条宽度或空宽度。所以当确定出所述缩放比例后,可以根据所述缩放比例对所述每个解码字符中的条宽度或空宽度进行调整,具体的可以是,识别每个解码字符的空宽度或条宽度,根据所述缩放比例对所述空宽度或条宽度进行调整。
[0055] 根据缩放比例对所述空宽度或条宽度进行调整可以包括多种方法,例如,当所述缩放比例为第一比值与第二比值的商,缩放比例对应的第三比值大于1时,则说明待解码的条码中的条宽度变大,空宽度变小,则所述待解码的条码出现了溢墨情况,此时可以将所述条宽度除以所述第三比值,从而对所述待解码的条码中的条宽度进行缩小,将所述空宽度乘以所述第三比值从而对所述待解码的条码中的空宽度进行放大。
[0056] 当对所述每个解码字符中的条宽度或空宽度进行调整后,就可以对调整后的每个解码字符进行解码了。在解码时,可以采用模板宽度匹配方法,或者相似边距离测量方法,或者两者结合,或者其他的解码方法均可。所述对调整后的每个解码字符进行解码的过程属于现有技术,在本发明实施例中对该过程不进行赘述。
[0057] 由于在本发明实施例中,确定待解码的条码中起始字符和/或终止字符的条宽度和空宽度的第一比值,并根据起始字符和/或终止字符的标准模板中的条空宽度的第二比值和所述第一比值确定每个解码字符的缩放比例,根据所述缩放比例对所述每个解码字符中的条宽度或空宽度进行调整,从而使调整后的条宽度或空宽度更加接近标准的对应的条宽度或空宽度,减弱条码溢墨或者过曝的情况导致的条码中的条空宽度变化,进而对调整后的解码字符进行解码能够有效的提高解码准确性。
[0058] 实施例2:
[0059] 为了进一步提高确定的所述缩放比例的准确性,从而进一步达到提高解码准确性的效果,在上述实施例的基础上,在本发明实施中,当所述标识字符包括起始字符和终止字符时,所述根据所述第一比值和所述第二比值,确定待解码的条码中每个解码字符的缩放比例包括:
[0060] 根据起始字符的第一比值和所述第二比值,确定待解码的条码中每个解码字符的第一子缩放比例;
[0061] 根据终止字符的第一比值和所述第二比值,确定待解码的条码中每个解码字符的第二子缩放比例;
[0062] 根据所述第一子缩放比例和所述第二子缩放比例,确定待解码的条码中每个解码字符的缩放比例。
[0063] 在本发明实施例中,当所述标识字符为起始字符或终止字符时,所述第一比值为所述待解码的条码中每个标识字符的条宽度和空宽度的比值,即待解码的条码中起始字符有其对应的第一比值,待解码的条码中终止字符有其对应的第一比值。
[0064] 待解码的条码中起始字符的第一比值和待解码的条码中终止字符的第一比值可以相同,也可以是不同。
[0065] 所述第二比值为每个标识字符的标准模板中的条宽度与空宽度的比值,即起始字符的标准模板有其对应的第二比值,终止字符的标准模板有其对应的第二比值。
[0066] 当所述标识字符为起始字符和终止字符,在确定待解码的条码中每个解码字符的缩放比例时,具体的可以是先根据起始字符的第一比值和所述第二比值,确定待解码的条码中每个解码字符的第一子缩放比例,以及根据终止字符的第一比值和所述第二比值,确定待解码的条码中每个解码字符的第二子缩放比例,再根据所述第一子缩放比例和所述第二子缩放比例,确定待解码的条码中每个解码字符的缩放比例。具体的可以是将第一子缩放比例和所述第二子缩放比例的平均值确定为所述缩放比例,这种取平均值确定缩放比例的方法,可以使确定的缩放比例更加精确。
[0067] 在确定第一子缩放比例和第二子缩放比例时,可以是根据任意一条行扫描线上的待解码的起始字符的条宽度和空宽度的第一比值与起始字符的标准模板中的条宽度与空宽度的第二比值确定一子缩放比例,根据任意一条行扫描线上的待解码的终止字符的条宽度和空宽度的第一比值与终止字符的标准模板中的条宽度与空宽度的第二比值确定第二子缩放比例。为了进一步提高确定的所述缩放比例的准确性,进一步达到提高解码准确性的效果,在本发明实施例中,所述确定待解码的条码中每个标识字符的条宽度和空宽度的第一比值包括:
[0068] 根据待解码的条码中位于至少两条行扫描线上的像素点,识别每条行扫描线上的每个标识字符的条宽度和空宽度的第一子比值;
[0069] 根据所述每条行扫描线上的第一子比值以及行扫描线的条数,确定所述待解码的条码中每个标识字符的条宽度和空宽度的第一比值。
[0070] 在本发明实施例中,所述至少两条行扫描线可以位于待解码的条码的任意位置上,为了进一步提高解码的准确性,可以将待解码的条码沿着条码的方向,按照预设的等分份数,采用分割线将所述待解码的条码等分为若干等份,每条分割线构成一条行扫描线。所述预设的等分份数可以是进行3等分,则对应的行扫描线为2条,也可以是进行2等分,则对应的行扫描线为1条。等分份数越多,对应的行扫描线越多,每条行扫描线均是平行的。
[0071] 当行扫描线为至少两条时,根据待解码的条码中位于至少两条行扫描线上的像素点,识别出每条行扫描线上的每个标识字符中的条宽度和空宽度,并确定出该行扫描线上的每个标识字符中的条宽度和空宽度的第一子比值,根据所述每条行扫描线上的第一子比值以及行扫描线的条数,确定所述待解码的条码中的每个标识字符的条宽度和空宽度的第一比值。具体的可以是,将所述每条行扫描线上对应标识字符的第一子比值相加,再除以所述行扫描线的条数,即将该标识字符的所有第一子比值的平均值作为该标识字符的第一比值。
[0072] 例如,行扫描线为3条,这3条行扫描线上的起始字符第一子比值分别为1.0、1.2、1.1,所述起始字符第一比值为(1.0+1.1+1.2)/3=1.1。
[0073] 当扫描线条数较多时,确定第一子比值的过程也可以是将每个第一子比值进行排序,取位于中间位置上的第一子比值作为第一比值。例如,行扫描线为5条,这5条行扫描线上终止字符的第一子比值分别为1.0、1.2、1.1,1.0、1.3,将所有的第一子比值由小至大进行排序为:1.0、1.0、1.1、1.2、1.3,取位于中间位置上的第一子比值作为第一子比值,则所述终止字符的第一比值为1.1。
[0074] 当行扫描线只有一条时,则将该行扫描线上的每个标识字符的第一子比值作为该标识字符的第一比值。
[0075] 当行扫描线为至少两条时,在确定每个标识字符的第一比值时,可以采用相同的方法确定,也可以采用不同的方法确定。
[0076] 每个标识字符都有其对应的的第一子比值,即待解码的条码中起始字符有其对应的第一子比值,待解码的条码中终止字符有其对应的第一子比值。每条行扫描线上的待解码的条码中起始字符的第一子比值和该条行扫描线上的待解码的条码中终止字符的第一子比值可以相同,也可以是不同。
[0077] 上述通过多条行扫描线确定出来的第一比值更加精确。
[0078] 实施例3:
[0079] 在对解码字符中的条宽度和空宽度进行调整时,可以是仅调整条宽度,也可以是仅调整空宽度,为了使调整后的每个解码字符中的条宽度和空宽度更加准确,进一步达到提高解码的准确性的效果,在上述各实施例的基础上,在本发明实施例中,所述根据所述缩放比例对所述每个解码字符中的条宽度或空宽度进行调整,对条宽度或空宽度进行调整后的每个解码字符进行解码包括:
[0080] 识别每个解码字符的空宽度或条宽度,根据所述缩放比例对所述空宽度或条宽度进行调整;
[0081] 根据每个解码字符中的调整后的条宽度与未调整的空宽度或调整后的空宽度与未调整的条宽度,确定每个解码字符对应的每个调整后的解码字符,对每个调整后的解码字符进行解码。
[0082] 在本发明实施例中,在根据所述缩放比例对所述每个解码字符中的条宽度或空宽度进行调整时,可以是识别每个解码字符的条宽度或空宽度,根据所述缩放比例对所述每个解码字符中的条宽度或空宽度进行调整,并根据每个解码字符中的调整后的条宽度与未调整的空宽度或调整后的空宽度与未调整的条宽度,确定每个解码字符对应的每个调整后的解码字符。
[0083] 针对每个解码字符,在确定该解码字符对应的调整后的解码字符时,具体的可以是,如果对该解码字符中的条宽度进行了调整,对空宽度未进行调整,则可以将调整后的条宽度与未调整的空宽度构成的解码字符确定为该解码字符的调整后解码字符。如果对该解码字符中的空宽度进行了调整,对条宽度未进行调整,则可以将调整后的空宽度与未调整的条宽度构成的解码字符确定为该解码字符的调整后解码字符。
[0084] 在对解码字符中的条宽度或空宽度进行调整后,就可以对调整后的该解码字符进行解码了。在解码时,可以采用模板宽度匹配方法,或者相似边距离测量方法,或者两者结合,或者其他的解码方法均可。所述对调整后的解码字符进行解码的过程属于现有技术,在本发明实施例中对该过程不进行赘述。
[0085] 根据所述缩放比例对所述每个解码字符中的条宽度或空宽度进行调整时包括多种方法,例如,当所述缩放比例为第二比值与第一比值的商,缩放比例对应的第三比值大于1时,则说明待解码的条码中的条宽度变小,空宽度变大,则所述待解码的条码出现了过曝情况,此时可以将所述条宽度乘所述第三比值,从而对所述待解码的条码中的条宽度进行放大,也可以是将所述空宽度除以所述第三比值,从而对所述待解码的条码中的空宽度进行缩小。
[0086] 针对待解码中的条码中的每个解码字符,调整的方式是一致的,例如可以是均根据所述缩放比例对条宽度进行调整,也可以是均根据所述缩放比例对空宽度进行调整。
[0087] 实施例4:
[0088] 在上述各实施例的基础上,在本发明实施例中,确定所述待解码的条码的类型包括:
[0089] 识别所述待解码的条码的起始字符和/或终止字符的条空宽度;
[0090] 根据预先保存的每种类型的条码对应的起始字符和/或终止字符的标准条空宽度,以及识别的所述条空宽度,确定所述待解码的条码的类型。
[0091] 在本发明实施例中,在确定所述待解码的条码的类型时,可以是根据待解码的条码的起始字符确定的,电子设备中保存有每种类型的条码对应的起始字符的标准条空宽度,当电子设备识别到所述待解码的条码的起始字符的条空宽度时,可以将识别的所述条空宽度与预先保存的每种类型的条码对应的起始字符的标准条空宽度进行匹配,将匹配度高时对应的类型,确定为所述待解码的条码的类型。
[0092] 在确定所述待解码的条码的类型时,可以是根据待解码的条码的终止字符确定的,电子设备中保存有每种类型的条码对应的终止字符的标准条空宽度,当电子设备识别到所述待解码的条码的终止字符的条空宽度时,可以将识别的所述条空宽度与预先保存的每种类型的条码对应的终止字符的标准条空宽度进行匹配,将匹配度高时对应的类型,确定为所述待解码的条码的类型。
[0093] 在确定所述待解码的条码的类型时,可以是根据待解码的条码的终止字符和起始字符确定的,电子设备中保存有每种类型的条码对应的起始字符和终止字符的标准条空宽度,当电子设备识别到所述待解码的条码的起始字符和终止字符的条空宽度时,可以将识别的所述条空宽度与预先保存的每种类型的条码对应的起始字符和终止字符的标准条空宽度进行匹配,将匹配度高时对应的类型,确定为所述待解码的条码的类型。
[0094] 其中电子设备在识别所述待解码的条码的起始字符和/或终止字符的条空宽度的过程属于现有技术,在本发明实施例中不进行赘述。
[0095] 图2为本发明实施例提供的一种条码解码过程示意图,该过程包括以下步骤:
[0096] S201:根据待解码的条码中位于至少两条行扫描线上的像素点,识别每条行扫描线上的每个标识字符的条宽度和空宽度的第一子比值;根据所述每条行扫描线上的第一子比值以及行扫描线的条数,确定所述待解码的条码中每个标识字符的条宽度和空宽度的第一比值所述标识字符包括起始字符和/或终止字符。
[0097] S202:根据所述待解码的条码的类型,识别所述类型的条码的每个标识字符的标准模板中的条宽度与空宽度的第二比值。
[0098] S203:根据起始字符的第一比值和所述第二比值,确定待解码的条码中每个解码字符的第一子缩放比例;根据终止字符的第一比值和所述第二比值,确定待解码的条码中每个解码字符的第二子缩放比例;根据所述第一子缩放比例和所述第二子缩放比例,确定待解码的条码中每个解码字符的缩放比例。
[0099] S204:识别每个解码字符的空宽度或条宽度,根据所述缩放比例对所述空宽度或条宽度进行调整;根据每个解码字符中的调整后的条宽度与未调整的空宽度或调整后的空宽度与未调整的条宽度,确定每个解码字符对应的每个调整后的解码字符,对每个调整后的解码字符进行解码。
[0100] 图3A为本发明实施例提供的发生溢墨情况的待解码的条码,该待解码的条码为code128码,图3A中该待解码的code128码的标识字符的的条宽度和空宽度的第一比值,比所述code128码的标识字符的标准模板中的条宽度与空宽度的第二比值大,在对该待解码的条码为code128码的每个解码字符中的条宽度和空宽度进行调整时,需要根据第一比值与第二比值确定的缩放比例,将解码字符中的条宽度调小,空宽度调大。调整方式可以采用上述各实施例中描述的任意一种。
[0101] 图3B为本发明实施例提供的发生溢墨情况的待解码的条码,该待解码的条码为code128码,图3B中该待解码的code128码的标识字符的的条宽度和空宽度的第一比值比所述code128码的标识字符的标准模板中的条宽度与空宽度的第二比值小,在对该待解码的条码为code128码的每个解码字符中的条宽度和空宽度进行调整时,需要根据第一比值与第二比值确定的缩放比例,将解码字符中的条宽度调大,空宽度调小。调整方式可以采用上述各实施例中描述的任意一种。
[0102] 图4为本发明实施例1提供的一种解码装置结构图,所述装置包括:
[0103] 确定模块41,用于确定待解码的条码中每个标识字符的条宽度和空宽度的第一比值,其中,所述标识字符包括起始字符和/或终止字符;
[0104] 识别模块42,用于根据所述待解码的条码的类型,识别所述类型的条码的每个标识字符的标准模板中的条宽度与空宽度的第二比值;
[0105] 所述确定模块41,还用于根据所述第一比值和所述第二比值,确定待解码的条码中每个解码字符的缩放比例;
[0106] 调整解码模块43,用于根据所述缩放比例对所述每个解码字符中的条宽度或空宽度进行调整,对条宽度或空宽度进行调整后的每个解码字符进行解码。
[0107] 所述确定模块41,具体用于根据起始字符的第一比值和所述第二比值,确定待解码的条码中每个解码字符的第一子缩放比例;根据终止字符的第一比值和所述第二比值,确定待解码的条码中每个解码字符的第二子缩放比例;根据所述第一子缩放比例和所述第二子缩放比例,确定待解码的条码中每个解码字符的缩放比例。
[0108] 所述确定模块41,具体用于根据待解码的条码中位于至少两条行扫描线上的像素点,识别每条行扫描线上的每个标识字符的条宽度和空宽度的第一子比值;根据所述每条行扫描线上的第一子比值以及行扫描线的条数,确定所述待解码的条码中每个标识字符的条宽度和空宽度的第一比值。
[0109] 所述调整解码模块43,具体用于识别每个解码字符的空宽度或条宽度,根据所述缩放比例对所述空宽度或条宽度进行调整;根据每个解码字符中的调整后的条宽度与未调整的空宽度或调整后的空宽度与未调整的条宽度,确定每个解码字符对应的每个调整后的解码字符,对每个调整后的解码字符进行解码。
[0110] 所述确定模块41,还用于识别所述待解码的条码的起始字符和/或终止字符的条空宽度;根据预先保存的每种类型的条码对应的起始字符和/或终止字符的标准条空宽度,以及识别的所述条空宽度,确定所述待解码的条码的类型。
[0111] 本发明实施例公开了一种条码解码方法及装置,所述方法包括:确定待解码的条码中每个标识字符的条宽度和空宽度的第一比值,其中,所述标识字符包括起始字符和/或终止字符;根据所述待解码的条码的类型,识别所述类型的条码的每个标识字符的标准模板中的条宽度与空宽度的第二比值;根据所述第一比值和所述第二比值,确定待解码的条码中每个解码字符的缩放比例;根据所述缩放比例对所述每个解码字符中的条宽度或空宽度进行调整,对条宽度或空宽度进行调整后的每个解码字符进行解码。由于在本发明实施例中,确定待解码的条码中起始字符和/或终止字符的条宽度和空宽度的第一比值,并根据起始字符和/或终止字符的标准模板中的条空宽度的第二比值和所述第一比值确定每个解码字符的缩放比例,根据所述缩放比例对所述每个解码字符中的条宽度或空宽度进行调整,从而使调整后的条宽度或空宽度更加接近标准的对应的条宽度或空宽度,减弱条码溢墨或者过曝的情况导致的条码中的条空宽度变化,进而对调整后的解码字符进行解码能够有效的提高解码准确性。
[0112] 对于系统/装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0113] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者一个操作与另一个实体或者另一个操作区分开来,而不一定要求或者暗示这些实体或者操作之间存在任何这种实际的关系或者顺序。
[0114] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全应用实施例、或结合应用和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0115] 本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0116] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0117] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0118] 尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
[0119] 显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。