专利名称:用于定位二维条形码的方法、设备和存储介质的制作方法
技术领域:
本发明涉及二维条形码(QR码)的定位,尤其涉及用于定位至少一个QR码的方法和设备,以及其中存储了用于实现定位至少一个QR码的方法的程序代码的存储介质。
背景技术:
所谓的QR码是指二维“条形码”。都知道条形码是用交替出现的不同宽度的黑白条来表达信息,黑白的交替是沿着与条的纵向相交的方向进行的。当检测和识别条形码时,沿着所述方向扫描条形码。也就是说,条形码是一维的。
与此不同,QR码是用在方形区域内二维分布的小条来表达信息。如果说条形码只具有一列信息,则QR码具有许多列信息。
如图1所示,一个QR码52包括三个定位标记(location symbol)54、两个同步格列(time cell line)58和一个结束点(ending point)50。定位标记54、同步格列和结束点用于QR码的探测以及信息识别过程的初始化,它们所限定的方形区域是包含要由QR码表达的信息的内容区56。
在目前,同步格列58由交替的、等间距的黑白点构成,定位标记由白方框54b包围的黑方块54c构成,所述白方框54b外面还围有一个黑方框54a。任何穿过中心黑方块54c的相对两边的直线会被所述方块和方框的边缘切割为5段,这5段的比例是1∶1∶3∶1∶1,该比例在后面称为特征比。图2.1图示了三条举例的穿过中心方块54c的相对两边的直线(a)、(b)和(c)(包括对角线(b))。图2.2图示了沿着所述直线扫描定位标记形成的波形,其中反映了所述特征比。
当要读出QR码中的信息时,扫描包含QR码的区域,获得二值图像(或者,包含QR码的二值图像可能已经存在)。然后探测定位标记,然后用定位标记连同同步格列和结束点一起确定QR码的位置。这样,就可以识别内容区并读出其中的内容。
一般,QR码被用作标签或者类似东西,用来提供被标签的物品的某些简单信息。这样的信息量是小的。在这种情况下,在一件物品上通常只有一个QR码,操作者只需要扫描包含该QR码的小片区域就行了。
相应地,传统的用于定位QR码的方法和设备在抓取或者读取图像时只能对尺寸为一二英寸的小区域图像进行操作,操作者必须手动地或者半自动地将扫描仪刚好对准QR码图像所在的部分,以获得QR码的正确位置。另外,传统的方案每次只能定位一个QR码,只能组合三个定位标记。
但是,作为最新的发展,QR码现在用来表达越来越多的信息,一个图像可以包括多个QR码,例如如图3所示。在这种情况下,传统的定位方案不再有效。
另外,如图2.1和图2.2所示,传统的定位方案使用中心和角部扫描线来定位QR码,这样的方法非常不可靠。
传统方案的另一个缺点是只能定位如图1所示正向布置的以黑色为主色的QR码。如果QR码被反转或者以任意方向放置,或者如果图像被反色,则传统的方法就无效了。
发明内容
考虑到上述问题提出了本发明。
具体地,本发明的一个目的是提供一种能够自动对任意大小的图像中的多个QR码进行定位的方法和设备。
为了达到上述目的,本发明提供了一种用于定位图像中的至少一个QR码的设备,包括特征比探测装置,用于通过执行探测QR码的特征比的多个探测操作来探测可能的QR码定位标记区;关键边缘探测装置,用于探测所述可能的QR码定位标记区的关键边缘;定位标记组合装置,用于将探测到的QR码定位标记区组合为可能的QR码;以及确认装置,用于排除假QR码本发明还提供了一种用于定位图像中的至少一个QR码的方法,包括特征比探测步骤,用于通过进行探测QR码的特征比的多个探测操作来探测可能的QR码定位标记区;关键边缘探测步骤,用于探测可能的QR码定位标记区的关键边缘;定位标记组合步骤,用于将探测到的QR码定位标记区组合为可能的QR码;以及确认步骤,用于排除假QR码。
本发明还提供了其中存储用于实现所述用于定位至少一个QR码的方法的程序代码的存储介质。
本发明的其它目的、特征和优点将在阅读下文对优选实施例的详细说明后变得更为清楚。附图作为说明书的一部分用于图解本发明的实施例,并和说明书一起用于解释本发明的原理。在附图中图1是QR码的示意图;图2.1和2.2分别是QR码的定位标记的示意图,以及通过扫描该定位标记所获得的波形,用于说明定位标记的特征比;图3是包含多个不同尺寸和方向的QR码的图像的例子;图4是可以实现本发明的方法和设备的计算机系统的一个例子的框图;图5是表示本发明的QR码定位方法的主流程图;图6是表示特征比探测过程的流程图;图7.1是表示对一个图像行进行水平特征比1∶1∶3∶1∶1探测处理的示意图;图7.2是表示对一个图像行进行垂直特征比1∶1∶3∶1∶1探测处理的示意图;图7.3是探测三个相邻水平行和三个相邻垂直行的一个例子;
图8是表示一个图像行上的比特-字节转换映射操作的示意图;图9是表示定位标记边缘探测过程的流程图;图10.1是一个表示如何计算关键边缘的例子,该关键边缘是定位标记的外黑框的内边界;图10.1是一个表示如何计算关键边缘的例子,该关键边缘是定位标记的外黑框的内边界;图10.2表示如何分别计算水平和垂直关键边缘的例子,其中,水平关键边缘点被标以“H”,垂直关键边缘点被标以“V”;图11是表示QR码定位标记组合过程的流程图;图12是用于说明组合规则的示意图;图13表示QR码区检查处理的流程图;具体实施方式
下面结合附图描述本发明的优选实施例。
计算机系统举例本发明的方法和设备可以在任何信息处理设备中实现。所述信息处理设备例如是个人计算机(PC)、笔记本电脑、嵌入照相机、摄像机、扫描仪等的单片机(SCM),等等。对于本领域普通技术人员,很容易通过软件、硬件和/或固件实现本发明的方法和设备。尤其应注意到,对于本领域普通技术人员显而易见的是,为了执行本方法的任何步骤或者步骤的组合,或者本发明的设备的任何部件或者部件的组合,可能需要使用输入输出设备、存储设备以及微处理器比如CPU等。在下面对本发明的方法和设备的说明中不见得提到这些设备,但实际上使用了这些设备。
作为上述信息处理设备,图4示出了一个计算机系统的举例,在其中可以实现本发明的方法和设备。应注意的是,示于图4的计算机系统只是用于说明,并非要限制本发明的范围。
从硬件的角度来讲,计算机1包括一个CPU6、一个硬盘(HD)5、一个RAM7、一个ROM8和输入输出设备12。输入输出设备可以包括输入装置比如键盘、触控板、跟踪球和鼠标等,输出装置比如打印机和监视器,以及输入输出装置比如软盘驱动器、光盘驱动器和通信端口。
从软件的角度讲,所述计算机主要包括操作系统(OS)9、输入输出驱动程序11和各种应用程序10。作为操作系统,可以使用市场上可购买的任何操作系统,比如Window系列以及基于Linux的操作系统。输入输出驱动程序分别用于驱动所述输入输出设备。所述应用程序可以是任何应用程序,比如文本处理程序、图像处理程序等,其中包括可以用在本发明中的或者可以利用本发明的已有程序以及专为本发明编制的、可调用所述已有程序的应用程序。
这样,在本发明中,可以由操作系统、应用程序和输入输出驱动程序在所述计算机的硬件中实现本发明的方法和设备。
另外,计算机1可以连接到数字装置3和应用设备2。数字装置用作图像源,可以是照相机、摄像机、扫描仪或者用于将模拟图像转换为数字图像的数字化仪。本发明的设备和方法获得的结果被输出到应用设备2,或者根据所述结果,执行适当的操作。该应用设备可以实现为在计算机1中实现的另一个应用程序(与硬件相结合),用于进一步处理所述图像。
用于定位QR码的设备和方法图5的主流程图表示了要由本发明的设备执行的本发明的方法的主要步骤。用于定位至少一个QR码的设备包括用于执行步骤Step1的特征比探测装置通过执行探测定位标记的特征比的多个探测操作来探测可能的QR码定位标记区;用于执行步骤Step 2的关键边缘探测装置探测可能的QR码定位标记区的关键边缘,以便排除假区;用于执行步骤Step 3的定位标记组合装置将探测到的QR码定位标记区组合为可能的QR码;以及用于执行步骤Step 4的确认装置,用于排除假的QR码。
特征比探测装置可以用传统的方法和相应的装置(比如图2.1和图2.2所示者)来执行步骤Step 1。在本发明中,发明人提供了新的装置来执行步骤Step 1。具体地,提供了水平特征比探测装置和垂直特征比探测装置。图6图示了由水平特征比探测装置和垂直特征比探测装置执行的用于探测一个可能定位标记的过程。如图6所示,在水平特征比探测装置执行的步骤Step 1.1中,进行探测,看是否存在包含特征比的水平行(也就是说,该行的至少一部分包含黑的子部分和白的子部分,它们的长度比等于1∶1∶3∶1∶1)(步骤Step 1.2)。如果存在,则由垂直特征比探测装置执行步骤Step 1.3在一个与所述探测到的部分的中央黑色子部分相交的垂直行中进行探测。如果在被探测的垂直行中存在所述特征比(步骤Step 1.4),则可以确定,由所述水平行和所述垂直行部分所限定的方形区是可能的定位标记。
在本发明的一个优选实施例中,如果水平特征比探测装置和垂直特征比探测装置分别探测到了所述水平行部分和所述垂直行部分,则探测过程移动到下一个相邻的扫描行(分别是水平和垂直扫描行)(步骤Step 1.5)。重复上述过程两次,仅当在三个水平行和三个垂直行中都探测到所述特征比时(步骤Step 1.6),相应的方形区域才被视为可能的定位标记,并进行如图6所示的新过程以寻找下一个可能的定位标记;否则对于下一个水平行从头开始重复上述过程。
图7.1图示了水平特征比探测装置如何进行步骤Step 1.1的例子。在图像的被探测的水平行中,每一个像素具有“1”(黑像素)或者“0”(百像素)值。对连通像素进行计数,获得一个序列,从该序列可以得到一个比例。然后可以将其与特征比进行比较,看是否匹配。
图7.2图示了垂直特征比探测装置如何进行步骤Step 1.2的例子。除了行是垂直的而非水平的之外,其它方面与图7.1所示是一样的。
图7.3的示意图用于以另一种方式图示图6所示的过程。当探测定位标记时,从上到下一个一个扫描像素行。在探测到包含特征比的第一水平行H1之后,探测与该第一水平行H1的中央黑色子部分相交的第一垂直行V1,看其是否也包含特征比从而可以与第一水平行H1一起构成一个定位标记。然后进一步探测第二水平行H2、第二垂直行V2、第三水平行H3和第三垂直行V3,看它们是否也包含对应于第一水平行和第一垂直行的特征比。如果上面的每一步的结果都是肯定的,则可以确定如图7.3所示的一个可能的定位标记。关于探测方向,不一定是从上到下。也可以是从下到上,从左到右或者从右到左。
为了提高本方法和设备的速度,降低内存消耗,本发明进一步提供了一种探测特征比的新颖的方法和装置。具体地,本发明提供了转换装置,用于对要探测的行在上述步骤Step 1.1和Step 1.3之前(或者在步骤Step 1之前)进行预处理。
具体地,在一个二值图像中,一个像素对应于内存中的一个比特。值“1”代表黑像素,值“0”代表白像素。如前参照图6、图7.1和图7.2所述,当探测特征比时,本发明需要对连通像素进行计数。传统上,这需要对相邻的具有相同值的比特进行计数。也就是,需要对比特进行操作。然而,如我们所知,在目前的任何信息设备中,信息都是用字节表示的。这个问题会极大地降低处理速度,增大内存消耗。
为了解决这个问题,发明人提出来用转换装置将每一个比特扩展为一个字节。如图8所示,如果一个行包括N个像素(N=8m,m是自然数,这里,作为例子,N=16),也就是N个比特(m字节),则该行将被扩展为N个字节。对于黑色的第n个像素(n =1,2,3......N)(也就是,对于为“1”的第n个比特),第n个字节的第(n mod 8)个比特被设置为1,这些N个字节的其它比特都被设置为0。然后,可以对这N个字节进行步骤Step 1.1和Step 1.3的计数操作,因为只存在两种字节零字节和非零字节。采用该转换装置的好处是简化了特征比探测操作,因为操作是直接在字节上进行的,而不是对比特进行操作。当恢复像素行时,只需要对每8个转换字节进行OR操作就可以恢复像素行的一个相应字节。
图9、图10.1和图10.2图示了由关键边缘探测装置执行的步骤Step 2的一个具体例子。该关键边缘探测装置包括一个关键边缘计算器、一个水平边缘探测器和一个垂直边缘探测器。在步骤Step 2.1中,基于步骤1的结果,例如图7.3所示的,用关键边缘计算器找出关键边缘点C,如图10.1所示。也就是,例如,从图7.3的结果,可以预期一个由黑像素C形成的方框。
然后,在步骤Step 2.2,水平边缘探测器确认预期的水平边缘H是否确实不包含白色像素;在步骤Step 2.4,垂直边缘探测器确认预期的垂直边缘V确实不包含白像素。只有当水平边缘和垂直边缘都得到确认(步骤Step 2.3和Step 2.5),相应的定位标记才被确认为可能的定位标记。
本发明的下一步是将所述定位标记组合为可能的QR码(步骤Step 3)。为此,该定位标记组合装置包括一个比较器和一个分类装置。在步骤Step 3.1(图11),比较器计算每一个定位标记的宽度W和高度H,以及相邻定位标记之间的水平距离HD和垂直距离VD,如图12所示。
然后在步骤Step 3.2,比较器比较第一定位标记A的W和H以及第一定位标记及其相邻定位标记比如B和C之间的HD和VD。如果HD>W且VD<=H,则这两个相应的定位标记(A和B)应当被水平组合起来(步骤Step 3.3)。如果HD<=W且VD>H(步骤Step 3.4),则这两个相应的定位标记(A和C)应当被垂直组合起来(步骤Step3.5)。如果一个定位标记与另外两个定位标记分别水平组合和垂直组合,则这三个定位标记构成一个可能的QR码。重复上述过程(步骤Step 3.6),直到所有的定位标记都被分组。
在一个优选实施例中,所述组合装置还可以包括重叠检测装置,用于检测QR码之间的重叠,从而排除假的匹配。
这样就获得了可能的QR码。在下一个步骤Step 4,由确认装置来进行确认,以排除假的QR码。该确认装置包括同步格(timing cell)探测装置和结束点探测装置。在步骤Step 4.1,通过探测同步格特征比(1∶1∶1...),同步格探测装置探测在两个水平组合的定位标记之间是否存在一个同步格列58。在步骤Step 4.3,通过探测同步格特征比(1∶1∶1...),同步格探测装置探测在两个垂直组合的定位标记之间是否存在一个同步格列58(见图1)。探测方法类似于如上所述探测定位标记特征比所使用的方法,在这里不再赘述。最后,在步骤Step 4.5,结束点探测装置探测在可能的QR码的没有QR码定位标记的角部是否存在一个结束点。仅当上述所有三个步骤的结果都是肯定的时候(步骤Step 4.2,Step 4.4和Step4.6),才确认该可能的QR码。
存储介质本发明的所述目的还可以通过在如上所述的可以与所述图像源和后续处理设备通信的任何信息处理设备上运行一个程序或者一组程序来实现。所述信息处理设备、图像源和后续处理设备为公知的通用设备。因此,本发明的所述目的也可以仅仅通过提供实现所述方法或者设备的程序代码来实现。也就是说,存储有实现所述方法或者设备的程序代码的存储介质构成本发明。
对于本领域技术人员来说,可以轻易地用任何程序语言编程实现所述方法。因此,在此省略了对所述程序代码的详细描述。
显然,所述存储介质可以是本领域技术人员已知的,或者将来所开发出来的任何类型的存储介质,因此也没有必要在此对各种存储介质一一列举。
从上述可知,本发明具有下述优点1.本发明可以高速处理大的无穷区域图像,内存消耗低,可以用在任何种类的图像设备中;2.本发明可以自动定位QR码位置,不用关心图像是否需要预先进行调整;3.本发明可以通过一次扫描图像定位图像中的所有QR码;4.本发明可以提供一种定位QR码的稳定精确的方案;5.本发明可以同时找出黑色或者白色QR码的不同方向。
本发明可以应用于扫描仪、监视器、照相机或者其它任何包括计算机的图像处理系统,可以成功地获取包含多个QR码的二值文档图像中每一个QR码的精确位置。
尽管结合具体步骤和结构描述了本发明,但是本发明不局限于这里所描述的细节。本申请应当覆盖所有不偏离本发明的精神和范围的变化、修改和变型。
权利要求
1.一种用于定位图像中的至少一个二维条形码的设备,包括特征比探测装置,用于通过执行探测定位标记的特征比的多个探测操作,探测可能的二维条形码定位标记区;关键边缘探测装置,用于探测可能的二维条形码定位标记区的关键边缘;定位标记组合装置,用于将探测到的二维条形码定位标记区匹配为可能的二维条形码;以及确认装置,用于排除假的二维条形码。
2.如权利要求1所述的设备,其特征在于,所述特征比探测装置还包括水平特征比探测装置,用于探测图像的水平行中的特征比;以及垂直特征比探测装置,用于探测根据所述水平特征比探测装置的探测结果所选择的垂直行中的特征比。
3.如权利要求2所述的设备,其特征在于所述水平特征比探测装置进一步被配置为在探测到包含所述特征比的第一水平行之后,探测两个毗邻水平行中的特征比;并且所述垂直特征比探测装置进一步被配置为探测根据所述水平特征比探测装置的探测结果所选择的三个相邻垂直行中的特征比。
4.如权利要求2或3所述的设备,其特征在于,所述特征比探测装置还包括转换装置,用于将包含N像素的要被探测的行转换为N个字节,其中,N=8m,m为自然数,对于黑色的第n个像素,n=1,2,…N,将第n个字节的第(n mod 8)个比特设置为“1”,并且所述水平特征比探测装置和所述垂直特征比探测装置对所述N个字节进行所述探测操作。
5.如权利要求1所述的设备,其特征在于,所述关键边缘探测装置包括关键边缘计算器,用于根据所述特征比探测装置输出的结果计算所述可能的定位标记的预期的关键边缘;水平边缘探测器,用于确认预期的水平关键边缘是否不包含白色像素;以及垂直边缘探测器,用于确认预期的垂直边缘是否不包含白色像素。
6.如权利要求1所述的设备,其特征在于,所述定位标记组合装置还包括比较器,用于计算每一个可能的定位标记的宽度W和高度H,以及两个相邻定位标记之间的水平距离HD和垂直距离VD,并比较它们;分类装置,如果HD>W且VD<=H,则将定位标记及其相邻定位标记水平分组,如果HD<=W且VD>H,则将定位标记及其相邻定位标记垂直分组。
7.如权利要求6所述的设备,其特征在于,所述组合装置还包括重叠检测装置,用于检测二维条形码之间的重叠,从而排除假的组合。。
8.如权利要求1所述的设备,其特征在于,所述确认装置还包括同步格探测装置,用于探测二维条形码定位标记之间的分别在水平方向和垂直方向排列的特征比;结束点探测装置,用于探测在可能的二维条形码的没有二维条形码定位标记的角部是否存在结束点。
9.一种用于定位图像中的至少一个二维条形码的方法,包括特征比探测步骤,用于通过执行探测定位标记的特征比的多个探测操作,探测可能的二维条形码定位标记区;关键边缘探测步骤,用于探测可能的二维条形码定位标记区的关键边缘;定位标记组合步骤,用于将探测到的二维条形码定位标记区匹配为可能的二维条形码;以及确认步骤,用于排除假的二维条形码。
10.如权利要求9所述的方法,其特征在于,所述特征比探测步骤还包括水平特征比探测步骤,用于探测图像的水平行中的特征比;以及垂直特征比探测步骤,用于探测根据所述水平特征比探测步骤的探测结果所选择的垂直行中的特征比。
11.如权利要求10所述的方法,其特征在于所述水平特征比探测步骤包括在探测到包含所述特征比的第一水平行之后,探测两个毗邻水平行中的特征比;并且所述垂直特征比探测步骤包括探测根据所述水平特征比探测步骤的探测结果所选择的三个相邻垂直行中的特征比。
12.如权利要求10或11所述的方法,其特征在于,在所述水平特征比探测步骤和垂直特征比探测步骤之前,所述特征比探测步骤还包括转换步骤,用于将包含N像素的要被探测的行转换为N个字节,其中,N=8m,m为自然数,对于黑色的第n个像素,n =1,2,…N,将第n个字节的第(n mod 8)个比特设置为“1”,并且所述水平特征比探测步骤和所述垂直特征比探测步骤对所述N个字节进行所述探测操作。
13.如权利要求9所述的方法,其特征在于,所述关键边缘探测步骤包括关键边缘计算步骤,用于根据所述特征比探测步骤的结果计算所述可能的定位标记的预期的关键边缘;水平边缘探测步骤,用于确认预期的水平关键边缘是否不包含白色像素;以及垂直边缘探测步骤,用于确认预期的垂直边缘是否不包含白色像素。
14.如权利要求9所述的方法,其特征在于,所述定位标记组合步骤还包括比较步骤,用于计算每一个定位标记的宽度W和高度H,以及两个相邻定位标记之间的水平距离HD和垂直距离VD,并比较它们;分类步骤,如果HD>W且VD<=H,则将定位标记及其相邻定位标记水平分组,如果HD<=W且VD>H,则将定位标记及其相邻定位标记垂直分组。
15.如权利要求14所述的方法,其特征在于,所述组合步骤还包括重叠检测步骤,用于检测二维条形码之间的重叠,从而排除假的组合。
16.如权利要求9所述的方法,其特征在于,所述确认步骤还包括同步格探测步骤,用于探测二维条形码定位标记之间的分别在水平方向和垂直方向排列的特征比;结束点探测步骤,用于探测在可能的二维条形码的没有二维条形码定位标记的角部是否存在结束点。
17.一种存储介质,其特征在于,其中存储了用于实现如权利要求9到16之一所述的方法的程序代码。
全文摘要
本申请涉及用于定位二维条形码的方法、设备和存储介质。为了自动地定位任意尺寸的图像中的多个二维条形码,本发明提供了一种用于定位图像中的至少一个二维条形码的设备,包括特征比探测装置,用于通过执行探测定位标记的特征比的多个探测操作,探测可能的二维条形码定位标记区;关键边缘探测装置,用于探测可能的二维条形码定位标记区的关键边缘;定位标记组合装置,用于将探测到的二维条形码定位标记区匹配为可能的二维条形码;以及确认装置,用于排除假的二维条形码。本发明还提供了用于定位至少一个二维条形码的相应的方法。
文档编号G06K7/00GK1746898SQ20041007681
公开日2006年3月15日 申请日期2004年9月7日 优先权日2004年9月7日
发明者赵洪生, 刘加强, 胥立丰 申请人:佳能株式会社