条形码扫描器解码的制作方法

文档序号:6553214阅读:236来源:国知局
专利名称:条形码扫描器解码的制作方法
技术领域
本发明涉及一般涉及条形码扫描器领域,更具体地说,涉及适于以直接部件打标(direct part marking)方式使用的条形码扫描器。
背景技术
二维条形码的使用变得越来越普及,所述二维条形码通常由矩形代码组成,其中,所述矩形代码具有以阵列形式布局的数据。二维条形码具有优势是因为它们能够持有二进制数据以及字母数字数据,并通常包括纠错功能。此外,二维条形码明显比传统一维条形码更加有效,这是因为它能够在较小的空间中存储更多信息。
DataMatrix是工业标准的二维条形码规范,其包括检错和纠错两方面。每个DataMatrix符号包括数据区,其通常包含以矩形阵列排列的方形模块。暗模块是二进制1,浅色模块是二进制0。对于X或Y维度,不存在规定的最小值或最大值。所述数据区由寻像图形包围,所述寻像图形是一个模块宽的数据区的周界,其在符号所有4个边上被空白区(quite zone)包围。两条邻边是暗实线,其主要用于限定物理尺寸、定位和符号失真。两条对边由交替的暗模块和浅色模块组成。这些主要用于限定单元结构,但是也有助于确定物理尺寸和失真。一种普遍的DataMatrix符号体系的形式称为ECC 200,其使用里德-所罗门(Reed-Solomon)纠错。
DataMatrix符号的较小尺寸使得它们完全适合在直接部件打标中使用。与将符号印在贴于部件上的标签上相比,在直接部件打标中,直接将DataMatrix符号印在标记的部件上。由于以下情况导致直接部件打标存在争议DataMatrix符号可能不会必然印在完全平坦的表面上或具有均匀反射属性的表面上。此外,诸如在通过对金属部件进行点喷丸硬化而标记所述部件的情况下,可将数据模块印记为圆点,而不是方形模块。

发明内容
通过形成输入灰度级图像的二进制形式来从所述图像解码符号,其中,所述二进制形式的图像用于产生在数字化中使用的符号边缘。可通过收集关于位于符号边界的像素的信息并基于收集的信息进行二进制处理,在本地根据需要形成二进制形式的灰度级图像。通过使用二进制形式的灰度级图像来确定符号边缘,可将边缘有效地定位于存在符号对比变化处,所述符号对比变化由标记表面的不规则或在表面上的照明变化而引起。
使用二进制图像来确定符号(诸如条形码符号)的轮廓。随后,基于所述轮廓对所述图像进行数字化,所述轮廓由具有已知状态的像素组成。
在所述实施例中,符号边界的轮廓线被遍历(traverse)。形成阈值表面,其为位于符号边界的局部像素的特征的函数。使用阈值表面来对灰度级图像进行数字化,以获得用于确定条形码符号的轮廓的二进制图像。遍历二进制图像中的邻近前景像素组以定位条形码符号的边缘线,可选地,所述遍历处理可包括跳过给定数量的像素。或者,可以将二进制图像中的邻近前景像素组合并,并且遍历合并的邻近像素的轮廓,以找出条形码符号的边缘线。通过移动每条边缘线直到它与条形码交叉,并且围绕交叉点旋转边缘线直到其平行于条形码边界,将边缘线对准。将至少一条粗线绘制为与条形码边界垂直并遍历所述边界以确定第一有效边沿。
通过以下处理来确定条形码符号的周期分析组成轮廓的四条边缘线中的每一条处的条形码的条带,并确定所述四条边缘线中的每一条的模块的周期。将栅格构造为具有与模块的周期相应的栅格间隔,所述模块的周期通过分析所述四条边缘线而确定。在条形码符号中,栅格具备有平铺块(tile),每个所述平铺块包括一组邻近模块,通过基于与具有未知状态的平铺块中的模块的比较进行分析,向具有未知状态的所述平铺块中的每个模块分配状态。用于确定平铺块中的模块的状态的处理可开始于沿着边缘的起始平铺块,所述边缘包含分析四条边缘线期间确定的已知模块。


图1是具有根据本发明一实施例构造的解码系统的基于成像的直接部件打标扫描器的示意性框图;图2是图1的解码系统的示意性框图;图3是描述根据本发明实施例的由图2的前端处理器用来处理符号的示例性方法的流程图;图4A到图4F是在实施图3的方法期间所作用于的图像;图5是描述由图2的DPM数字转换器使用的示例性方法的流程图;以及图6是描述根据本发明实施例的由图2的前端处理器用来处理符号的示例性方法的流程图。
具体实施例方式
在以下对优选实施例的详细描述中,将参照构成所述描述的一部分的附图,作为示例,在附图中示出可实施本发明的特定实施例。应理解到在不脱离本发明的范围的情况下,可采用其它实施例并进行结构上的改变。
在图1中,用标号10示意性示出基于成像的直接部件打标扫描器。扫描器10除了能够对一维条形码符号和二维条形码符号两者进行成像和解码之外,还能够拍摄图像和签名。在本发明的一优选实施例中,扫描器10是手持便携式读取器,用户可在走过或驶过商场、仓库或工厂时携带并使用所述扫描器10,以便控制贮藏和库存。
然而,应该认识到以下说明的本发明的直接部件打标解码系统可方便地结合任何类型的基于成像的自动扫描器来使用。此外,为了进行描述,将DataMatrix图像作为扫描器的目标,然而,可通过本发明的解码系统有益地对任何直接部件打标规范进行解码。
扫描器10包括触发器12,其耦合到直接部件打标微处理器80,该直接部件打标微处理器80包括扫描器电路,当触发器12被拉起或按下时,所述扫描器电路用于开始读取直接标记在产品(未示出)上的目标DataMatrix符号14。扫描器10包括相机20,其包括镜头和CCD成像器;照明源41,将光指向目标。所述镜头将从目标DataMatrix符号14反射的光聚焦到CCD成像器的光传感器或像素的阵列。按照预定的间隔,读出像素阵列的各个像素,产生代表图像的模拟信号,所述图像为由镜头聚焦到像素阵列上的任何图像,例如,DataMatrix符号14的图像。随后,通过模数转换器70将来自相机的模拟图像信号数字化为灰度级形式,并将灰度级图像存储在存储器150中。由微处理器80使用所存储的适于解码直接部件打标DataMatrix符号14的程序步骤来解码存储的灰度级图像。随后,经由数据输出端口100输出代表在DataMatrix符号14中编码的数据/信息的解码数据,并且/或者经由显示器110向扫描器10的用户显示所述解码数据。当实现较好的对DataMatrix符号14的“读取”时,由微处理器激活扬声器1120,以向用户指示已经成功读取条形码。同时,可激活一个或多个指示灯(图1中未示出),以提供另外的关于成功读取的指示。
DataMatrix符号扫描器10还包括瞄准系统40,用于产生可视瞄准图案42,所述可视瞄准图案42有助于用户适当地将读取器瞄准目标DataMatrix符号14。在优选实施例中,瞄准系统40包括激光二极管和透镜。或者,瞄准设备40可采用LED或本领域技术人员已知的照明源。如图1所示,图案42可以是包括多个直接括号42a的图案,所述直接括号42a包围中央“十字线”42b,该“十字线”42b以单个点46为准。可通过衍射光学元件(未示出)来产生瞄准图案,邻近透镜或在透镜内装配所述衍射光学元件。
图2是存储在对DataMatrix符号的灰度级图像74进行解码的微处理器80中的各个功能程序模块的框图。所述模块包括前端处理器130和直接部件打标(“DPM”)数字转换器180,它们包含存储的用于分析从直接打标部件扫描的DataMatrix图像的编程步骤。前端处理器130产生扫描的DataMatrix符号的轮廓,其被输入DPM数字转换器180。DPM数字转换器使用所述轮廓和原始灰度级DataMatrix图像在暗模块与浅色模块之间进行区分,以便解码器190进行解码。
用于找出符号轮廓的前端处理器图3和图4示出一种可由前端处理器用来产生扫描的DataMatrix符号的轮廓的方法。前端处理器产生与DataMatrix符号的轮廓相应的四边形。将所述轮廓定义为就在由符号占用的区域外围的像素。因此,没有包括点的近似圆形的“阴影”外围作为符号的一部分。
现参照图3,以流程图形式描述用于前端处理器300的操作的方法。将灰度级DataMatrix符号图像(见图4A)输入前端处理器。在320,搜索图像的条带,以定位为了进行描述而称为“pref”的点,该点在DataMatrix符号内。通过分析图像的条带,而不是分析整个图像来节省处理时间。假设操作者将直接在符号上进行瞄准,所分析的条带位于瞄准十字线所在的位置。在320执行的估计返回单个像素位置以及对符号邻近区域中的噪声级的初始估计,其中,所述单个像素位置最可能位于符号中。如果没有找出可能的像素,则方法在330和460结束。
由于许多DPM DataMatrix符号的三维特性以及标记表面的可能弯曲,DataMatrix符号的“点”或者填充/印记的模块在符号的一个区域中显示为“浅色”,而在另一区域中显示为“暗”色。为了减少原始数字化图像的复杂性,前端处理器在340建立原始图像的对比形式,其仅用于找出DataMatrix符号的轮廓。从所定位的点“pref”,建立如图4B所示的对比图像。用于构造对比图像的开始点是通过条带分析的点“pref”。通过以下处理来形成对比图像一次仅分析图像的一个块,并仅转换具有显著对比的邻近块,从而仅转换每个符号的“邻近”区域,这样就节省了执行时间。通过开始于点“pref”的深度优先搜索算法来控制访问像素的顺序。所述转换选取输入图像的四个邻近像素的方形,并输出单个像素,该单个像素的值是所述四个输入像素中最亮像素与最暗像素之间的差,这给出了局部对比的指示。
一旦建立了对比图像,则在350分析对比图像以定位包围DataMatrix符号的“空白区”轮廓。通过执行挑选类型的找寻程序来定位所述空白区。从所述点“pref”开始,将若干粗线绘制为辐射地朝向边缘。在这种情况下,粗线是当将例如SUM或MAX的统计算符应用于沿着邻近线的像素的投影时产生的线剖面。产生的线剖面使用MAX函数来“覆盖”自然出现在符号内部的孔。将所述线平均间隔开大于22.5度。所述算法从种子点“pref”沿着所述线行进,直到找到空白区。对于每条线,记录空白区中的点和符号上最后的点。因此,可向后续处理提供两组代表背景或“未填充”模块的点(如图4F所示布置于符号外部)以及背景或“未填充”模块。将所述背景点的组称为星点或边缘点。
在360,从对比图像形成二进制图像(图4C)。二进制是用于抑制噪声的有效方法,并且用于处理二进制图像的算法非常重要。尽管二进制图像与直接处理灰度级图像相比,会造成边沿位置精度的下降,但是当二进制图像仅用于定位围绕DataMatrix符号的空白区内的边缘线时,这种精度的损失是可以接受的。因此,所描述的实施例在处理二进制图像,同时避免依赖二进制图像来确定精确的边沿位置之间起到杠杆作用。通过对由在350输出的两组点中的每一个形成的平面进行平均来计算用于从二进制图像的“未填充”模块辨别“填充”模块的阈值表面或平面。二进制图像将黑色(前景)分配给位于阈值平面之上的对比图像的任何像素,并将白色(背景)分配给阈值平面之下的像素。将二进制处理方便地仅应用于对比图像的矩形子区域,所述对比图像恰好包含所有边缘点,即,边缘点的边界框。所产生的修剪的二进制图像仅稍大于DataMatrix符号,并确保符号(而不是周边区域)是进一步分析步骤的焦点。
在370,通过连接连续的空白区或边缘点以产生边缘线来产生起始的边缘组,其中,可将所述边缘线看作图4B中符号的顶端和侧边上的外围非连续轮廓。尝试绘制边缘点之间的“背景”线,如果必要的话,则跳过点。“背景”线是这样的线,其剖面的95%位于阈值平面之下。该结果通常是局部轮廓,诸如围绕图4B中符号的顶端和侧边的参差不齐的线,但是还可以是一组不相连的线或者根本不是线。将邻近边缘线合并以产生围绕符号所需的最少数量的边缘线,其中,所述符号如围绕图4D中符号的顶端和侧边的亮白线所示。理想情况是找出四条边缘线,给出符号定位的粗略指示。可基于现有线的几何形状来创建新的边缘点,以提高轮廓的质量。
在380,检查边缘线,如果没有找到确切四条线,则在390尝试重新产生边缘。基于以下假设来尝试两种用于重新产生边缘的方法二进制图像的邻近填充/前景像素形成若干包含DataMatrix符号的特征“L”的“斑点”。首先,如果通过370不存在一条或更少的边缘线,则如在非常多噪声的图像中会出现的,识别最靠近点“pref”的斑点。轮廓线行进器(walker)遍历斑点以恢复轮廓,跳过两个指定数量像素之一的孔。搜索可被看作图4E中的灰色线的轮廓线以定位DataMatrix符号的特征“L”,可将其传递到完成方形/矩形轮廓的另一程序。第二种重新产生程序需要至少两条最佳的边缘线,诸如以上找出的“L”。最长的最佳边缘线用于估计符号定向。在尝试找出四个新的边缘点时,通过种子点绘制两条接近垂直的粗线,其中一条对准到符号。这些点出现在前景/背景边界的前景侧。新的边缘点用于四次开始轮廓线行进器。选择产生最大“L”的轮廓线,并且从所述轮廓线提取四条最佳边缘线。将所述四条最佳边缘线输入400或420,在400或420中执行粗略的符号对准。
轮廓线行进器找出在二进制DataMatrix图像中由邻近前景像素形成的斑点的边界。因为DataMatrix符号通常被分段为多个斑点,所以允许轮廓线进行跳跃以桥接不相连的斑点。可从2到4个像素选择最大跳跃步长。此外,可使用不同的跳跃大小来对相同的图像连续调用轮廓线行进器。轮廓线行进器开始于斑点上的种子点,其中,所述斑点的轮廓线将被追踪。种子点不需要位于斑点的边沿。所述程序总是按照顺时针方向在轮廓线外部行进。“循环破坏”特点确保轮廓线由于它被设计的用于跳跃缝隙的特点而不会终结于逆时针的死循环。轮廓线行进器输出如图4E所示的标记位图以及轮廓线中最上端、最低端、最左端和最右端的坐标。对跳过孔的轮廓线行进器的替代是通过使用区域增长或膨胀技术来桥接或填充斑点之间的孔。规则轮廓线行进器随后可限定合并斑点的轮廓。这种方式产生类似于“跳跃”轮廓线行进器的结果,但是会比较慢。
在400或420输入如图4D所示的亮白线的四条最佳边缘线和二进制图像以找出符号轮廓的粗略对准。如图3所示,可对在370产生或在390重新产生的四条边缘线执行粗略的边沿对准。将每条边缘线从它的开始位置向种子点移动,直到所述边缘线切断符号。将边缘线切断符号的点定义为枢轴点,所述线围绕该枢轴点旋转,直到它平行于符号边界。因为在二进制图像上完成所述对准,所以它是粗略的堆栈,并且显示为如图4F所述的亮灰轮廓。在410或430,作为示例,诸如通过检查对边之间的角度来验证该角度比较小或通过确定代码轮廓的宽高比不是高度倾斜来检查粗略对准的边界线,以便确定所述边界线是否有意义。如果粗略对准的边界线处于可接受的限制内,则对原始灰度级图像执行精细符号对准。
为了对灰度级图像执行精细符号对准440,将两条粗线绘制为垂直于符号的每个边的边沿。从符号外部向内部绘制所述线,穿过符号边界。SUM函数用于产生每条粗线的剖面。所述剖面是从符号外部到内部的检查器,用于找出第一有效边沿。这产生了符号边界上的两个点,每一端有一个点,其精确地限定如图4F中的亮白线中所示的并在450中报告的符号边界。
图6示出前端处理方法300’,其作用于灰度级图像以确定进行数字化的目标符号的轮廓。根据方法300’,遍历符号的轮廓线或边界,以聚集用于在360对灰度级图像进行二进制化的边界像素信息。在320,分析灰度级图像以找到参考点或种子点“PREF”。可将点PREF选择为最可能位于符号内的点。许多技术可用于找出PREF。例如,可将PREF选择为这样一个点,在所述点上,用户指导成像扫描器或扫描图像并注意到局部统计显著并相互关联的点。如果在330无法找出可接受的PREF,则方法结束。
在350’,使用诸如以上参照步骤380描述的轮廓线行进器的轮廓线行进器来遍历符号的轮廓。通过作用于灰度级图像,轮廓线行进器开始于PREF,并跟随像素的路径,所述路径从PREF向外辐射,直到遇到符号的背景。基于灰度级图像的邻近填充/前景像素形成代表符号轮廓的若干斑点的假设,轮廓线行进器遍历灰度级图像的轮廓。由此构造符号的轮廓线,并且同时收集作为图像中像素位置的函数的关于符号边界上的像素的信息。所述像素信息用于在360’计算二进制图像,其中,作为示例,所述像素信息可以是像素相对于周围像素的对比级或关于所述像素的统计信息。从这一点开始,方法300’如上所述经历450,其中,报告符号拐角以进行数字化。
DPM数字转换器DPM数字转换器180(图2)适于处理点状的DataMatrix符号,其中,符号的每个标记模块形成为截然不同的点。然而,数字转换器仍可处理用基本方形并相连的符号模块以普通形式印记的DataMatrix。图5是一种方法500的流程图,所述方法500可被DPM数字转换器和DPM解码器(图2)用来通过使用在510输入的由前端处理器130提供的图像轮廓来解码灰度级图像74。
用于解码符号的第一步是确定符号中模块的周期。由于印记表面的不规则或突出的扫描角度,所述周期可作为符号中位置的函数而变化。在520,使用由前端处理器得出的轮廓沿着符号的每条边来确定符号模块的周期。通过两种途径来执行周期分析,所述两种途径即为粗略分析途径和精细分析途径,它们两者均对于灰度级图像执行。在粗略分析种,分析固定宽度的条带,以找出周期的指示。可使用自动校正方法或快速傅立叶变换,或者任何其它已知的用于周期提取的方法来执行所述分析。由此从四条边得出的周期统一以到达两个数字,所述数字代表覆盖沿着轮廓的每条边的模块的第一行的像素的锚迹宽度,每一数字代表每一对对边。周期分析可能不会在所有边成功。例如,如果某边由实线组成,则无法找出它的周期。
在精细周期分析中,在第一种途径中得出的锚迹用于对验证轮廓的每条边的锚进行扫描。经由两个阈值将样点分离为三种类别(黑、白和背景)。从相同着色的斑点中选取沿着单条线的所有锚。还向每个锚给出索引,以说明跳过的(损坏的或未检测到的)锚点。并不是所有的边均能够产生锚。对于没有用各个点形成的DataMatrix的已知实边,绕过这一步骤。
尽管只有一种颜色用于沿着每条边的锚,但是这并不排除对图像对比反转的适当处理。这是因为不同边不允许不同着色的锚。当形成栅格时,具有不同着色锚的两条邻边产生锚相位的逐渐移位。
在530,使用在520确定的周期来产生栅格。除了产生栅格之外,在530,进行试探式的尝试以明确来自四条边的可能不一致的周期分析结果。通过试探所确定的似然性相对于用于DataMatrix的合法代码大小而被匹配。试探的结果包括哪些边是点状的,哪些边是实的指示,并且还暗示在产生符号的定位中哪个角是DataMatrix符号的开始角,或者左上端的角,以及在行数和列数方面的栅格大小。
一旦确定了开始角和栅格大小,就使用模块的最外行的中心线的四个交叉点来产生栅格。所述中心线中的每一条可以是一行锚的中心线,或者来源于实边沿对准程序。当并非所有四个交叉点均可被分辨时,使用已知锚来产生栅格。作为示例,这可发生于就在所述四条边的两条上找出锚时。
在540,使用与DataMatrix符号的每个模块相应的代表存在或缺少印记的两个值中的一个来数字化栅格。一次对一个平铺块执行数字化,每个平铺块包括5×5的一组模块。数字化从拐角的平铺块开始,并向沿着边沿的平铺块移动。当平铺块的完整环被数字化之后,向内的下一层被数字化,来自后续环的平铺块轻微地重叠每一平铺块以进行自举。重复这一处理,直到不再有将被数字化的模块,或者某一平铺块由于冲突的输入条件而无法被数字化。所述处理确保仅有局部模块限定被用于确定给定平铺块的输入条件,这是因为局部模块限定可移动到容纳符号内的图像对比反转。
基于平铺块中已知模块的状态来确定所述平铺块中任何未知模块的状态。最初,已知模块是基于对当刚开始数字化时所选取的DataMatrix大小的预测而已知为点或非点的那些模块。然后,当处理作用于内部平铺块时,已知模块来自先前数字化的平铺块。接着基于输入模块来产生匹配的滤波器。对于每个输入模块,相同数量的像素被取样。来自不同模块内的相同相对位置的像素被分析,以搜索在从非点分离的点中代表统计显著性的那些像素。随后将匹配的滤波器应用于所有未知模块,Qtsu阈值算法用于从非点分离点。
因为DataMatrix符号可能不会纯粹地被分离为若干平铺块,所以某些模块可被数字化多于一次,每次都在不同平铺块的情况下。将具有来自不同平铺块的不同数字化结果的任何模块标记为用于解码DataMatrix的涂擦。在550,解码器被调用三次,一次通过被映射到适当涂擦的涂擦调用,一次被映射到点,一次被映射到非点。如果这些尝试结果中没有产生成功的解码并且符号仍旧没有被重新对准(575),则在580对准所述符号,并且再次开始数字化。
为了重新对准使用由前端处理器产生的轮廓无法解码的符号,访问原始灰度级图像以尝试确定适当的轮廓。重新对准采用在粗略途径周期分析中确定的模块的宽度。在点状边的情况下,每条边被分裂为四个相同长度的段,通过计算几个平行位置的标准偏差来找寻每个段的中心。当将四个产生的点放到一起以形成最小平方线时,当找到所述异常值时检查并排除所述异常值。在实边的情况下,检查所述实边的中点,同时确认当宽度过宽时,不考虑中点(这表示边沿模块可被连接到下一边沿模块)。随后在520,将新的轮廓边用于周期产生的精细分析途径中。
通过以上描述可知,上述二维符号数字化系统通过使用灰度级图像的二进制形式来确定符号边界并使用边界信息来构造数字化的图像以进行解码,有效地处理印在不规则表面上的二维符号。尽管已经相当具体地描述了本发明,但是所期望的是本发明包括落入所附权利要求的精神和范围内的根据所公开的设计的所有修改和变化。
权利要求
1.一种解码符号的方法,包括将灰度级图像转换为二进制图像;使用二进制图像确定符号的轮廓;以及基于所述轮廓对符号进行数字化。
2.如权利要求1所述的方法,其中,二进制图像的每个像素指示像素的相应群组属于灰度级图像中的符号的似然性。
3.如权利要求1所述的方法,其中,在后续处理之前,二进制图像中的像素不存储在电存储器中。
4.如权利要求3所述的方法,其中,当后续处理需要二进制图像中的像素值时,确定所述像素值。
5.如权利要求1所述的方法,其中,通过以下处理将灰度级图像转换为二进制图像遍历条形码的灰度级图像的边界;收集一组与位于条形码的边界或其附近的像素的特征相应的数据;以及基于所述一组与位于条形码的边界或其附近的像素的特征相应的数据来对灰度级图像进行二进制化。
6.如权利要求5所述的方法,其中,通过以下处理来遍历灰度级图像的边界选择形成一部分所述符号的种子像素或像素群组;从种子像素开始,遍历像素的辐射路径,直到遇到符号的边界;遍历具有类似二进制表示的邻近像素的群组,以定位形成符号轮廓的边界像素。
7.如权利要求6所述的方法,其中,当遍历邻近像素群组以定位二进制像素时,对所述邻近像素群组进行二进制化。
8.如权利要求6所述的方法,其中,通过形成适合于与边界像素的特征相应的数据组的二进制平面来对灰度级图像进行二进制化。
9.如权利要求6所述的方法,包括合并二进制图像中的邻近前景像素的近似群组并遍历邻近前景像素的合并群组的轮廓来找出符号的边缘线。
10.如权利要求9所述的方法,其中,通过跳过邻近前景像素之间的给定数量的背景像素的间隔来遍历邻近前景像素群组的轮廓。
11.如权利要求9所述的方法,包括通过移动每条边缘线直到其与符号交叉并围绕交叉点旋转边缘线直到其平行于符号边界,而对准所述边缘线。
12.如权利要求11所述的方法,包括绘制通过以下处理产生的至少一条粗线,所述处理包括执行平行线到垂直于符号边界的单线剖面的统计组合并确定第一有效边沿。
13.如权利要求12所述的方法,其中,通过分析在组成轮廓的每条边缘线的符号的条带以产生符号的周期,并确定四条边缘线中的每一条的模块的周期,从而对所述符号进行数字化。
14.如权利要求13所述的方法,包括构造具有与四条边缘线的模块的周期相应的栅格间隔的栅格。
15.如权利要求14所述的方法,包括用各自包括符号中的一组邻近模块的平铺块来装填所述栅格;其中,在每个平铺块内,已知模块的状态用于确定未知模块的状态。
16.如权利要求15所述的方法,其中,首先用栅格拐角处的平铺块来装填栅格,其后是用栅格边沿处的平铺块来装填,所述装填处理通常从栅格边沿按照覆盖环的顺序来进行。
17.如权利要求1所述的方法,包括解码数字化的符号。
18.如权利要求1所述的方法,其中,利用成像条形码扫描器获得灰度级图像。
19.如权利要求1所述的方法,其中,将二进制图像的每个像素存储为一个字节。
20.如权利要求1所述的方法,其中,将二进制图像的每个像素存储为多于一个字节。
21.如权利要求1所述的方法,其中,将二进制图像的每个像素存储为少于一个字节。
22.一种其上存储有用于解码符号的计算机可执行指令的计算机可读介质,所述指令包括将灰度级图像转换为二进制图像;使用二进制图像确定符号的轮廓;以及基于所述轮廓对符号进行数字化。
23.如权利要求22所述的计算机可读介质,其中,二进制图像的每个像素指示像素的相应群组属于灰度级图像中的符号的似然性。
24.如权利要求22所述的计算机可读介质,其中,在后续处理之前,二进制图像中的像素不存储在电存储器中。
25.如权利要求24所述的计算机可读介质,其中,当后续处理需要二进制图像中的像素值时,确定所述像素值。
26.如权利要求22所述的计算机可读介质,其中,用于将灰度级图像转换为二进制图像的指令包括遍历条形码的灰度级图像的边界;收集一组与位于条形码的边界或其附近的像素的特征相应的数据;以及基于所述一组与位于条形码的边界或其附近的像素的特征相应的数据来对灰度级图像进行二进制化。
27.如权利要求26所述的计算机可读介质,其中,用于遍历灰度级图像的边界的指令包括选择形成一部分所述符号的种子像素或像素群组;从种子像素开始,遍历像素的辐射路径,直到遇到符号的边界;遍历具有类似二进制表示的邻近像素的群组,以定位形成符号轮廓的边界像素。
28.如权利要求27所述的计算机可读介质,其中,当遍历邻近像素群组以定位二进制像素时,对所述邻近像素群组进行二进制化。
29.如权利要求27所述的计算机可读介质,其中,用于对灰度级图像进行二进制化的指令包括形成适合于与边界像素的特征相应的数据组的二进制平面。
30.如权利要求27所述的计算机可读介质,其中,所述指令包括合并二进制图像中的邻近前景像素的近似群组并遍历邻近前景像素的合并群组的轮廓来找出符号的边缘线。
31.如权利要求30所述的计算机可读介质,其中,用于遍历邻近前景像素群组的轮廓的指令包括跳过邻近前景像素之间的给定数量的背景像素的间隔。
32.如权利要求31所述的计算机可读介质,其中,所述指令包括通过移动每条边缘线直到其与符号交叉并围绕交叉点旋转边缘线直到其平行于符号边界,而对准所述边缘线。
33.如权利要求32所述的计算机可读介质,其中,所述指令包括绘制通过以下处理产生的至少一条粗线,所述处理包括执行平行线到垂直于符号边界的单线剖面的统计组合并确定第一有效边沿。
34.如权利要求33所述的计算机可读介质,其中,所示指令包括通过分析在组成轮廓的每条边缘线的符号的条带以产生符号的周期,并确定四条边缘线中的每一条的模块的周期,从而对所述符号进行数字化。
35.如权利要求34所述的计算机可读介质,其中,所述指令包括构造具有与四条边缘线的模块的周期相应的栅格间隔的栅格。
36.如权利要求35所述的计算机可读介质,其中,所述指令包括用各自包括符号中的一组邻近模块的平铺块来装填所述栅格;其中,在每个平铺块内,已知模块的状态用于确定未知模块的状态。
37.如权利要求36所述的计算机可读介质,其中,用于装填栅格的指令首先用栅格拐角处的平铺块来装填栅格,其后是用栅格边沿处的平铺块来装填,所述装填处理通常从栅格边沿按照覆盖环的顺序来进行。
38.如权利要求22所述的计算机可读介质,其中,所述指令包括解码数字化的符号。
39.如权利要求22所述的计算机可读介质,其中,利用成像条形码扫描器获得灰度级图像。
40.如权利要求22所述的计算机可读介质,其中,将二进制图像的每个像素存储为一个字节。
41.如权利要求22所述的计算机可读介质,其中,将二进制图像的每个像素存储为多于一个字节。
42.如权利要求22所述的计算机可读介质,其中,将二进制图像的每个像素存储为少于一个字节。
43.一种解码符号的设备,包括用于将灰度级图像转换为二进制图像的装置;用于使用二进制图像确定符号的轮廓的装置;以及用于基于所述轮廓对符号进行数字化的装置。
44.如权利要求43所述的设备,其中,用于将灰度级图像转换为二进制图像的装置包括用于遍历条形码的灰度级图像的边界的装置;用于收集一组与位于条形码的边界或其附近的像素的特征相应的数据的装置;以及用于基于所述一组与位于条形码的边界或其附近的像素的特征相应的数据来对灰度级图像进行二进制化的装置。
45.如权利要求44所述的设备,其中,用于遍历灰度级图像的边界的装置包括用于选择形成一部分所述符号的种子像素或像素群组的装置;用于从种子像素开始,遍历像素的辐射路径,直到遇到符号的边界的装置;以及用于遍历具有类似二进制表示的邻近像素的群组以定位形成符号轮廓的边界像素的装置。
46.如权利要求45所述的设备,其中,用于遍历邻近像素群组的装置当邻近像素群组被遍历以定位二进制像素时,对所述邻近像素群组进行二进制化。
47.一种解码符号的设备,包括前端处理器,其将灰度级图像转换为二进制图像,并使用二进制图像确定符号的轮廓;以及数字转换器,其基于所述轮廓对符号进行数字化。
48.如权利要求47所述的设备,其中,前端处理器包括轮廓线行进器,其遍历条形码的灰度级图像的边界,并收集一组与位于条形码的边界或其附近的像素的特征相应的数据,其中,所述前端处理器基于所述一组与位于条形码的边界或其附近的像素的特征相应的数据来对灰度级图像进行二进制化。
49.如权利要求48所述的设备,其中,轮廓线行进器通过以下处理来遍历灰度级图像的边界选择形成一部分所述符号的种子像素或像素群组;从种子像素开始,遍历像素的辐射路径,直到遇到符号的边界;遍历具有类似二进制表示的邻近像素的群组,以定位形成符号轮廓的边界像素。
50.如权利要求49所述的设备,其中,当遍历邻近像素群组以定位二进制像素时,轮廓线行进器对所述邻近像素群组进行二进制化。
51.如权利要求47所述的设备,包括解码器,其解码数字化的符号。
52.如权利要求47所述的设备,包括成像条形码扫描器,其获得灰度级图像。
53.一种解码二维条形码符号的方法,包括将灰度级图像转换为对比图像,其中,每个像素指示在所述灰度级图像中的给定像素群组中的像素之间的对比级;使用对比图像确定条形码符号的轮廓;以及基于所述轮廓对灰度级图像进行数字化。
54.如权利要求53所述的方法,其中,通过灰度级图像中的相应像素群组中最亮像素与最暗像素之间的亮度差来确定对比图像的给定像素。
55.如权利要求53所述的方法,其中,没有其它的对比图像的像素取决于与给定像素相应的灰度级图像中的像素群组中的任何像素。
56.如权利要求53所述的方法,包括确定组成条形码的前景像素的对比级,并确定形成条形码背景的像素的对比级。
57.如权利要求53所述的方法,包括形成阈值表面,所述阈值表面是组成条形码前景的前景像素的对比级以及形成条形码背景的像素的对比级的函数。
58.如权利要求57所述的方法,包括使用阈值表面对对比图像进行二进制化,以实现用于确定条形码符号轮廓的二进制图像。
59.如权利要求58所述的方法,包括遍历二进制图像中的邻近前景像素群组,以定位形成条形码符号轮廓的边缘线。
60.如权利要求58所述的方法,包括合并二进制图像中的邻近前景像素的近似群组并遍历邻近前景像素的合并群组的轮廓来找出条形码符号的边缘线。
61.如权利要求59所述的方法,包括通过移动每条边缘线直到其与条形码交叉并围绕交叉点旋转边缘线直到其平行于条形码边界,而对准所述边缘线。
62.如权利要求61所述的方法,包括绘制通过以下处理产生的至少一条粗线,所述处理包括执行平行线到垂直于条形码边界的单线剖面的统计组合并确定第一有效边沿。
63.如权利要求53所述的方法,其中,通过借助于分析在组成轮廓的每条边缘线的条形码的条带以产生条形码符号的周期,并确定四条边缘线中的每一条的模块的周期,从而对所述灰度级图像进行数字化。
64.如权利要求63所述的方法,包括构造具有与四条边缘线的模块的周期相应的栅格间隔的栅格。
65.如权利要求64所述的方法,包括用各自包括条形码符号中的一组邻近模块的平铺块来装填所述栅格;其中,在每个平铺块内,已知模块的状态用于确定未知模块的状态。
66.如权利要求65所述的方法,其中,首先用栅格拐角处的平铺块来装填栅格,其后是用栅格边沿处的平铺块来装填,所述装填处理通常从栅格边沿按照覆盖环的顺序来进行。
67.一种解码二维条形码符号的设备,包括灰度级图像取样器,其通过以下处理来构造条形码符号的灰度级图像的子采样形式构造对比图像,在对比图像中,每个像素指示灰度级图像中的相应像素群组中像素之间的对比级;分析对比图像并确定第一对比级和第二对比级,其中,第一对比级相应于条形码符号前景中的前景像素,第二对比级相应于条形码符号背景中的像素;基于第一对比级和第二对比级的函数形成阈值表面;以及基于阈值表面对对比图像二进制化以构造二进制图像;边缘检测器,其通过跳过少于预定数量像素的邻近前景像素群组之间的间隔来遍历二进制图像中的邻近前景像素群组;以及数字转换器,其通过以下处理而使用边缘线对所述灰度级图像进行数字化以进行解码,即借助于分析在每条检测的边缘线的条形码的条带以产生条形码符号的周期,并确定每条边缘线的模块的周期;构造具有与边缘线的模块的周期相应的栅格间隔的栅格;用包括一组符号模块的平铺块来装填所述栅格,其中,每个模块具有基于具有已知状态的周围平铺块的状态确定的状态。
68.一种其上存储有用于执行用来解码二维条形码符号的方法步骤的计算机可执行指令的计算机可读介质,所述方法步骤包括将灰度级图像转换为对比图像,其中,每个像素指示在所述灰度级图像中的给定像素群组中的像素之间的对比级;使用对比图像确定条形码符号的轮廓;以及基于所述轮廓对灰度级图像进行数字化。
69.如权利要求68所述的计算机可读介质,其中,通过灰度级图像中的相应像素群组中的像素之间的对比级来确定对比图像的给定像素。
70.如权利要求68所述的计算机可读介质,其中,所述方法步骤包括确定组成条形码的前景像素的对比级,并确定形成条形码背景的像素的对比级。
71.如权利要求70所述的计算机可读介质,其中,组成条形码的前景像素的对比级和形成条形码背景的像素的对比级作为位置的函数而变化。
72.如权利要求71所述的计算机可读介质,其中,所述方法步骤包括形成阈值表面,所述阈值表面为组成条形码的前景像素的对比级以及形成条形码背景的像素的对比级的函数。
73.如权利要求72所述的计算机可读介质,其中,所述方法步骤包括使用阈值表面对对比图像进行二进制化,以实现用于确定条形码符号轮廓的二进制图像。
74.如权利要求73所述的计算机可读介质,其中,所述方法步骤包括遍历二进制图像以定位形成条形码符号轮廓的边缘线。
75.如权利要求73所述的计算机可读介质,其中,所述方法步骤包括遍历二进制图像中邻近前景像素群组的轮廓,以通过跳过邻近前景像素群组之间的间隔来找出条形码符号的边缘线,其中,所述间隔少于预定数量的像素。
76.如权利要求74所述的方法,包括通过移动每条边缘线直到其与条形码交叉并围绕交叉点旋转边缘线直到其平行于条形码边界,而对准所述边缘线。
77.如权利要求75所述的计算机可读介质,其中,所述方法步骤包括绘制通过以下处理产生的至少一条粗线,所述处理包括执行平行线到垂直于条形码边界的单线剖面的统计组合并确定第一有效边沿。
78.如权利要求68所述的计算机可读介质,其中,所述方法步骤包括通过分析在组成轮廓的四条边缘线中的每一条的条形码的条带以产生条形码符号的周期,并使用所产生的周期确定四条边缘线中的每一条的模块的宽度。
79.如权利要求68所述的计算机可读介质,其中,所述方法步骤包括构造具有与四条边缘线的模块的周期相应的栅格间隔的栅格。
80.如权利要求79所述的计算机可读介质,其中,所述方法步骤包括用各自包括条形码符号中的一组邻近模块的平铺块来装填所述栅格;其中,在每个平铺块内,已知模块的状态用于确定未知模块的状态。
81.如权利要求80所述的计算机可读介质,其中,首先用栅格拐角处的平铺块来装填栅格,其后是用栅格边沿处的平铺块来装填,所述装填处理通常从栅格边沿按照覆盖环的顺序来进行。
全文摘要
通过形成包括二维符号的二进制图像来解码该二维符号,可通过首先形成符号的对比图像并对对比图像进行二进制化来构造二进制图像。所述二进制图像用于产生符号边缘以在数字化中使用。通过使用二进制图像来确定符号边缘,可将边缘有效地定位于存在符号对比变化处,所述符号对比变化由标记表面的不均匀或光源角度而引起。基于确定的边缘进行数字化处理。
文档编号G06K7/10GK101069189SQ200580041394
公开日2007年11月7日 申请日期2005年12月2日 优先权日2004年12月3日
发明者约瑟夫·尤金, 何端峰 申请人:讯宝科技公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1