CN101978380B - 二维符号及其读取方法 - Google Patents
二维符号及其读取方法 Download PDFInfo
- Publication number
- CN101978380B CN101978380B CN200980110258.4A CN200980110258A CN101978380B CN 101978380 B CN101978380 B CN 101978380B CN 200980110258 A CN200980110258 A CN 200980110258A CN 101978380 B CN101978380 B CN 101978380B
- Authority
- CN
- China
- Prior art keywords
- image
- symbol
- scale mark
- data
- dimensional bar
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 104
- 239000011159 matrix material Substances 0.000 claims description 18
- 238000003384 imaging method Methods 0.000 claims description 3
- 230000004807 localization Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 38
- 238000010586 diagram Methods 0.000 description 31
- 238000006243 chemical reaction Methods 0.000 description 13
- 235000014676 Phragmites communis Nutrition 0.000 description 12
- 230000008034 disappearance Effects 0.000 description 8
- 238000012937 correction Methods 0.000 description 7
- 238000005286 illumination Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000008439 repair process Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 239000003086 colorant Substances 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 239000006002 Pepper Substances 0.000 description 2
- 244000273256 Phragmites communis Species 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 239000012120 mounting media Substances 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000002609 medium Substances 0.000 description 1
- 238000012634 optical imaging Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/06009—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
- G06K19/06037—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking multi-dimensional coding
-
- 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/10544—Methods 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/10712—Fixed beam scanning
- G06K7/10722—Photodetector array or CCD scanning
-
- 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)
- Electromagnetism (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Toxicology (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Processing (AREA)
Abstract
本文公开了根据本发明的标识符号以及用于对其进行读取的系统和方法,标识符号优选为二维、矩形或正方形的条形码符号,其具有实线边界以及与实线边界相邻的刻度标记区域,并且具有全向读取、误差检测和校正性能。
Description
相关申请的交叉参考
本申请要求于2008年1月29日提交的“Two-DimensionalSymbolReadingUsingFrequencyAnalysisandOppositeSideBars”的美国临时专利申请第61/062,879号的权益并要求其优先权,其全部内容结合于此作为参考。该申请还要求于2008年10月15日提交的“Two-DimensionalSymbolReadingUsingFrequencyAnalysisandOppositeSideBars”的美国临时专利申请第61/196,200号以及于2008年11月6日提交的“Two-DimensionalSymbolReadingUsingFrequencyAnalysisandOppositeSideBars”的美国临时专利申请第61/198,453号的权益,其全部内容结合于此作为参考。
技术领域
本申请涉及一种可在要识别的物品上所使用的标识符号,更具体地,涉及二维条形码符号以及用来对该符号所表示的信息进行识别和解码的系统和方法。
背景技术
光学成像系统通常用于译码印制在物品上的数据符号,以识别该物品或者获得与该物品相关的信息。条形码符号是普通的一维形式的符号表示法,并通常包括以各种宽度的间隔而隔开的各种宽度的纵向条纹图案。由于条纹和间隔元素具有不同的光反射特性,所以读取器可以通过分析从符号反射的光来将符号转换为电信号。然后,可以分析并解码电信号,以提供符号的字母数字表示,其可以包含关于该物品的特定信息。这种类型的条形码符号目前普遍用于各种应用,诸如存货控制、销售识别点、或后勤(运销)跟踪系统。
由于传统的一维符号表示法需要相对大量的间隔来传达相对少量的数据,所以已经开发了所谓的二维条形码符号表示法。二维符号表示法可以包括占用统一量空间(通常具有矩形或正方形形状)的矩阵。代替条纹和间隔,在矩阵的特定行和列处布置圆形或正方形标记来对应于待传达的信息。这种二维符号表示法以及对包含其中的数据进行电子编码的技术是公知的,且例如在美国专利第5,612,524号、美国专利第5,331,176号、美国专利第4,972,475号和美国专利第4,924,078号中有所描述,其全部内容结合于此作为参考。
然而,目前二维符号表示法的应用可能需要较大量信息的编码。例如,用于身份证、银行卡或其他类型介质的生物测量信息的编码可能需要将较大量的数据包含在二维符号中。因此,需要一种能够保存这样的数据量的二维符号表示法。
此外,使用这种符号表示法可以包括在载体介质(诸如银行卡或ID卡)上连同其他图形和文本信息(诸如,照片、文本个人数据和/或组织标志)一起来设置二维条形码。并且,读取这种情况下所使用的二维符号的处理可能涉及获取整个载体介质的摄影图像。同样地,为了读取二维符号,需要有效地在其他图形信息中进行识别。此外,这种摄影图像可能是有噪声的、失真的、照明不足的,并且可能提供损坏的或者缺失某些部分的二维图像的图像。此外,在这种应用中所使用的二维符号表示法以及用于对其进行读取和编码的方法需要能够适应噪声和失真,并且可以校正符号的缺失部分和/或照明不足,以精确有效地解码这种符号。再者,对于用于诸如银行卡上的生物测量标识应用,二维符号表示法应当相对安全并且包含防御欺诈使用或复制的安全装置。
发明内容
本发明通过提供用于对诸如二维符号的特定信息符号进行成像和解码的方法和装置来满足这些要求。具体地,根据本发明的二维符号可以包括限定内部区域的四条实线边界线、在内部区域中以交替图案布置并与四条实线边界线相邻的第一阴影刻度标记(tickmark)和第二阴影刻度标记、以及在交替的刻度标记内部的数据单元。
根据本发明的读取信息符号(具有限定内部区域的四条实线边界线、在四条实线边界线的内部区域中以交替图案布置并与四条实线边界线相邻的多个第一阴影刻度标记和多个第二阴影刻度标记、以及在多个第一阴影刻度标记和多个第二阴影刻度标记内部的数据单元)的方法包括:获取信息符号的图像;识别信息符号的图像中的四条边界线,并在信息符号的图像中定位刻度标记;以及对信息符号的图像的数据单元中的数据进行解码。四条实线边界线可以有利地使信息符号更加容易且更有效地定位。刻度标记可以有利地使修复信息符号的图像的任何部分变得更加有效,并提供了对于信息符号中单元中心的相对快速的定位。
此外,根据本发明的对信息符号的图像进行二元化的方法包括:对信息符号的图像进行分片;生成对于信息符号的图像的每个小片的数据单元的灰阶直方图;平滑每幅生成的灰阶直方图以指示两个局部极大值,两个局部极大值在其间具有局部极小值;以及基于两个局部极大值之间的局部极小的位置确定二元化阈值。通过对图像进行分片并生成用于每个小片的灰阶直方图,可以有利地以相对高的精度来二元化具有不均匀照明的信息符号的图像,原因在于仅将每个小片的局部区域中的亮度等级(可能相对均匀)用于确定二元化阈值。
附图说明
结合在本申请中并构成本申请一部分的附图示出了本发明的几个方面,并与实施例的描述一起用于解释本发明的原理。以下是附图的简要说明:
图1示出了根据本发明的信息符号的一个实施例;
图2示出了信息符号的第二实施例,其示出根据本发明的主要块的一个实施例;
图3示出了图2的信息符号,其示出根据本发明的描述块的一个实施例;
图4示出了图2的信息符号,其示出根据本发明的里德-所罗门(Reed-Solomon)符号的一个实施例;
图5是示出了根据本发明的对信息符号进行编码的方法的一个实施例的流程图;
图6是示出了根据本发明的读取信息符号的方法的一个实施例的流程图;
图7是示出了根据本发明的对信息符号的图像进行二元化的方法的一个实施例的流程图;
图8是示出了根据本发明的用于对信息符号的图像进行二元化的平滑直方图的一个实施例的示图;
图9是示出了根据本发明的在其他对象中定位信息符号的图像的方法的一个实施例的流程图;
图10A和图10B是示出了在根据本发明的方法的一个实施例中如何可以找出信息符号的边界线的这种信息符号的示图;
图11是示出了根据本发明的识别信息符号的边界线的方法的一个实施例的流程图;
图12是示出了根据本发明的在信息符号中定位刻度标记的方法的一个实施例的流程图;
图13是示出了根据本发明的确定在信息符号的图像中是否存在错误或缺失刻度标记的方法的一个实施例的流程图;
图14是示出了根据本发明的固定信息符号的损坏或缺失角的方法的一个实施例的流程图;
图15是示出了如何可以找出信息符号的单元中心的近似位置的根据本发明的信息符号的示图;
图16是示出了根据本发明的定位信息符号的单元的近似中心的方法的一个实施例的流程图;
图17A、图17B和图17C是示出了根据本发明的如何可以降低或去除投影失真的信息符号的示图;
图18A和图18B是示出了如何降低或去除投影失真可以允许更加精确地定位信息符号的单元中心的根据本发明的信息符号的示图;
图19是示出了根据本发明的降低或去除投影失真以更加精确地定位信息符号的单元中心的方法的一个实施例的流程图;以及
图20是示出了根据本发明的解码信息符号的方法的一个实施例的流程图。
具体实施方式
本申请公开了可以表示可被数字化的任何形式的二元信息(包括数字、字母、图像、照片、图形、以及诸如指纹或声纹数据的生物测量信息)的标识符号。根据本发明的标识符号优选为二维条形码符号,其有利地具有相对高的数据容量,可以被相对快速地读取,并且可以采取矩形格式(而不仅仅是正方形格式),从而其可以广泛适应于多种位置。此外,根据本发明的信息符号包括误差校正和加密功能。本申请还公开了用于读取这种信息符号的方法。如本文所使用的,术语“信息符号”或信息符号的“图像”或者信息符号的任何部分可以指其任何表示,包括但不限于可视图像、以及转移或存储的数学或其他类型的数据。此外,本发明的原理可以应用于采用数据单元矩阵或其他符号表示法的任何符号。如本文所使用的,信息符号是指采用数据单元矩阵的任何符号表示法,诸如商业上公知的商标VericodeTM或DataMatrixTM或CodeOneTM等。
I.符号结构
图1示出了根据本发明的二维条形码信息符号100的实例。信息符号100是2D条形码矩阵,其具有以正方形或矩形图案布置的前景和背景对比阴影正方形单元。前景阴影优选为黑色,但也可以为其他阴影,而背景阴影优选为白色,但也可以为与前景阴影不同的其他阴影。在图1的实施例中,单元102是背景阴影单元,而单元104是前景阴影单元。虽然背景单元和前景单元可以为任意阴影,但是本文图中所示的背景单元将是白色的,而前景单元将是黑色的。如本文所使用的,术语“颜色”可以包括黑色、白色以及灰色阴影。
图2示出了根据本发明的信息符号200的一个实施例,其划分为数据区和非数据区。具体地,符号200包括作为符号200的单元的最外线条的四条边界线202、204、206和208。边界线202至边界线208的所有单元优选为前景(图2中黑色)。紧邻边界线202至边界线208内部的是刻度标记线212、214、216和218。线212至线218的单元通常从前景色交替为背景色,因此,每个单元均称为刻度标记。对齐刻度标记,从而边界线202至边界线208内侧的左下角(在图2中示为单元220,并且其在这里可以称为基准角或原点角)为背景色,并且边界线202至边界线208内侧的右上角(在图2中示为单元230)为前景色。从左下角的单元220开始,沿着刻度标记线212水平地以及沿着刻度标记线216垂直地按照交替色来布置刻度标记。同样地,从右上角的单元230开始,沿着刻度标记线214水平地以及沿着刻度标记线218垂直地按照交替色来布置刻度标记。从图2可以看出,并且取决于在符号210的给定方向上存在偶数个还是奇数个单元,刻度标记的颜色上的交替可能在与具有单元220和单元230的角相邻的符号200的角附近中止,两个背景色或两个前景色刻度标记可能呈现为彼此相邻。与边界线202至208直接相邻并完全围绕其的是静止区(quietzone),其为背景色并且优选地至少有2个单元宽。
根据本发明的信息符号可以用于在该符号附近存在其它对象或标记的应用场合。此外,如下所述,用于扫描信息符号的读取器或相机很可能无法以完全无失真的方式进行扫描。并且在读取操作中,重要的是既能够从其它对象和标记中识别出目标符号,也能够在识别之后正确地读取该符号。边界线和静止区将符号与可能位于正被读取的符号附近的其他对象或标记区分开来。此外,如下面进一步讨论的,边界线可以有助于重建损坏的符号或者在读取时可能捕捉有噪声的符号图像。刻度标记指示符号的每个单元的位置。这样,对信息符号进行解码的程序可以有效地定位单元中心位置。由于基准角(图2中的单元220)总是背景色,而对角(图2中的单元230)总是前景色,所以这些角标记可用于确定根据本发明的信息符号的方向以便于更有效的读取。
优选地,除了在其中心处具有单元230的符号200的右上角处的9个单元的正方形块之外,边界线202至边界线208以及刻度标记线212至刻度标记线218内部的区域称为数据区域(dataarea)或数据区(datazone)。如下面进一步讨论的,数据区包括在信息符号中经编码的实质数据。数据区的每个单元均可以表示一个二元数位,并且根据编码数据可以为背景色或前景色。
优选地,将数据区进一步划分为主要块和描述块。图2示出了符号200的优选地为数据区的主要块240预留的区。图3是符号200的另一示图,其示出了符号200的描述块250A、250B、250C和250D的优选位置。如图3所示,描述块250A至250D中的每个均为3×3配置的由9个单元构成的正方形块。这对于根据本发明的水平宽度为45个以下单元的信息符号来说,是优选的描述块的尺寸和配置。对于水平宽度大于45个单元的根据本发明的信息符号,描述块优选为矩形,且由12×6结构的72个单元配置。描述块在后文中进一步讨论。
优选地,主要块240包括用户数据、控制数据以及冗余数据。用户数据包括由用户应用程序直接处理的字节串数据。控制数据可以指示信息符号的配置,并且不由用户应用程序直接处理。容易理解,可以按照里德-所罗门码规则,根据用户数据和控制数据来计算冗余数据,以提供误差检测和校正。优选地,根据本发明的信息符号使用3×3单元块的方形,以表示单个里德-所罗门符号。里德-所罗门符号在本领域是公知的。
根据本发明的信息符号中单元的总数可以根据包含在符号中的信息量而改变。然而,由于预留任一方向上任意行的开始和结束处的两个单元用于符号边界线(图2中的行202至208)和刻度标记线(图2中的行212至218),所以根据本发明的符号的单元尺寸在任一方向上为3n+4,其中,n是在相关方向上延伸的3×3里德/所罗门符号的数目。
图4示出了根据本发明的信息符号300。符号300为19×19单元的正方形矩阵,并示出了符号300的数据区的主要块340中的里德/所罗门符号310(尽管在图4中未标注全部,但数据区300中的每个3×3块均为里德/所罗门符号310)。此外,信息符号300包括描述块350A、350B、350C和350D,如下所述,优选地,它们也可以是里德/所罗门符号。在图4的实施例中,优选地,每个里德/所罗门符号310为3×3单元的正方形矩阵。信息符号中的3×3单元里德/所罗门符号的数目为x方向上的单元数目减去4乘以y方向上的单元减去4再除以9。因此,在信息符号300中,在x方向上19个单元减去4,而在y方向上19个单元减去4,为15×15=225个单元,然后除以9等于25个里德/所罗门符号。给定信息符号中里德/所罗门符号的总数可以根据信息符号的尺寸而改变。
由于3×3矩阵中的每个单元可以为前景色或背景色,所以每个3×3矩阵可以表示(29-1)或511个里德/所罗门符号中的一个。优选地,如本领域公知的,里德/所罗门符号可以包含用户数据和误差校正信息。因此,可以包含在根据本发明的信息符号中使用的里德-所罗门符号中的用户数据和误差校正信息的一个组合,包括被设置为提供256个字符的8位构造或者其他二元化结构的用户数据,里德-所罗门符号中的剩余空间则可用于误差校正数据。在这种实施例中,可以按照任何期望的方式来使用8位用户数据。例如,用户数据还可以格式化为6位压缩形式。此外,用户数据可以表示提供具有256种选择(诸如载色剂可以着色的所有颜色或者诸如给定软件应用程序专用的指纹细节的纯二元化数据)的数据组的查询表中的值。
在一个优选实施例中,描述块350A、350B、350C以及350D包括4位里德-所罗门符号,并且可以如图4所示地进行划分。里德-所罗门符号在本领域是公知的。具体地,描述块350A至描述块350D中的每个均可以包括2×2单元块352、两个2×1单元块354和356以及单个1单元块358。由于在图4所示的实施例中,描述块350A至描述块350D可以包含4位里德-所罗门符号,所以在每个描述块350A至描述块350D中,在每个4×4块352中可以定位一个这样的符号,在两个2×1块354和356的组合中可以定位一个这样的符号,以及在四个单个单元块358的组合中可以定位一个这样的符号。在一个实施例中,描述块350A至描述块350D可以保存关于符号300的编码或结构的格式化信息。还可以预留描述块350A至描述块350D用于任何其他目的。还考虑到描述块350A至350D中的每个均可以保存一个3×3里德-所罗门符号,或者任何其他尺寸(可以包含在描述块350A至描述块350D的位的总数中)的符号。
信息符号300还可以包括角块360,其可以优选地限定为单元的3×3的单元块,其最右上方的单元与右上角前景刻度标记对角相邻。优选地,角块360中最右上方单元为前景色,角块360的中心单元以及该中心单元的正上和正右的单元为背景色。同样地,角块360的其余5个单元优选为可变的,因此可以包含数据。在一个实施例中,角块360的5个可变颜色单元优选为系统信息字符的计数。系统信息字符可以保存关于符号300的使用、格式、编码或其他数据的信息。优选地,当对这种数据进行编码时,系统信息字符可以置于任何用户数据的前端。
II.符号编码
图5是示出使用信息对根据本发明的信息符号进行编码的根据本发明的方法500的流程图。首先,在步骤502中,确定要被编码的字符和/或其他信息。接下来,在步骤504中,可以使用本领域公知的压缩密钥来选择性地压缩用户数据。接下来,在步骤506中,根据选择性压缩的用户数据来生成线性位流。在步骤508中,基于线性位流,以本领域技术人员公知的方式来计算循环冗余码校验(CRC)。CRC稍后可用于校验从信息符号解码的信息是否正确。在步骤510中,可以使用加密密钥来对线性位流进行选择性加密。然后,在步骤512中,将CRC附加至线性位流。此外,在步骤512中,如果使用,则加密密钥和/或压缩密钥可以附加至线性位流,从而这种密钥可以包含在信息符号本身中。在步骤514中,可以使用位屏蔽对线性位流进行选择性随机化。接下来,在步骤516中,基于位流生成上述里德/所罗门符号。
在步骤518中,优选地,交叉来自里德-所罗门符号的位值,从而对于符号的任何损坏都将跨越不同块来分配,因此不太可能提供不可读的符号。里德-所罗门编码数据的这种交叉在本领域是公知的。用于交叉里德-所罗门符号的密钥可以是提供邻近数据的交叉位置的查询表。
最后,在步骤520中,优选地,随后使用暗和亮正方形将经交叉的位转换为图形表示。这种编码处理在本领域是公知的。包括用户数据、控制数据和冗余数据的图形表示的部分定位在根据本发明的信息符号的数据区中。描述信息符号格式化的信息的图形表示定位在信息符号的描述块中。
优选地,对包括在数据区的主要块以及信息符号的角块中的数据执行图5的方法。优选地,对包括在信息符号的描述块中的数据单独执行相同的处理。
III.符号读取和解码
图6是示出根据本发明的用于获取和读取要被读取的信息符号的图像的方法600的一个实施例的流程图。
获取图像
首先,在方法600的步骤602中,对具有要被读取的信息符号的对象进行拍摄或者扫描以生成其原始图像。然后,使用本领域技术普通技术人员公知的技术对该原始图像进行像素化。
图像二元化
接下来,在方法600的步骤604中,优选地,对图像进行二元化。如本领域普通技术人员公知的,用于扫描和生成具有信息符号的对象的原始图像的软件可配置为,过滤原始图像以指示在包含信息符号的扫描对象上的感兴趣的区域。如果未限定原始图像中的感兴趣的区域,则对整个图像进行二元化,并且认为整个图像是感兴趣的区域。如果限定了这种感兴趣的区域,则二元化可以更加精确,并且不受驻留在图像中的其他区域中任何噪声或对象的影响。如果限定了感兴趣的区域,则与未限定感兴趣的区域的情况相比,图像处理操作(包括二元化)可以较快进行,原因在于可以处理图像的较小部分。
图7是示出根据本发明的对包括信息符号的获取图像进行二元化的方法604′的一个实施例的流程图。首先,在方法604′的步骤604a中,如果图像未处于灰阶中,则将其转换为灰阶。然而,由于当生成原始图像时不均匀的照明所致,这种灰阶图像的背景可能不一致。如果相机或其他扫描器的光源没有垂直地置于所扫描对象的上方并且对象的某些区域比靠近光源的区域得到的照明少,则会发生这种情况。这对于照度在整个扫描的对象上比较均匀的平板扫描器可能不是太大的问题。
然而,如果原始图像的背景不均匀,则用于二元化的全局图像阈值不再工作。因此,在步骤604b中,确定灰阶图像对于应用全局阈值是否足够均匀。如果在灰阶图像中存在足够的不均匀性,则优选地,建立用于较小区域的局部阈值。因此,在步骤604c中,将原始图像动态划分为基本相等尺寸的小片。通常,相对较小尺寸的小片用于相对较小的图像,而相对较大尺寸的小片用于相对较大的图像。如果尺寸过小,则小背景区域可能以转换为前景而告终,反之亦然。如果尺寸过大,则全局阈值的问题将仍然存在。根据原始图像的尺寸,可以将其划分为约3×3的小片到约30×30的小片(尽管小片不需要为正方形)。如果在步骤604b中确定对于全局阈值来说灰阶图像足够均匀,则在步骤604d中确定不对图像进行分片。
以下关于步骤604e、604f和604g的讨论涉及(如果对图像进行分片)每个小片中的操作,或者(如果未对图像进行分片)全局图像中的操作。阈值为0和255之间的值。为了计算阈值,在步骤604e中,生成0至255的灰阶值与给定灰阶值的原始图像(或者如果限定了这种区域,则是这种原始图像的感兴趣的区域)的像素数的关系直方图。这种直方图通常具有局部极大值的数目。
因此,在步骤604f中,平滑该直方图。可以使用任何公知方法来执行对直方图的平滑。一种这样的方法为假设直方图中的第一组极大值与前景像素相关,而第二组极大值与背景像素相关。可以进行这种假设的一种方式为:沿着直方图的曲线移动,每当遇到随后的局部极大值时,则对其求平均值,直到仅剩余两个局部极大值为止。
理想地,这种平滑操作将导致仅具有两个局部极大值(前景极大值和背景极大值)、其间具有局部极小值的直方图。图8示出了由这种平滑处理可以得到的直方图550。直方图550是像素化的原始图像中像素的0至255的灰阶值与每个灰阶值处的像素数的关系曲线图(已经如上所述地进行了平滑和相加)。如图所示,该处理可以导致找出两个局部极大值,取两个局部极大值552和554之间的局部极小值556的灰阶值作为用于小片或者用于整个像素化图像(如果未进行分片)的阈值。
在步骤604h中,如果对像素化的原始图像进行分片,则优选地,对照以上述方式计算的用于整个原始像素化图像的全局阈值来检验每个小片阈值。在步骤604i中,如果全局阈值在一个或多个小片阈值的预定范围之外,则将一个或多个小片阈值重置在全局阈值范围内。如果给定的小片阈值在全局阈值范围的上限以上,则降低小片阈值直到其在该范围之内。如果给定的小片阈值在全局阈值范围的下限以下,则提高小片阈值直到其在该范围之内。
在步骤604中,对图像进行二元化。具体地,如果对原始的像素化图像进行了分片,则将如上确定的小片阈值应用于相应的小片的像素。如果像素在阈值以下,则将该像素指定为背景,如果像素在阈值以上,则将其指定为前景像素。由于不再需要原始像素化的灰阶图像,所以图像或感兴趣的区域可以被适当地二元化(尽管不需要),并且由二元化图像对最初的原始图像进行重写以节约存储器和时间。
使用初始化文件可以增加解码经扫描的信息符号的处理速度。这种初始化文件可以由成像和/或解码信息符号的软件程序调用,并且可以提供相关联信息符号的格式和结构方面的信息。无限制地,可包括在初始化文件中的信息可以包括感兴趣的区域(其中可找出待读取的信息符号)的获取图像的位置、符号尺寸、符号的每单元像素数、图像中符号的近似旋转。通过处理图像难以精确地确定这些值中的某些值,而预先知道这些值可以使图像处理值更快且更精确。
应该理解,上述的根据本发明的二元化信息符号的方法可以应用于使用数据单元矩阵的任何信息符号。
噪声去除
在方法600的步骤606中,从图像中去除某些类型的噪声。具体地,所获取的原始的像素化图像可能以具有某些噪声而告终,该噪声由相机电子设备所引起,其创建了电子噪声的伪像而非真正的数据像素的黑或白像素。这种类型的噪声通常称为椒盐噪声。图像获取过程中的其他类型的噪声也可能引起这种类型的黑或白像素的错误创建。因此,大多数滤波器可以用于去除椒盐噪声。大多数滤波器对于本领域的普通技术技术人员来说是公知的。
将图像分割为不同对象
如上所述,所获取的图像可能包括除了待解码的信息符号以外的对象。因此,为了定位符号,在步骤608中,可以将图像分割为不同的对象。如果先前指定了在其中应该找出信息符号的感兴趣的区域(例如,在上述初始化文件中),则该步骤是不必要的。如果未指定感兴趣的区域,则将二元化图像分割为具有接近前景像素的部分。即,假设不以前景像素而相互连接但在区域内具有接近前景像素的突发(burst)的区域很可能是独立的对象(例如,ID照片、文本信息等)。
在对象中识别2D条形码符号
在将感兴趣的区域分割为多个对象之后,在步骤610中,如果区域中存在这种符号,则识别形成2D条形码符号的对象。图9是示出了根据本发明的用于在二元化图像中的定位对象中识别信息符号的处理的流程图。在上述步骤610a和610b中,定位接近像素的区域,并且在二元化图像中识别候选对象。在步骤610c中,确定经识别的对象的参数。具体地,数据包括但不限于区域中的像素数、区域的尺寸和纵横比,以及对于每个识别对象所确定的前景单元的密度。然后,在步骤610d中,用于每个对象的这些参数可以与可应用于正在搜索的信息符号的这种参数相比较。例如,确定二元化图像中对象的尺寸、纵横比和像素数。这些参数均与信息符号的所预期的相同的参数进行比较。在步骤610e中,基于这些比较的结果,以最可能到最不可能是信息符号的顺序对二元化图像中的对象进行排序。
如上所述,优选地,根据本发明的信息符号包括四条实线的边界线。因此,在排序之后,在步骤610f中,优选地,检查排序在最上面的对象以确定是否存在可能形成4条边界线的2对相对、平行、或近似平行的线。在一个实施例中,如图10A和图10B那样做。图10A示出了根据本发明一个实施例的信息符号1000。为了确定符号1000是否包括第一对平行线,沿着平行扫描线1010扫描像素。首先在箭头A的方向上从符号1000的A主边缘开始,其次在箭头B的方向上从符号1000的B主边缘开始,横跨符号1000进行这种扫描。所寻找的两组连接像素,其可能在或者可能不在扫描线1010的方向上,但是必须基本上沿着某个给定方向连接,并且每组连接像素应该基本上沿着相同的方向。此外,连接像素应该具有某预定厚度。
如图10B所示地执行类似处理,在箭头C的方向上沿着扫描线1020进行符号1000的扫描,并且在箭头D的方向上沿着扫描线1020进行扫描。如参照图10A所描述的,扫描寻找两组连接像素,每组连接像素均沿着基本相同的方向并具有预定厚度。
如果找出这种连接像素的线,则在步骤610g中,检查线内部的区域。这种检查寻找如在根据本发明的信息符号中可以找出的预定数量的基本均匀的(从前景单元到背景单元并且又回到前景单元的)变换。如果找出这种变换,则将进一步检查作为可能的信息符号的对象。
一旦在二元化图像中识别到信息符号的最佳候选,则为了精确地读取和解码根据本发明的信息符号,优选地,定位符号的数据区中每个单元的中心。这是因为假设在单元中心处将给出任何单元的颜色的最佳指示。这样,可以增加正确地确定每个单元的颜色的可能性,从而精确地对单元进行解码。为了定位数据区的每个单元的中心,优选地,确定符号的角位置。另外,为了对角进行定位,优选地,首先找出边界线和刻度标记线。
找出符号的实线边
一旦选择了候选对象,在步骤612中,找出并限定构成实线边界线的四条线(例如,图2中的边界线206、208、212和214,或者图10A和图10B中所示的主边缘和副边缘)。将这种边界线限定为信息符号四条边中的每条的最外面的连续前景单元组。图11是示出了找出根据本发明的符号的实线边界线的一种方法612′的流程图。为了限定边界线,如上所述并如图10A和图10B所示地检查所选择的对象。具体地,在方法612′的步骤612a中,在图10A的箭头A和B的方向上沿着平行扫描线1010,并且在图10B的箭头C和D的方向上沿着平行扫描线1020来获取对象的视图。在步骤612b中,沿着扫描线的视图寻找背景像素到前景像素的第一变换、然后下一个前景像素到背景像素的变换。对于沿着箭头A、B、C和D的四幅视图中的每幅均记录每次变换的位置和变换之间的像素数。
在步骤612c中,在这四幅视图的每幅中,具有较大数目变换的边界线称为主边缘,其他边界线称为副边缘。例如,参见图10A中箭头A的方向,A主边缘沿着13条扫描线1010进行变换,而A副边缘仅沿着7条扫描线1010进行变换。给定视图中的主线和副线在角(其是距离该视图的图像侧最近的点)中相交。
填补边界线的缺失部分
在一个实施例中,可能存在如下情况,即,在识别边界线的过程中,对于主边界线可能无法找出完全连续的线。步骤614重点在于填补这种不连续的线。在这种情况下,如图11的步骤614a和614b所示,边界线中不连续边缘处的背景像素到前景像素以及前景像素到背景像素的变换可以与线结合,然后可以确定有多少前景像素落在这种线上。然后,在步骤614c中,可通过移动所画线的位置和斜率来重复该处理,直到沿着线所找出的所有像素都为前景像素。如果找出多于一条这种线,则这种多条线可以取平均以填补不连续。任何其他适当的线修复算法也可以用于使不连续的边界线完整。
此外,由于每条边界线都具有等长的相对边界线,所以如果已知与不连续边界线相对的边界线的长度,则通过向不连续的边界线添加单元,可以延长不连续的边界线以与相对的、完整的边界线的长度相匹配。
定位刻度标记
在识别符号的边界线之后,步骤616的重点在于查找处于边界线内部的前景刻度标记和背景刻度标记。图12是示出了根据本发明的用于定位信息符号的刻度标记的方法616′的一个实施例的流程图。如上所述,记录沿着穿过所选对象的扫描线的背景像素到前景像素的变换以及随后前景像素到背景像素的变换之间像素的位置和数目。并且,同样如上所述,根据本发明的信息符号的结构包括沿着每条边界线内部的单元尺寸的交替的前景刻度标记和背景刻度标记。因此,在没有刻度标记的情况下,所记录的像素变换之间距离将指示边界线的厚度,而在存在刻度标记的情况下,所记录的像素变换之间距离将指示边界线加上刻度标记的厚度。因此,在图12的步骤616a中,确定这两个距离(即,存在刻度标记情况下的变换之间的距离)中的较大的一半,并且将其作为一个单元的厚度的第一近似,其等于边界线的厚度或者刻度标记的厚度。然后,在步骤616b中,记录存在刻度标记情况下(由变换之间的单元宽度距离的约两倍表示)以及不存在刻度标记情况下(由变换之间的约一个单元宽度距离来表示)的沿着每条边界线的位置数目。
由于符号很可能歪斜,所以测量符号边界线和刻度标记的水平宽度和垂直宽度可能未反映实际的单元宽度。为了更精确地确定单元宽度,在方法616′的步骤616c中,选择第一边界线,并且,以距边界线的内边缘约单元的近似宽度一半的距离、且基本平行于边界线,构造射线(ray,半直线)。然后,在步骤616d中,确定沿着该射线的背景到前景以及前景到背景变换的频率。由于射线基本上平行于边界线,所以像素变换之间的距离将给出单元的近似宽度。因此,在步骤616e中,确定每个单元的近似宽度。此外,由于下述的投影失真,该频率将通常随着射线上的位置向符号图像的远边移动而增加。该频率的增加可以用作作为第一近似的校正因子,以解决当确定下述的刻度标记的中心位置时产生的投影失真。因此,在步骤616f中,确定并记录沿着射线的像素变换的频率变化。
在步骤616g中,通过使用上面确定的刻度标记的数目和宽度,确定沿着边界线的刻度标记的位置。然而,可能存在某些刻度标记损坏或者添加了附加的刻度标记的情况。因此,优选地,确定沿着每条边界线的刻度标记的数目。如上所述,相对的刻度标记线必须包括相同数目的刻度标记,其必须还等于3n+4,其中n为整数。如果没有满足该标准,则在一个实施例中,可以假设存在必须修复或去除的沿着一条或多条边界线的损坏或额外的刻度标记。
如上所述,在找出刻度标记的数目、宽度和位置之后,可以返回并修复任何其余的、不完整的边界线。具体地,考虑两条相对的水平边界线或垂直边界线。如果两条边界中的一条在其中具有间断,则如上所述地确定沿着相对的、完整的边界的刻度标记的数目。然后,确定沿着损坏的边界的刻度标记的尺寸。最后,由于如上所述,每条边界沿着其内边缘均具有相同数目的刻度标记,所以延长损坏的边界线,从而最终的长度等于沿着损坏边界的刻度标记的数目乘以沿着未损坏边界的刻度标记的数目。如果有必要,随后可以对其他的相对的成对边界执行该操作。包括沿着所有四条边界的刻度标记有利地使得比较有效地重建符号边界成为可能。
去除伪刻度标记并修复缺失刻度标记
如上所述,由于扫描问题、二元化问题、噪声、以及其他因素,在步骤616中找出的某些前景刻度标记可能以产生缺失或伪刻度标记而告终。因此,在方法600的步骤618中,去除虚假刻度标记,并添加缺失的刻度标记。
图13是示出在根据本发明的信息符号中定位缺失或伪刻度标记的优选方法618′的一个实施例的流程图。由于两条相对边界线的内边缘都包括刻度标记,所以在确定沿着第一边界线是否存在缺失或伪刻度标记时,方法618′的步骤618a是检查沿着相对边界线的刻度标记的数目。因此,如果沿着第一边界线缺失角,且没有相对的边界线,则有可能相对的边界线包括刻度标记的正确数目,且可以沿着第一边界线匹配该数目。然而,如果不清楚哪条边界线具有不正确的刻度标记数目,则在步骤618b中,可以检验每条边界线的尺寸,其必须等于3n+4,其中n为信息符号中的里德/所罗门符号的整数。如果一条边界线包括可接受的单元数目而另一条不包括,则可以根据需要添加或减少沿着不正确边界线的刻度标记,并使用来自相邻的、已知良好的刻度标记的尺寸和位置数据。
此外,如上所述,从左下角前景刻度标记和右上角背景刻度标记开始,沿着边界线以交替方式插入刻度标记。因此,在步骤618c中,如果边界线具有不符合该规则的相邻刻度标记,则可以根据需要添加或去除刻度标记以强制执行这种规则。
修复损坏的角
如上所述,对根据本发明的信息符号进行解码的方法的一部分为定位符号的角。然而,可能在扫描处理中或者在扫描对象自身损坏符号的一个或多个角。因此,在方法600的步骤620中,优选地,修补损坏的角。
图14是示出根据本发明的修复信息符号的损坏角的优选方法620′的一个实施例的流程图。如果相邻的边界线未在公共顶点处结束,则顶点应该位于的角可能缺失或损坏。为了重建该角,在方法620′的步骤620a中,延长与损坏或缺失角相邻的边界线,直到它们交叉为止,并且还基于与没有损坏的角相邻的对应边界线的长度来延长沿着每条边界线的刻度标记。该处理将定位缺失角。在方法620′的步骤620b中,确定是否有一个以上的角损坏。如果存在,则在步骤620c中,估计实际的缺失角可能位于的位置。然后,在步骤620d中,如下面进一步描述的,完成读取和解码步骤,以了解是否可以读取信息符号。如果无法读取,则可以估计多个缺失角的不同位置,并且可以重复该处理。
检查符号行和列的数目
如上所述,根据本发明的符号的尺寸必须为3n+4,其中n为信息符号中沿着符号的长度或宽度的里德-所罗门符号的数目。在方法600的步骤622和步骤623中,检查经定位的信息符号,以了解是否遵循该规则。如上所述,可以通过计算沿着给定边界线的刻度标记的数目来确定信息符号中行和列的数目。如果违反了该规则,如上所述,则可以通过添加或去除刻度标记来调整信息符号的行或列的数目。如果没有违反该规则,则可以如下所述地找出单元中心的近似位置。
近似的单元中心位置
在方法600的步骤624中,定位信息符号的每个单元的近似中心位置。如上所述地确定近似的刻度标记宽度和位置。根据该信息,可以近似得到符号中所有刻度标记的中心位置。具体地,确定每个刻度标记的两条相邻边缘的位置。然后,找出刻度标记中表示刻度标记一半宽度的、在每个方向上垂直于每个相邻边缘位置的位置。这可以看作是刻度标记的近似中心。图15示出了根据本发明的信息符号1150,具有拥有中心1160的刻度标记1152以及单元1154。如图所示,垂直射线1162和水平射线1164从沿着符号1150的第一边界线的刻度标记的中心拉伸至沿着与第一边界线相对的边界线的相应的刻度标记。将每个单元1154的近似中心看作每条垂直射线1162与每条水平射线1164的交叉点。
在图16中示出了根据本发明的查找信息符号的近似单元中心的优选方法624′的一个实施例的流程图。在步骤624a中,如上所述地定位每个刻度标记的近似中心。然后,在步骤624b中,生成垂直射线和水平射线,连接如图15所示的相对的刻度标记的中心。在步骤624c中,确定垂直射线和水平射线的交叉点位置,并将其看作信息符号的单元的近似中心位置。
校正图像投影失真
如果捕捉符号图像的相机位于符号的右上方,则所得到的捕捉图像有可能是近似矩形的,这是所期望的。然而,如果从符号的侧面或角来捕捉图像,则所得到的符号图像可能具有失真的形状。这可能使得符号的最终解码比较困难,或者降低精确性,原因在于这可能使单元的中心位置歪斜,如上所述,该中心是每个单元的一部分用于确定该单元的颜色。因此,在步骤626中,可以校正图像中的这种投影失真。
在信息符号的图像示出投影失真的情况下,远角以小于近角的距离彼此分离,这将导致不平行的边。
图17A示出了具有投影失真的信息符号图像1100的实施例的表示。具体地,角1106和角1108显得比角1102和角1104彼此更加靠近。在用于校正这种情况的方法中,在对角之间生成对角线1112和1114。在矩形或正方形中,对角线1112和对角线1114应该互相平分。然而,在符号图像1100的表示中,对角线1112和对角线1114未互相平分。具体地,从对角线1112和1114的交叉点到角1108的距离1110小于对角线1112的长度1120的一半。为了校正这种情况,优选地,在对角线1112的方向上移动角1102和角1108的位置,以使距离1110等于对角线1112的长度1120的一半。然后对于角1106和对角线1114执行相同处理。优选地,使用“缩放”整数来执行该处理,以避免浮点数学。如这里所使用的,缩放整数指的是具有去除任何小数点从而该值为整数的数值。例如,十进制数值12.45的缩放整数是1245。
图17B示出了在移动其角以使对角线互相平分之后的标注为1100′的信息符号图像1110。具体地,符号图像1100′的对角线1112′和1114′现在互相平分,在点1116′处交叉。
在移动信息符号图像的角以解决投影失真之后,优选地,移动(如上所述地确定了其近似位置的)单元中心以解决投影失真。优选地,通过首先计算本文所称的“z因子”(其是提供影响图像给定部分的投影失真量的相对测量的校正因子)来完成该步骤。
图17C示出了根据本发明的用于计算z因子,然后使用其校正信息符号的图像中单元的中心位置的优选方法的示图。图17C示出了具有投影失真的信息符号的图像的四个单元1410、1420、1430和1440的表示。单元1410包括对角线1404和对角线1406。图19是示出这种方法626′的步骤的流程图。具体地,为了找出单元1410的角1401的z因子,在方法626′的步骤626a中,计算单元1410的每条对角线1404和对角线1406的长度。在步骤626b中,确定交叉点1402的位置。在步骤626c中,确定从交叉点1402到角1401的对角线段的长度。然后,在步骤626d中,通过将对角线1404的一半长度除以在步骤626c中计算的对角线段的长度来确定z因子。在步骤626e中,对于单元1404中的其余三个角1403、1405和1407的每个均重复该处理。
为了使用这些计算的z因子来校正单元1410、1420、1430和1440的单元中心位置,在方法626′的步骤626f中,找出单元1410的每个角1401、1403、1405和1407相对于单元1410的两条对角线1404和1406的交叉点1402的x、y坐标。在步骤626g中,这种角坐标的相对集合(relativeset)中的每个均乘以用于该角的z因子。这些称为“缩放坐标”。接下来,在步骤626h中,确定单元1410的边1412以及单元1420的边1414的长度,并且在步骤626i中,确定用于每条边的角的z因子之间的差。即,确定边1412的长度,并找出角1401和角1403的z因子之间的差。并且,独立地,确定边1414的长度,并找出角1409和角1411的z因子之间的差。根据边的长度以及该边的每个角的z因子的差,在步骤626j中可以确定对于该边的成比例的z因子。成比例的z因子将给出针对沿着所计算的一个单元或多个单元的边的距离的任何变化的z因子的变化。在步骤626k中,确定每行端点的中心点1450和1460以及用于每个点1450和1460的z因子(第一行由单元1410和1420形成,第二行由单元1430和1440形成)。可分别使用在步骤626j中找出的用于边1412和1414的成比例z因子来确定点1450和1460的z因子。在步骤626l中,步骤626h至626k的方法用于确定单元1410、1420、1430和1440的底部边缘的中心。在步骤626m中,步骤626k和626l中生成的坐标用于找出单元1410的经校正的中心。为了找出单元1410的中心的绝对坐标,在步骤626n中,将单元1410的中心的缩放坐标除以这些坐标的z因子(通过使用成比例z因子找出),并将结果与中心点1402的坐标相加。
图18A和图18B示出了对信息符号执行诸如图19的方法626′的方法的结果。图18A示出了具有多个单元的信息符号1200。点1210示出了信息符号1200的单元的中心位置(其在未对投影失真进行校正的情况下计算得出)。如图所示,许多点1210不在符号1200的单元中心附近,并且许多点在单元之间的边界处。图18B示出了信息符号1200′,使用根据本发明的校正投影失真的方法校正了任意投影失真。点1210′示出了在校正投影失真之后计算的符号1200′的单元的中心点。如图所示,单元的经计算的中心点1210′出现在更加靠近单元的实际中心处,并且没有经计算的中心点出现在单元之间的边界处。因此,与如果未校正投影失真相比,符号1200′的经计算的单元中心点可以提供关于符号1200′的每个单元的颜色的更加精确的信息。
应该理解,上述的降低根据本发明的信息符号图像中的投影失真的方法可以应用于使用数据单元的矩阵的任何信息符号。
确定符号的方向
一旦获取、重建了信息符号且降低或校正了失真,就在方法600的步骤628中正确地确定了符号的方向以进行解码。如上所述,只有根据本发明的信息符号的一个角(在边界线内侧)为背景色。在正确的方向上,该方向角为左下角。所以,为了正确地定向信息符号,方向角位于信息符号的左下部。然而,如在从透明的背面进行扫描的情况下,图像可能水平或垂直翻转。为了确定是否为这种情况,做出首次尝试来对符号进行解码,如果首次尝试失败,则生成符号的镜像图像,然后再次尝试解码。
对符号进行解码
在方法600的步骤630中,将图像处理信息符号解码为原始数据。图20示出了根据本发明的用于在上述图像处理步骤之后对信息符号进行解码的方法的流程图。在步骤630a中,将单元颜色图案转换为二元化数据。在一个实施例,前景单元可以转换为“1”,而背景单元可以转换为“0”。如上所述,在单元的中心处确定单元的二元化值。优选地,将该二元化数据保存在单元的图案中。在步骤630b中,根据对符号进行编码时所使用的图案,将里德-所罗门符号定位为二元化数据图案。然后,在步骤630c中,再次根据编码时使用的交叉算法,去交叉(de-interleaf)里德-所罗门符号。在步骤630d中,根据在加密期间用于生成符号的里德-所罗门算法,从去交织的里德-所罗门符号中提取数据。如果在编码期间使用随机化位屏蔽,则在步骤630e中,相应的去随机化位屏蔽用于对数据进行去随机化。并且,如果在编码期间对数据进行加密,则在步骤630f中,对数据进行解密。如上面参照图5的步骤512所讨论的,加密密钥可以任选地附加至用户数据(在加密之后)的位流并包括在信息符号中。如果这样做,则可以在去随机化的数据中识别用于解密数据的密钥,并将其用于解密数据。在步骤630g中,计算用于经解密的数据的CRC,并且检查原始数据的精确性。
此时,在步骤632g中,如果确定数据不精确,则可能是因为信息符号的图像由于损坏或其他原因所致的未正确定向。因此,如果CRC不匹配,则在步骤634g中,可以将图像旋转90度和/或可以确定图像的镜像图像,并再次从步骤630a开始解码处理。
如果CRC校验确定数据是精确的,则在步骤630h中,如果在编码期间对数据进行了压缩,则优选地对其进行解压缩。如上所述,可以在编码期间将压缩密钥附加至用户数据位流。如果这样做,则附加的压缩密钥可以用于对数据进行解压缩。然后,在步骤630i中,优选地,从得到的经解压缩的数据中提取原始用户数据。
在前面的描述中阐述了旨在由该文件描述的本发明的各种特征和优点。然而,应该理解,虽然示出了本发明的特定形式或实施例,但是在不背离本发明的精神和范围的情况下,可以进行各种修改,包括对部件的形状和配置的修改等。
Claims (3)
1.一种从二维条形码矩阵中读取实质数据的方法,所述实质数据编码于所述二维条形码矩阵中,所述方法包括步骤:
通过成像装置获取二维条形码矩阵的图像,所述二维条形码包括非数据区,所述非数据区具有四条实线边界,限定内部区域;
多个第一阴影的第一阴影刻度标记和多个不同于所述第一阴影的第二阴影的第二阴影刻度标记,所述第一阴影刻度标记和所述第二阴影刻度标记以交替图案布置于所述四条实线边界的所述内部区域,并与所述四条实线边界相邻;以及
所述二维条形码包括数据区,所述数据区具有数据单元,在所述多个第一阴影刻度标记和所述多个第二阴影刻度标记的内部,
所述方法包括:
识别所述二维条形码矩阵的图像中的所述四条边界;
定位所述二维条形码矩阵的图像中的所述刻度标记;
从所述四条实线边界内部的交替的阴影刻度标记定位包含数据的单元的行和列;以及
对所述二维条形码矩阵的图像的所述数据单元中的实质数据进行解码;还包括:确定所述二维条形码矩阵的图像的方向,和降低所述二维条形码矩阵的图像中的投影失真。
2.根据权利要求1所述的方法,包括:对所述二维条形码矩阵的图像进行二元化,和定位所述二维条形码矩阵的图像中的所述数据单元的中心。
3.根据权利要求2所述的方法,包括:
对所述二维条形码矩阵的图像进行分片;
生成用于所述二维条形码矩阵的图像的每个小片中的数据单元的灰阶直方图;
平滑每幅生成的所述灰阶直方图,以指示两个局部极大值,所述两个局部极大值在其间具有局部极小值;以及
基于所述两个局部极大值之间的所述局部极小值的位置确定二元化阈值。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US6287908P | 2008-01-29 | 2008-01-29 | |
US61/062,879 | 2008-01-29 | ||
US19620008P | 2008-10-15 | 2008-10-15 | |
US61/196,200 | 2008-10-15 | ||
US19846308P | 2008-11-06 | 2008-11-06 | |
US61/198,463 | 2008-11-06 | ||
PCT/US2009/000594 WO2009097137A1 (en) | 2008-01-29 | 2009-01-29 | Two-dimensional symbol and method for reading same |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101978380A CN101978380A (zh) | 2011-02-16 |
CN101978380B true CN101978380B (zh) | 2015-11-25 |
Family
ID=40913152
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980110258.4A Expired - Fee Related CN101978380B (zh) | 2008-01-29 | 2009-01-29 | 二维符号及其读取方法 |
Country Status (9)
Country | Link |
---|---|
US (2) | US8152070B2 (zh) |
EP (1) | EP2248068B1 (zh) |
KR (1) | KR20110002833A (zh) |
CN (1) | CN101978380B (zh) |
CA (1) | CA2717682A1 (zh) |
HK (1) | HK1150461A1 (zh) |
MX (1) | MX2010008335A (zh) |
WO (1) | WO2009097137A1 (zh) |
ZA (1) | ZA201006122B (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5453594B2 (ja) * | 2010-02-01 | 2014-03-26 | 日本電産サンキョー株式会社 | シンボル情報読取装置及びシンボル情報読取方法 |
JP2011159229A (ja) * | 2010-02-03 | 2011-08-18 | Sony Corp | データ読み取り装置および方法、並びにデータ記録装置。 |
US8360333B2 (en) * | 2010-04-06 | 2013-01-29 | Naddor David J | HD barcode |
CN101882207B (zh) * | 2010-06-01 | 2012-06-20 | 福建新大陆电脑股份有限公司 | Data Matrix码条码解码芯片及其解码方法 |
CN101882210B (zh) * | 2010-06-01 | 2012-06-27 | 福建新大陆电脑股份有限公司 | 矩阵式二维条码解码芯片及其解码方法 |
CN101833644B (zh) * | 2010-06-01 | 2012-06-06 | 福建新大陆电脑股份有限公司 | 一种基于动态模板的校正图形搜索方法 |
US9396421B2 (en) * | 2010-08-14 | 2016-07-19 | Rujan Entwicklung Und Forschung Gmbh | Producing, capturing and using visual identification tags for moving objects |
KR101753914B1 (ko) * | 2011-06-10 | 2017-07-05 | 삼성전자주식회사 | 휴대단말기에서 바코드 생성 및 인식할 수 있는 장치 및 방법 |
KR101293703B1 (ko) * | 2011-11-28 | 2013-08-06 | (주)이컴앤드시스템 | 스큐된 데이터 매트릭스 바코드 디코딩 장치와 이를 위한 방법 |
CN102708349B (zh) * | 2012-05-11 | 2014-11-05 | 深圳市天朗时代科技有限公司 | 一种矩阵式二维码的解码方法 |
US9946947B2 (en) * | 2012-10-31 | 2018-04-17 | Cognex Corporation | System and method for finding saddle point-like structures in an image and determining information from the same |
CN103218785B (zh) * | 2013-04-19 | 2015-10-28 | 中国科学院深圳先进技术研究院 | 图像修复方法和装置 |
US9311584B2 (en) * | 2013-05-24 | 2016-04-12 | King Abdulaziz City for Science and Technology (KACST) | Multidimensional color barcode |
JP6330388B2 (ja) * | 2014-03-14 | 2018-05-30 | オムロン株式会社 | 画像処理方法、画像処理装置、並びに、当該方法を実行するプログラム、及び、当該プログラムを記録する記録媒体 |
JP6090292B2 (ja) * | 2014-12-02 | 2017-03-08 | トヨタ自動車株式会社 | マーカ生成装置、マーカ認識装置、及びプログラム |
CN105335740B (zh) * | 2015-10-19 | 2019-01-11 | 松翰科技股份有限公司 | 图像指标的读取方法、指标结构以及其电子装置 |
US10235547B2 (en) * | 2016-01-26 | 2019-03-19 | Hand Held Products, Inc. | Enhanced matrix symbol error correction method |
CN105760803B (zh) * | 2016-02-02 | 2018-08-28 | 湖南盛世龙腾网络科技有限公司 | 二维矩阵码的解码方法以及记载有编码图片的卡牌 |
CN105760916B (zh) * | 2016-02-02 | 2018-08-28 | 湖南盛世龙腾网络科技有限公司 | 二维矩阵码的编码方法以及记载有编码图片的卡牌 |
WO2018023011A1 (en) | 2016-07-29 | 2018-02-01 | Hubbell Incorporated | Spring assist cable clamps |
US10795108B2 (en) | 2016-07-29 | 2020-10-06 | Hubbell Incorporated | Spring assist cable clamps |
US10762405B2 (en) | 2017-10-26 | 2020-09-01 | Datalogic Ip Tech S.R.L. | System and method for extracting bitstream data in two-dimensional optical codes |
CN111723787A (zh) * | 2019-03-20 | 2020-09-29 | 宝山钢铁股份有限公司 | 一种基于3d符号的钢管按支跟踪方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4924078A (en) * | 1987-11-25 | 1990-05-08 | Sant Anselmo Carl | Identification symbol, system and method |
JP2004005081A (ja) * | 2002-05-31 | 2004-01-08 | Veritec Iconix Ventures Inc | □型識別コード紙 |
WO2007146303A2 (en) * | 2006-06-14 | 2007-12-21 | Veritec, Inc. | Multi-dimensional symbologies and related methods |
CN101093547A (zh) * | 2007-05-18 | 2007-12-26 | 上海邮政科学研究院 | 基于高度参数的条码和数字协同识别物品的方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US2612994A (en) * | 1949-10-20 | 1952-10-07 | Norman J Woodland | Classifying apparatus and method |
US4972475A (en) * | 1987-02-10 | 1990-11-20 | Veritec Inc. | Authenticating pseudo-random code and apparatus |
US4896029A (en) * | 1988-04-08 | 1990-01-23 | United Parcel Service Of America, Inc. | Polygonal information encoding article, process and system |
US5369261A (en) * | 1992-02-12 | 1994-11-29 | Shamir; Harry | Multi-color information encoding system |
JPH05290197A (ja) * | 1992-04-06 | 1993-11-05 | Teiriyou Sangyo Kk | 二次元コ−ドシンボルマ−クの解読方法 |
US5331176A (en) * | 1992-04-10 | 1994-07-19 | Veritec Inc. | Hand held two dimensional symbol reader with a symbol illumination window |
JP2835274B2 (ja) * | 1994-02-24 | 1998-12-14 | 株式会社テック | 画像認識装置 |
US5773811A (en) * | 1994-10-11 | 1998-06-30 | Schramm, Jr.; Harry F. | Method for marking, capturing and decoding machine-readable matrix symbols using ultrasound imaging techniques |
US5995665A (en) * | 1995-05-31 | 1999-11-30 | Canon Kabushiki Kaisha | Image processing apparatus and method |
US5862270A (en) * | 1995-12-08 | 1999-01-19 | Matsushita Electric Industrial Co., Ltd. | Clock free two-dimensional barcode and method for printing and reading the same |
DE69830597D1 (de) * | 1997-04-08 | 2005-07-21 | Zih Corp | Verformungsfeste, doppeldaten korrigierende, farbübergangsstreifenkode und ihres erzeugungs- und benutzungsverfahren |
US6126074A (en) * | 1998-01-28 | 2000-10-03 | Symbol Technologies, Inc. | Error correction in macro bar code symbols |
US6674919B1 (en) * | 1999-09-21 | 2004-01-06 | Matsushita Electric Industrial Co., Ltd. | Method for determining the skew angle of a two-dimensional barcode |
EP1143372B1 (en) * | 2000-04-06 | 2006-03-22 | Seiko Epson Corporation | Method of and apparatus for reading a two-dimensional bar code symbol and data storage medium |
US6601772B1 (en) * | 2000-07-14 | 2003-08-05 | Intellidot Corporation | Compact matrix code and one-touch device and method for code reading |
KR100414524B1 (ko) * | 2002-10-31 | 2004-01-16 | 주식회사 아이콘랩 | 복호 특성이 우수하며 단계별 에러레벨조정이 가능한2차원 코드 및 그 코드의 인코딩 디코딩 방법 |
JP2005316755A (ja) * | 2004-04-28 | 2005-11-10 | Nec Electronics Corp | 2次元矩形コードシンボル読み取り装置及び2次元矩形コードシンボル読み取り方法 |
WO2005109327A2 (en) * | 2004-05-03 | 2005-11-17 | Veritec, Inc. | Methods for encoding and decoding information |
US7571864B2 (en) * | 2005-12-16 | 2009-08-11 | Pisafe, Inc. | Method and system for creating and using barcodes |
US7637436B1 (en) * | 2006-12-04 | 2009-12-29 | Brant Anderson | Method, system and program product for printing barcodes within computer applications |
JP5120156B2 (ja) * | 2008-03-27 | 2013-01-16 | 株式会社デンソーウェーブ | 二次元コード |
-
2009
- 2009-01-29 WO PCT/US2009/000594 patent/WO2009097137A1/en active Application Filing
- 2009-01-29 CN CN200980110258.4A patent/CN101978380B/zh not_active Expired - Fee Related
- 2009-01-29 CA CA2717682A patent/CA2717682A1/en not_active Abandoned
- 2009-01-29 EP EP09706799.5A patent/EP2248068B1/en not_active Not-in-force
- 2009-01-29 KR KR1020107019230A patent/KR20110002833A/ko not_active Application Discontinuation
- 2009-01-29 MX MX2010008335A patent/MX2010008335A/es not_active Application Discontinuation
- 2009-01-29 US US12/322,332 patent/US8152070B2/en active Active
-
2010
- 2010-08-27 ZA ZA2010/06122A patent/ZA201006122B/en unknown
-
2011
- 2011-06-09 HK HK11105820.2A patent/HK1150461A1/zh not_active IP Right Cessation
-
2012
- 2012-04-09 US US13/442,405 patent/US8746566B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4924078A (en) * | 1987-11-25 | 1990-05-08 | Sant Anselmo Carl | Identification symbol, system and method |
JP2004005081A (ja) * | 2002-05-31 | 2004-01-08 | Veritec Iconix Ventures Inc | □型識別コード紙 |
WO2007146303A2 (en) * | 2006-06-14 | 2007-12-21 | Veritec, Inc. | Multi-dimensional symbologies and related methods |
CN101093547A (zh) * | 2007-05-18 | 2007-12-26 | 上海邮政科学研究院 | 基于高度参数的条码和数字协同识别物品的方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2248068A1 (en) | 2010-11-10 |
EP2248068B1 (en) | 2014-04-30 |
US20120193427A1 (en) | 2012-08-02 |
EP2248068A4 (en) | 2011-05-18 |
US8746566B2 (en) | 2014-06-10 |
US20090230193A1 (en) | 2009-09-17 |
WO2009097137A1 (en) | 2009-08-06 |
ZA201006122B (en) | 2011-05-25 |
HK1150461A1 (zh) | 2011-12-30 |
CN101978380A (zh) | 2011-02-16 |
MX2010008335A (es) | 2011-02-22 |
US8152070B2 (en) | 2012-04-10 |
KR20110002833A (ko) | 2011-01-10 |
CA2717682A1 (en) | 2009-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101978380B (zh) | 二维符号及其读取方法 | |
US5454054A (en) | Method and apparatus for recording/reproducing mesh pattern data | |
US6994264B2 (en) | Information indicating machine readable coded data | |
KR101159330B1 (ko) | 고밀도 기하학 기호 세트를 인코딩하기 위한 시스템 및방법 | |
EP0999519B1 (en) | Distortion correction method in optical code reading | |
US20150339508A1 (en) | Two-dimensional code | |
US20080035730A1 (en) | Multi-dimensional symbologies and related methods | |
US20020186884A1 (en) | Fiducial mark patterns for graphical bar codes | |
US7380727B2 (en) | Method of generating interface surface | |
GB2446424A (en) | Two dimensional bar code with locating symbols | |
ES2374181T3 (es) | Símbolo óptico, artículo al que se fija el símbolo óptico, método para fijar un símbolo óptico a un artículo, y método para el reconocimiento de un código por reconocimiento óptico. | |
WO2012035552A2 (en) | Generating a code system using haar wavelets | |
US20090032596A1 (en) | Method for decoding data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1150461 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1150461 Country of ref document: HK |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20151125 |
|
CF01 | Termination of patent right due to non-payment of annual fee |