CN102763121B - 用于解码线性条码的方法 - Google Patents
用于解码线性条码的方法 Download PDFInfo
- Publication number
- CN102763121B CN102763121B CN200980163411.XA CN200980163411A CN102763121B CN 102763121 B CN102763121 B CN 102763121B CN 200980163411 A CN200980163411 A CN 200980163411A CN 102763121 B CN102763121 B CN 102763121B
- Authority
- CN
- China
- Prior art keywords
- pixel
- group
- bar code
- shift value
- index
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods 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
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Electromagnetism (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 Processing (AREA)
Abstract
用于解码线性条码的方法。用于利用由像素的组构成的传感器,解码图像中的条码的方法,包括:获得定义扫描线的第二组的多条扫描线,该扫描线的第二组还包括预定的扫描线。每一扫描线由像素的第一组构成,每一像素通过第一索引并通过第二索引被识别。作为扫描线的第二组一部分的像素,定义像素的第三组,并从像素的第三组的像素,能选出像素的第四组,以构造该条码的过抽样分布图,对从该第四组的像素的强度值计算出的强度值排序。该第四组的像素,包括预定扫描线的像素,还包括不属于预定扫描线的第三组的像素,以获得能解码该条码的子像素分辨率。
Description
技术领域
本发明涉及用于解码图像中的线性条码的方法,尤其涉及用于解码在由像素构成的图像中的线性条码的方法。
背景技术
由条码组成的符号已经变得日益被用于从多种不同物体采集有意义的数据。不同类型的条码符号系统已经随时间发展。首先被发展的符号系统,诸如举例说,EAN/UPC、代码128和代码39,被称为线性符号系统,因为符号的数据沿单根轴或方向顺着一系列的黑条和白间隔伸延。最近,两维符号系统也已经宣称了它们自己,诸如举例说,Datamatrix、PDF-417及其他,它们对两维表面上的符号数据编码。
在过去,但也仍然在今天,激光扫描读取器已经主要被用于读取线性条码,其中的激光束照射在待读取的代码上,而从其反射的光被对光敏感的装置接收并被转换为模拟电信号,该模拟电信号构成条码的分布图。代替激光扫描器的另一种方案,是根据像素技术的线性读取器也常常被使用,它包括由单行像素构成的传感器。在扫描期间照射在每一像素上的发光强度被分析,并仍然可能从自每一像素检测的离散强度值,重构线性条码的分布图,这样使该代码能被解码。事实上,如果每一像素的强度值被考虑成条码分布图的模拟信号的抽样值,那么可能识别该系列的黑条及白间隔,以及每一条和/或间隔的宽度,借助熟知的抽样信号处理技术,重构该代码的分布图(profile)。
线性符号系统通常使用两种不同宽度的单元编码,诸如举例说,窄的和/或宽的黑条及窄的和/或宽的间隔。应当指出,条码单元不加区别地指黑条或白间隔。
别的线性符号系统使用4种或更多不同宽度的单元,而在这样的情形中,每一单元的宽度是最小值的整数倍。结果是,图像内最小宽度单元比像素尺寸越大,解码条码将越简单,该最小宽度单元亦称为模块。
从理论的观点看,按照熟知的抽样理论建立的理论,使用每模块至少有一个像素的分辨率的传感器的读取器,对代码解码是可能的。然而,被适用于相同模块的发光强度照射的扫描线的像素越多,越有可能在细节上定义从黑条到白间隔的过渡,反之亦然,从而能对代码进行解码。
为了读取两维代码,读取器已经确认自身是基于两维图像的传感器,即,其中像素矩阵接收整个线性条码的图像。在这样的情形中,每一行或列具有的像素数量,小于线性像素传感器的像素数量,但这一点并不代表读取两维代码的问题。
然而,日益增加的一些应用,要求能读取线性符号和两维符号二者。
为了满足这一需求,因此有必要使用配有两维传感器的读取器,但是,由于被定位在行或列上的像素的较小数量,能够被读取的景深和/或模块的最小宽度,变得比配有更多像素的线性传感器可获得的更糟。尤其是,能够用两维传感器读取的模块的最小宽度,比用线性传感器可获得的模块的最小宽度更大。
此外,使用有有限数量的像素的两维图像传感器,因为它比使用有大数量的像素的两维传感器便宜得多且更广泛,所以需求日益增加。
如果两维传感器被用于读取线性符号系统,那么这样的符号系统通过选择扫描线的该组的被确定的线而被解码,在这里,每一扫描线包括该传感器的两维像素矩阵的一组相邻像素。相邻像素被定义为至少共同有一侧或一个顶点的像素。例如,两维传感器的水平行或竖直列能够被考虑为扫描线。
与用线性传感器出现的情况类似,照射在扫描线的每一像素上的发光强度被分析,以重构该线性条码的分布图,它能使该代码被解码。
如前所述,抽样理论设置理论上的极限,即,要求被获取的线性条码有每模块至少有一个像素的分辨率,且不存在应用于扫描线的能使这一极限被克服的内插、滤波或过抽样过程。
对有低数量像素的传感器,诸如像素矩阵读取器,如果模块的宽度小于一个像素的尺寸,它不可能重构代码的分布图,从而不可能对线性条码进行解码。此外,即使当上面的理论极限被遵从时,如果分辨率大于该极限几个百分点,已从实验上得知,它不可能对线性条码进行解码。
发明内容
本发明的目的,是提供一种用于解码线性条码的新方法。
再一个目的,是提供一种用于解码条码的方法,即使由于传感器的不充足的分辨率,使任一扫描线中含有的信息,不足以识别该条码各单元之间的所有过渡,也能实现这种解码。
作为由抽样理论设置的极限,对本发明该目的的该方法还是仍然有效的,所以再一个目的,是提供一种有大于每模块一个像素的分辨率的解码方法。
再一个目的,是提供从计算的观点看是特别快的一种解码方法,即,该方法能够使被要求用于解码代码的时间被缩减。
按照本发明,一种如在权利要求1所定义的用于解码条码的方法被提供。
按照本发明,一种如在权利要求27所定义的条码读取器还被提供。
按照本发明,一种如在权利要求30所定义的程序还被提供。
归因于本发明,由此获得使线性条码能被解码的方法是可能的,因为由于不仅使用预定扫描线中像素的强度值,而且使用不属于该预定扫描线的更多像素的强度值,使过抽样的信号,即,有子像素分辨率的代码的实际分布图被重构。换句话说,因为不存在在分辨率太低的事件中允许解码的扫描线,线性条码中已有的但相对于扫描线位移的信息被使用,以便增加用于重构该分布图的样本的数量。
更多的像素因而被添加到预定扫描线的像素中。
照此方式,抽样理论设置的极限被克服,且哪怕当分辨率小于每模块一个像素时,条码也能够被解码。结果是,结合两维传感器的条码读取器能够有利地被使用,但它还同时对读取线性符号和读取两维符号二者确保巨大的灵活性。
结果是,甚至在更大的程度上,结合廉价的线性传感器的条码读取器能够被制造,即使当分辨率小于每模块一个像素时,它总能对线性条码进行解码。
附图说明
参考附图能够对本发明有更好的理解和更好地实施本发明,这些附图以非限制性例子的方式示出本发明的实施例,其中:
图1是通过有两维像素矩阵的传感器获取的条码的图像;
图2是图例,其中被示出的图像的一部分,是通过传感器获取并通过属于扫描线的组的像素接收,该扫描线中每一像素有相应的发光强度值;
图3是图例,其中示出图2的像素,其中每一像素按照本发明的方法被抽样的顺序排序;
图4画出曲线图,图上示出按照本发明的通过内插像素的强度值所获得的条码的过抽样分布图,图中移位值在x轴上示出,而强度值在y轴上示出。
具体实施方式
参考图1,利用由像素100的两维组构成的传感器(未画出)获取的图像被示出,该图像中给出线性条码1。应当指出,图1的线性条码1以在白背景上的一系列的黑条和白间隔表示。
该线性条码有轮廓线2,它可在线性条码被采集后与该线性条码关联,这样使代码1能与外部背景分离。应当指出,如图1所示,在线性条码的轮廓线2内部,除该系列的黑条和白间隔外,还有数据,诸如举例说,数字,但这与本发明的目的无关并将不予考虑。在轮廓线2内部,还能识别图像3的除去在该条码中出现的数字外的一部分,该部分包括黑条和白间隔的系列,以及该黑条和白间隔的系列由此开始的第一黑条4。应当指出,图像3的该部分被布置在部分地与轮廓线2重合的矩形5内,矩形5的一边由第一黑条4定义。图像3的该部分具有的高度定义条码的高度,该高度作为第一黑条4的第一端顶点6和第二端顶点7之间的距离被计算。第一顶点6由线性条码的黑条4和轮廓线2之间的交点定义,而第二顶点被布置在含有黑条和白间隔的系列的矩形5的周边上。
应当指出,线性条码1被布置成相对于参考轴,尤其是竖直参考轴8倾斜,为易于表示起见,该参考轴8被画成线性条码1之外的半根直线。为了简单的缘故,参考是对竖直参考系统8作出的。然而应当指出,能用识别不同的参考轴,例如水平参考系统,而不损失任何普遍性。
尤其是,在竖直参考轴8和第一黑条之间定义角度α,该角度的计算对本发明的目的是重要的,如在下面更好地被示出。必须指出,在由像素100的两维组构成的传感器以行和列被对准并被布置的情形中,该竖直参考8简单地由像素100的组的列和/或行之一给出。另一方面,如果因为这些像素形状不是正方形而是多边形,没有前述的对准,则该竖直参考8应由传感器的外部边界作出。
像素100是能被该图像反射的发光强度照射上去的最小自主(autonomous)单元,而在像素100的该两维组内部,每一像素100以其位置并以强度值表征,该强度值在当前的情形中,是灰度级按离散方式可变的整数,该灰度级从指示黑的0到指示白的255。如果像素100被白和黑图像二者的一部分照射上去,它将有居中的强度值,从而表示照射在该像素上各种不同强度之间的平均。
图2示出接收图像3的该部分的像素100的组,在该部分中有条码1,且在该部分中,有表示它的发光强度值的数字的每一像素100,属于相应的扫描线9。尤其是,每一扫描线9包括按照第一索引排序的像素100的第一组10。
图2示出多条扫描线9,即,扫描线9的第二组11,其中该扫描线按照第二索引被排序。该扫描线9的第二组11,其中每一条包括像素100的相应第一组10,因而使像素的第三组12能被定义,其中每一像素100通过它的位置被识别,该位置以第一索引和第二索引表示。
如果像素矩阵100的两维表示被考虑,则第一索引是列索引,它按照惯例从0开始,随着它向右运动而增加,而第二索引是行索引,它按照惯例从0开始,随着它向上运动而增加。在图2中,要被解码的条码的一部分也被示出,图上给出从每一像素100接收的发光强度值的原点。条码1包括第一宽的白间隔13、第一窄的黑条14、第二宽的黑条15、以及介于窄的黑条14和宽的黑条15之间的窄的白间隔16。第一黑条14和第二黑条15在图2中只是示意画出,因为像素100的发光强度值不能使该条的位置被立刻确定,分辨率小于每模块一个像素。
事实上,通过考察预定扫描线18,诸如举例说,对应于图2中被布置在靠下一行的扫描线,我们按照惯例向该行指配行索引0,值得注意的是,为什么它不能重构一系列的白间隔和黑条,因为像素的发光强度值的序列是240、120、50和100,而该序列不能使窄的黑条14和窄的白间隔16的存在被识别。
通过例如考虑第一黑条14,事实上能够指出,该第一黑条14整个地被包含在单一像素100中,即,该像素100有行索引0和列索引1,假设按照惯例,列索引0被指配给像素100,在图2中,该像素100的强度等于240。因此不能识别第一黑条14到窄白间隔16的过渡。
因此显然,对第一黑条14和窄的白间隔16有效的每一种考虑,对条码中该系列的黑条和白间隔的每一其他单元同样有效。因为条码1事实上相对于竖直参考8倾斜,且沿条码1的整个高度的信息是相同的,第二组11中相邻的扫描线9,从相同系列的条和间隔接收发光强度,该发光强度是它们所属的行以及与条码相对于竖直参考倾斜有关的第一参数的函数。
尤其是,第一黑条14,从行0开始并继续向上进入行1,正如代码的每一单元,将被向左移动像素的某一百分数,该百分数与条码1相对于竖直参考8倾斜的角度α成正比。通过考虑像素是正方形,它的边有等于单位的尺寸,对每一行的增加,能识别等于α的正切的移位S。换句话说,与当前被识别的条码的倾斜关联的第一参数,是α的正切,但角度α的依赖性也能够用不同公式表示,不由此损失任何普遍性。事实上,通过从像素的第三组12选择像素100的第四排序的组17,即,通过选取彼此都远离但按下面将更好地解释的有序方式的像素100,能向条码的相同单元指配第四组17的像素100的强度值,从而构造从第一白间隔13到第一黑条14和从第一黑条14到第二白间隔16过渡的过抽样分布图。如图3所示,通过使用第四组17的像素100的强度值,构造过抽样信号,因而能对条码1进行解码。
像素100的第四组17,包括像素100的数量大于第一组10的像素数量。换句话说,在可从单一扫描线重构的条码的分布图中,更多的样本按像素的百分率被添加,以构造过抽样的分布图,而能对该条码进行解码的子像素分辨率因而被获得。
在下面为简单起见示出的只用于识别特定黑条的方法,显然可应用于对整个条码进行解码,尤其是图2所示条码单元的系列。
现在,让我们考虑图2的像素100的强度值的表格表示,并让我们假设,索引(0,0)的像素100是在左下角中的像素100。
在下面插入的表1表明:
表1
C.-1 | C.0 | C.1 | C.2 | C.3 | |
R.4 | 120 | 150 | 30 | 250 | |
R.3 | 200 | 140 | 30 | 170 | |
R.2 | 255 | 100 | 120 | 90 | |
R.1 | 150 | 150 | 20 | 240 | |
R.0 | 240 | 120 | 50 | 100 |
如果图2所示条码被倾斜的角度等于21.8°,该黑条从一行到相邻行的移位S的值等于21.8°的正切,即,像素的0.4百分率。每5行,将有等于2的像素100的整数移位。换句话说,以移位S等于0.4,有2个像素和5个可能的移位值S的模块性(modularity),其后,该黑条以相同值重复它的移位,因而,虽然考察被等于6的行索引识别的扫描行,第六扫描行不会添加更多额外信息。
能对第三组12的每一像素100,计算相应的移位值S。该移位值S通过像素的行索引与α的正切相乘,并把结果加到该像素的列索引而获得。如果R是行索引而C是列索引,能按照公式1写出该移位值S,该公式1如下:
1)S=tang(α)*R+C
我们对属于第三组12的每一像素,从像素(0,0)计算对应的移位值S,而我们考虑这样的移位值S的表格表示。
在下面插入的表2表明:
表2
C.-1 | C.0 | C.1 | C.2 | C.3 | |
R.4 | 0.6 | 1.6 | 2.6 | 3.6 | |
R.3 | 0.2 | 1.2 | 2.2 | 3.2 | |
R.2 | -0.2 | 0.8 | 1.8 | 2.8 | |
R.1 | -0.6 | 0.4 | 1.4 | 2.4 | 3.4 |
R.0 | -1.0 | 0 | 1.0 | 2.0 | 3.0 |
通过分析表2中计算的移位值S并按照预定次序处理移位值S,移位值(S)排序的第五组被获得。尤其是,移位值S被处理成使移位值S按递升的次序排序,而第五组的每一移位值被与该移位值由其计算的相应像素100关联。
在下面插入的表3表明:
表3
S | R. | C. |
0 | 0 | 0 |
0.2 | 3 | -1 |
0.4 | 1 | 0 |
0.6 | 4 | -1 |
0.8 | 2 | 0 |
1.0 | 0 | 1 |
1.2 | 3 | 0 |
1.4 | 1 | 1 |
1.6 | 4 | 0 |
1.8 | 2 | 1 |
2.0 | 0 | 2 |
2.2 | 3 | 1 |
2.4 | 1 | 2 |
2.6 | 4 | 1 |
2.8 | 2 | 2 |
3.0 | 0 | 3 |
其后通过按第五组的移位值S指示的次序,选择第三组12的像素100,像素100的排序的第四组17被识别,这些像素是对过抽样分布图的构造目的至关重要的像素100。根据第四组17的像素100的强度值,能获得计算的强度值,用于构造条码的过抽样分布图,如下面还将更好地解释的。
向第四组17的每一像素100指配强度值,从而通过按第五组的移位值S指示的次序,排列第四组17的像素100的强度值,相对于在单一扫描线中可用的样本更多的样本被按像素的百分率插入。
实际上,该第四组17包括预定扫描线18的像素100和不属于该扫描线18但属于第三组12的第三组12的另外像素。
图3示出第四组17的像素100,且图3中每一像素100是有这样的次序,这些像素100必须按该次序被抽样,以便正确地构造条码的分布图。通过排序从第四组17的像素100的强度值获得的强度值而获得的条码的过抽样分布图,在图4中示出。尤其是,在该曲线中,在扫描线18上排列的涉及像素100的行索引为0的强度值,已经用黑点示出,而涉及位于像素的第三组12中的其他行的像素100的强度值,已经用白点示出。能够注意到,在过抽样分布图中,能识别对应于窄的黑条14的最小强度值和对应于窄的间隔16的最大强度值,用这两个强度值,能识别条码的过渡。
如上所讨论的,对等于21.8°的角度,等距样本被获得,由此能以很少的计算努力而获得条码的过抽样的分布图。这是特殊的情形,它作为例子是有用的,其中被分析的行的数量是5,因为第六扫描行不添加额外的信息。一般说,对不是21.8°的条码一般倾斜,在一定数量的扫描行之后,没有信息的重复。因此,可分析以便定义像素的第三组12的扫描线9的数量,可以遍布条码的所有高度扩展,没有限制且在理论上一般第三组12的所有像素100,都可用作第四组17的像素100。
然而,在实际中,被选作第四组17的像素100的像素100的数量,如将在下面更好地解释的,是在指示过抽样因子F的整数的基础上预定的,即,用于像素100的另外样本的数量,是按像素的百分率被布置的,希望以此解码该条码。该过抽样因子F因而被建立,以获得希望的子像素分辨率。
结果是,条码的过抽样的分布图,是通过对指配给第四组17的像素100的强度值的排序而获得的,该第四组17的像素100总数是K,按照公式2,K等于预定扫描线18的第一组10的像素数量NP乘以过抽样因子F,公式2表示如下:
2)K=F*NP
还必须指出,对条码的一般倾斜,除在一定数量的扫描线之后没有信息的重复之外,所获得的移位值S按非均匀方式被布置。虽然按非均匀方式被布置的移位值S能够被使用,但这样将要求可能放慢解码的更多的数学计算。
为此,最好是,当构造过抽样的分布图时,非直接指配给第四组17的像素100的强度值被排序,如同在前面的例子中一样,但计算是从那里开始。尤其是,属于第六组的等距移位值SE被使用,而第四组17的像素则在其基础上被选择。
尤其是,这样的等距移位值SE从过抽样因子F被计算,希望以此解码条码。
结果是,在两个连续的等距移位值SE之间有距离T,该距离T以像素的百分率表示并等于过抽样因子F的倒数。
一般说,值T是在按照公式3定义F之后被计算的,公式3表示如下:
3)T=1/F
等距移位值的第六组,因此包括被排序的等距移位值SE的系列,其中每一等距移位值SE的值,等于值T的整数倍。假设N是任一整数,且第六组包括按照公式2)计算的等距移位值SE的总数K,则每一等距移位值SE由如下表示的公式4给出:
4)SE=N*T,N从0到K-1。
如已经在前面所述,对图1到4所示例子,其中的条码被倾斜的角度等于21.8°,已经是等距的样本被获得。过抽样因子F等于5,而由此得出距离值T等于0.2。
一般说,无论如何必须指出,不同于5的过抽样因子F也能够被使用,只要它大于2或与2相同,例如8。尽管如此,最好使用等于5的过抽样因子F。
如前面所示,对第三组12的每一像素100,按照公式1的相应移位值S被计算,而移位值的第五组和从第三组12的像素100选出的像素100的第四组17被获得。
接着,第六组的每一等距移位值SE被与第五组的移位值S比较,而“接近”于感兴趣的等距移位值SE的第一移位值S_EXCESS和第二移位值S_DEFECT被定义。该感兴趣的第一移位值S_EXCESS是相对于等距移位值有最小过量差值的一个移位值,而感兴趣的第二移位值S_DEFECT是相对于等距移位值有最小不足差值的一个移位值。
虽然感兴趣的等距移位值SE在第五组中不存在,从而不可对之赋予对应像素100的强度值,所以能从第四组17的像素100的强度值计算强度值,以便指配给对应的等距移位值SE。
强度值的第七组由此被定义,从第四组17的强度值计算的每一强度值,因而包括一系列的强度值,每一强度值与对应的等距移位值SE关联。
尤其是,该计算是通过内插对应于第一移位值S_EXCESS的像素100的和对应于第二移位值S_DEFECT的像素100的强度值,并把从该内插获得的强度值赋予感兴趣的等距移位值SE完成的。
尤其是,对应于第一移位值S_EXCESS的像素100的强度值和对应于第二移位值S_DEFECT的像素100的强度值的加权平均被实施,而该权重由相对于等距移位值SE的最小过量差值和最小不足差值产生。由此能分别按照公式5和公式6,计算第一权重P_EXCESS和第二权重P_DEFECT,该公式5和公式6表示如下:
5)P_EXCESS=(SE-S_DEFECT)/(S_EXCESS-S_DEFECT)
6)P_DEFECT=(S_EXCESS-SE)/(S_EXCESS-S_DEFECT)
按照本发明的方法的另一版本,该第一权重P_EXCESS和第二权重P_DEFECT,是按照不同于上面指出的公式计算的。
按照该方法的又另一版本,第六组的每一等距移位值SE,被与第五组的移位值S比较,并向感兴趣的移位值SE指配发光强度值,该发光强度值对应于其移位值S相对于感兴趣的等距移位值SE有最小误差的像素100的强度值。
按照该方法的再另一版本,第六组的每一等距移位值SE,被与第五组的移位值S比较,并向感兴趣的移位值SE指配发光强度值,该发光强度值是从至少等于3的数量的像素的强度值的内插导出的。
按照该方法的没有被示出的又另一版本,为构造条码的过抽样的分布图,强度值的第七组被均衡滤波器处理。尤其是,强度值的第七组被变换成强度值的第八组,其中通过均衡化计算的第八组的对应强度值,对应于第七组的每一强度值。
该均衡滤波器,使被抽样引入的畸变能被校正,并通过一系列已知技术获得。例如,被抽样引入的畸变的估计被实施,而该均衡滤波器将通过应用相对于该畸变函数的逆函数,校正该畸变。均衡滤波器的例子,例如能够是sinc函数(即,sine(x)/x)或升余弦函数[1+cos(x)]。
因此能够,如前面所示从强度值的第七组,或者尝试对分辨率比每模块一个像素低得多的子像素校正因抽样而引入的畸变,也可从强度值的第八组开始这两方面构造条码的过抽样分布图。
使用中,在像素100的两维组的情形下,如已经说过,条码的和第一黑条4的轮廓线2最先被确定,藉此能计算条码和竖直参考8之间的角度α。接着,预定扫描线18和包括预定扫描线18的扫描线9的第二组11被选定,由此能定义像素100的第三组12、移位值S的第五组和像素100的第四组17。在移位值S按非均匀方式被分布的情形下,等距移位值SE被优先计算,从而对每一等距移位值,相应的强度值被计算,以便建立从像素100的第四组17的强度值计算的强度值的第七组。另外,任选地,均衡滤波器能够被应用于第七组的强度值,以便构造条码的过抽样分布图。
必须指出,有预定扫描线18的像素100的第一组10的索引(0;0)的像素,构成为其计算第五组的第一移位值S的初始像素,即,本发明的方法应用于该像素。该初始像素能够从被传感器获取的所有像素100中选出,即,能够是条码1内的任何像素100,不损失该方法的一般性。然而,沿第一黑条4的一半选择该初始像素是有利的,这样使扫描线9的第二组11总被包含在条码的高度上。尤其是,所述条码的高度作为第一黑条4的第一端顶点6和第二端顶点7之间的距离被计算,而该初始像素大体上被选在第一黑条4的半高度处。
还应当了解,本发明的方法不可以直接应用于传感器最初获取的图像。事实上,为了使按照本发明的对条码进行解码的方法更容易,能使更类似于原来条码图像的被处理的图像被获得的已知加工方法,能够被应用于由传感器最初获取的图像。
本发明的该方法,不应用于等于0°或45°整数倍的倾斜,即,当条码被倾斜45°或其倍数时,不能应用。例如,当代码完全竖直或水平时,每一扫描线9有相同的重复信息,而如果预定扫描线18中分辨率不够,则在每条其他扫描线中也不够。相同的考虑可应用于45°的倍数,因为预定扫描线18的相同信息只靠一个像素被移向相邻扫描线9的右或左,但对信息本身是完全相同地被重复。
为此,如果条码在由像素100构成的图像中被布置成相对于参考轴倾斜,本发明的该方法,只当条码和参考轴之间形成的角度被包括在0°和45°之间、45°和90°之间、90°和135°之间、135°和270°之间、270°和315°之间、以及315°和360°之间时,才可应用。
否则,如果倾斜准确等于0°或45°的整数倍,按照本发明的该方法则改变在包括条码1的图像和由像素构成的所述传感器之间的相互位置。如果,例如该方法被应用于由用户握持的条码读取器,该用户应当在随后的读取尝试中,改变该读取器的位置。
图1所示条码具有的倾斜被包括在0°和45°之间并且在此情形下,如已经陈述,该第一被确定的索引是列索引,而该第二被确定的索引是行索引R。如果条码有不同的倾斜,例如被包括在45°和90°之间,该第一被确定的索引是行索引R,而该第二被确定的索引是列索引C。
通过改变行索引R与列索引C和/或通过改变方向,按照无论行索引R和/或列索引C是正或负的,都能对任何倾斜分析该条码。
最后应当指出,本发明的该方法,从计算的观点看,不涉及昂贵的计算,它通常需要计算第三组12的每一像素100相应的移位值S,但从移位值S的第五组,只需按递升次序对移位值S排序。已有用于按递升次序对数字的组排序的已知类型方法,这些方法是快速和简单的,而这样使本发明的该方法能容易地被使用。
虽然图1的图像表明,被两维传感器获取的条码,按照再一个实施例,本发明的该方法也可应用于使用有单一行像素100的线性传感器,如在下面将更好地示出的。
借助没有在图中示出的,在不同时间瞬间从同一条码被获取的相互不完全相同的扫描线的系列,并借助合适的计算方法,诸如举例说,确定两条扫描线之间相关函数的的最大位置,将能相对于被假设作为参考的预定扫描线计算第二相关参数CP,该第二相关参数CP将被指配给相对于该预定扫描线的每一扫描线。
结果是,能定义扫描线的第二排序的组,每一扫描线有第二相关参数CP的不同值,且每一扫描线包括按照第一索引排序的像素的第一组。由此能定义像素的第三组,其中每一像素有被第一索引和被第二索引识别的位置。
在线性传感器的情形中,该第二索引对应于第二相关参数CP的被计算值,而该第一索引是该像素在相应扫描线中的排序索引,被称为C,尽管按前面用于两维传感器的术语推论是不恰当的。
因此能向第三组的每一像素指配移位值S。尤其是,如果CP与预定扫描线关联,在被第一索引等于C和第二索引等于CP的值识别的扫描线中,像素的移位值S按照公式8被计算,公式8表示如下:
8)S=CP+C
因此应当指出,本方法的应用也能够推广到配有线性传感器的读取器。
使用中,在像素的线性组的情形中,扫描线的第二组被获得,其中每一扫描线是在不同的时间瞬间从同一条码获取的。预定扫描线从该第二组中被选出,并对每一被获取的扫描线,相应的第二相关参数CP被计算。从被获取的扫描线的第二组,像素的第三组由此被识别,被第一索引C和被等于第二相关参数CP的第二索引识别的每一像素,由此,归因于上面指出的公式8),移位值S的第五组接着被识别。
结果是,像素的第四组能够从该移位值S的第五组选出,而在按非均匀方式分布的移位值S的情形中,等距移位值SE和相应的强度值被优先计算,由此能构造条码的过抽样分布图,如在前面所述。
按照本发明的用于对条码进行编码的编码方法,在包括专用代码的程序中被实施,该专用代码有利地在条码读取器中被执行。
应当指出,该程序能够在包括两维传感器的条码读取器和包括线性传感器的条码读取器二者中被执行,因为该程序能辨别它已经被安装其中的读取器的类型,从而能按合适的方式获得扫描线的第二排序的组,由此能构造条码的过抽样分布图。
Claims (29)
1.用于利用由像素(100)的组构成的传感器解码图像中的线性条码(1)的方法,该方法包括:
a)选择预定的扫描线(18),包括像素(100)的第一排序的组(10),其中每一像素(100)通过第一索引被识别并有相应的强度值;
b)通过从所述预定扫描线(18)的所述像素(100)的强度值,构造所述条码的分布图,对所述条码进行解码;特征在于,所述方法还包括:
c)获得扫描线(9)的第二组(11),该扫描线(9)还包括所述预定的扫描线(18),其中所述扫描线(9)按照第二索引被排序,且每一扫描线包括用于定义像素(100)的第三组(12)的像素(100)的相应第一排序的组(10),每一像素通过所述第一索引并且通过所述第二索引被识别;
d)从像素(100)的所述第三组(12)选择像素(100)的第四排序的组(17),并通过排序从所述第四排序的组(17)的所述像素(100)的强度值计算出的强度值,构造所述条码的过抽样的分布图,以获得能对所述条码进行解码的子像素分辨率,像素(100)的所述第四排序的组(17)包括所述预定扫描线(18)的像素(100),并且还包括不属于所述预定的扫描线(18)的所述第三组(12)的像素(100)。
2.按照权利要求1的方法,其中所述选择像素的第四排序的组(17),包括:
e)对所述第三组(12)的每一像素(100),计算对应的移位值,该移位值依赖于所述像素(100)的所述第一索引和所述第二索引的值;
f)处理所述移位值,从而获得所述移位值的排序的第五组,所述第五组的每一移位值,被与所述第三组(12)的相应像素(100)关联;
g)像素(100)的所述第四排序的组(17)的每一像素(100),按照由移位值的所述第五组指示的次序被选择和被排序。
3.按照权利要求2的方法,其中所述处理所述移位值包括对所述移位值按递升的次序排序,以获得移位值的所述排序的第五组。
4.按照权利要求2的方法,其中所述从所述第四排序的组(17)的所述像素(100)的强度值计算强度值,包括向所述第四排序的组(17)的每一像素(100),指配所述像素(100)的强度值,并使所述强度值与所述第五组的相应移位值关联。
5.按照权利要求2的方法,其中所述方法还包括,定义等距参考移位值的第六预定组,以及向每一等距移位值,指配从所述第四排序的组(17)的所述像素(100)的强度值计算出的相应强度值。
6.按照权利要求5的方法,其中所述方法还包括,比较每一所述等距移位值与所述第五组的移位值,以便识别所述第五组中相对于所述等距移位值有最小过量差值的第一移位值和所述第五组中相对于所述等距移位值有最小不足差值的第二移位值。
7.按照权利要求6的方法,其中所述向每一等距移位值指配相应的计算的强度值,包括内插与所述第一移位值对应的所述第四排序的组(17)的第一像素(100)的第一强度值和与所述第二移位值对应的所述第四排序的组(17)的第二像素(100)的第二强度值,并向所述等距移位值指配所述内插的强度值。
8.按照权利要求7的方法,其中所述内插所述第一强度值和所述第二强度值,包括进行加权平均,该加权平均的权重从所述最小过量差值和从所述最小不足差值导出。
9.按照前述权利要求1到8任一项的方法,其中所述获得扫描线(9)的所述第二组(11),包括借助使用两维传感器的读取器获取像素(100)的两维组,所述第一索引是列索引,而所述第二索引是行索引。
10.按照权利要求9的方法,其中所述方法还包括,在所述获得扫描线(9)的所述第二组(11)之后,在从所述第三组(12)选择像素(100)的所述第四排序的组(17)之前,计算所述条码相对于参考轴(8)的倾斜。
11.按照权利要求10的方法,其中计算所述倾斜,包括计算与所述条码相对于所述参考轴(8)的倾斜关联的第一参数,所述参考轴尤其指竖直参考轴。
12.按照权利要求11的方法,其中计算所述第一参数,包括计算α的正切,α是所述条码(1)和所述参考轴(8)之间的角度,且其中所述参数是α的正切。
13.按照权利要求12的方法,其中所述计算所述第三组(12)的每一像素(100)的对应的移位值,等同于把所述行索引与α的正切相乘,并把结果加到所述列索引。
14.按照权利要求10的方法,其中所述方法还包括,分析像素(100)的所述两维组,以确定所述条码的第一黑条(4)。
15.按照权利要求14的方法,其中计算所述条码的所述倾斜,包括计算所述第一黑条(4)和所述参考轴(8)之间的倾斜,所述参考轴尤其指竖直参考轴(8)。
16.按照权利要求9的方法,其中选择像素(100)的所述第一排序的组(10)还包括,选择所述条码内任一所述像素(100),并把所述选择的像素(100)考虑成所述预定的扫描线(18)的初始像素,向所述选择的像素(100)的所述行索引和所述列索引,指配等于0的值。
17.按照权利要求16的方法,其中所述方法还包括,分析像素(100)的所述两维组,以确定所述条码的第一黑条(4),并计算所述条码的高度,作为所述第一黑条(4)的第一端顶点(6)和第二端顶点(7)之间的距离。
18.按照权利要求17的方法,其中所述方法还包括,大体上沿所述第一黑条(4)高度的一半选择所述初始像素。
19.按照权利要求9的方法,其中所述行索引在像素(100)的所述第三组(12)中增加一个向上移动的单位。
20.按照权利要求9的方法,其中所述列索引在像素的所述第一排序的组(10)中增加一个向右移动的单位。
21.按照前述权利要求1到8任一项的方法,其中所述条码被布置成在所述图像中相对于参考轴倾斜,并相对于所述参考轴形成等于0°、45°、90°、135°、270°、315°和360°的角度,且其中所述方法还包括,改变所述图像和由像素(100)的所述组构成的所述传感器之间的相互位置。
22.按照前述权利要求1到8任一项的方法,其中所述条码被布置成在所述图像中相对于参考轴倾斜,且所述条码相对于所述参考轴形成被包括在0°和45°之间、45°和90°之间、90°和135°之间、135°和270°之间、270°和315°之间、以及315°和360°之间的角度。
23.按照前述权利要求1到8任一项的方法,其中所述获得扫描线(9)的所述第二组(11),包括借助线性像素传感器在各个不同瞬间从该条码获取每一扫描线。
24.按照权利要求23的方法,其中每一被获取的扫描线,借助与所述预定的扫描线的相关性被处理,并从所述相关性,计算与所述扫描线关联的第二相关参数。
25.按照权利要求24的方法,其中每一扫描线的每一像素通过所述第一索引并通过所述第二索引被识别,该第一索引对应于所述相应扫描线中所述像素的排序索引,该第二索引对应于所述第二相关参数。
26.按照权利要求2的方法,其中所述对所述第三组(12)的每一像素(100)计算的对应移位值,等同于把所述第二索引加到所述第一索引。
27.条码读取器,包括由像素的组构成的传感器,使用按照权利要求1到8任一项的用于解码条码的方法。
28.按照权利要求27的条码读取器,其中所述传感器由像素的两维组构成,并使用按照权利要求9的解码方法。
29.按照权利要求27的条码读取器,其中所述传感器由像素的线性组构成,并使用按照权利要求23的解码方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/IB2009/055865 WO2011077182A1 (en) | 2009-12-21 | 2009-12-21 | Method for decoding a linear bar code |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102763121A CN102763121A (zh) | 2012-10-31 |
CN102763121B true CN102763121B (zh) | 2015-03-04 |
Family
ID=42341605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980163411.XA Active CN102763121B (zh) | 2009-12-21 | 2009-12-21 | 用于解码线性条码的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8915443B2 (zh) |
EP (1) | EP2517148B1 (zh) |
CN (1) | CN102763121B (zh) |
WO (1) | WO2011077182A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9218536B2 (en) | 2011-12-23 | 2015-12-22 | Cognex Corporation | Methods and apparatus for one-dimensional signal extraction |
US9361503B2 (en) | 2014-10-30 | 2016-06-07 | Datalogic IP Tech Srl | Systems, methods and articles for reading highly blurred machine-readable symbols |
US9501683B1 (en) | 2015-08-05 | 2016-11-22 | Datalogic Automation, Inc. | Multi-frame super-resolution barcode imager |
US10204284B2 (en) * | 2016-12-06 | 2019-02-12 | Datalogic Ip Tech S.R.L. | Object recognition utilizing feature alignment |
US10083334B2 (en) * | 2016-12-06 | 2018-09-25 | Datalogic Ip Tech S.R.L. | Barcode reconstruction utilizing a sequence alignment matrix |
US10303913B2 (en) | 2016-12-28 | 2019-05-28 | Datalogic Ip Tech S.R.L. | Virtual wave decoder for blurred images and subpixel performance |
CN106991347B (zh) * | 2017-03-02 | 2019-11-19 | 浙江华睿科技有限公司 | 一种条码中标识字符的定位方法及装置 |
CN114818765B (zh) * | 2020-04-03 | 2024-06-14 | 支付宝(杭州)信息技术有限公司 | 识别方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1851399A (zh) * | 2005-04-22 | 2006-10-25 | 安捷伦科技有限公司 | 使用目标图案感知二维绝对位置的系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5384451A (en) * | 1993-01-29 | 1995-01-24 | United Parcel Service Of America, Inc. | Method and apparatus for decoding bar code symbols using composite signals |
US7364081B2 (en) * | 2003-12-02 | 2008-04-29 | Hand Held Products, Inc. | Method and apparatus for reading under sampled bar code symbols |
US8091788B2 (en) * | 2007-01-11 | 2012-01-10 | Datalogic Scanning, Inc. | Methods and systems for optical code reading using virtual scan lines |
-
2009
- 2009-12-21 CN CN200980163411.XA patent/CN102763121B/zh active Active
- 2009-12-21 US US13/517,345 patent/US8915443B2/en active Active
- 2009-12-21 WO PCT/IB2009/055865 patent/WO2011077182A1/en active Application Filing
- 2009-12-21 EP EP09807718.3A patent/EP2517148B1/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1851399A (zh) * | 2005-04-22 | 2006-10-25 | 安捷伦科技有限公司 | 使用目标图案感知二维绝对位置的系统 |
Also Published As
Publication number | Publication date |
---|---|
EP2517148B1 (en) | 2014-03-26 |
WO2011077182A1 (en) | 2011-06-30 |
EP2517148A1 (en) | 2012-10-31 |
US8915443B2 (en) | 2014-12-23 |
CN102763121A (zh) | 2012-10-31 |
US20120256001A1 (en) | 2012-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102763121B (zh) | 用于解码线性条码的方法 | |
US7543753B2 (en) | Reconstruction of virtual raster | |
US6088482A (en) | Techniques for reading two dimensional code, including maxicode | |
CN105989317B (zh) | 一种二维码的识别方法及装置 | |
US5814801A (en) | Maxicode data extraction using spatial domain features exclusive of fourier type domain transfer processing | |
US10679175B2 (en) | Two-dimensional code, system for creation of two-dimensional code, and analysis program | |
US6758399B1 (en) | Distortion correction method in optical code reading | |
US9367782B2 (en) | High capacity 2D color barcode and method for decoding the same | |
US20150339508A1 (en) | Two-dimensional code | |
US9898637B2 (en) | Two-dimensional code | |
JPH0950473A (ja) | 未定の複雑な多幅バーコード符号プロフィールをデコードする方法及び装置 | |
US7050631B2 (en) | Barcode detection system | |
CN101833644B (zh) | 一种基于动态模板的校正图形搜索方法 | |
CN105046183A (zh) | 一种畸变qr码的解码方法和系统 | |
CN101882220A (zh) | 一种基于动态模板的条码图像校正方法及校正点获取方法 | |
CN108960000A (zh) | 一种长条小型二维码识别方法 | |
CN110263597B (zh) | 一种快速准确的qr码校正方法及系统 | |
CN105046256A (zh) | 基于畸变图像校正的qr码解码方法和系统 | |
CN101908144B (zh) | 一种条码图像校正方法及校正点获取方法 | |
JP2023024994A (ja) | 解像度不足のシンボルをデコードするための方法と装置 | |
CN100383809C (zh) | Qr码图像的采样及识别方法 | |
CN111191759B (zh) | 一种二维码的生成方法和基于gpu的定位、解码方法 | |
CN201927034U (zh) | 一种条码图像采样装置 | |
CN201946014U (zh) | 一种基于动态模板的条码图像校正装置及校正点获取装置 | |
CN201927053U (zh) | 一种条码图像校正装置及校正点获取装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |