折叠二维码图像的还原方法、还原装置与扫码设备与流程

文档序号:19251927发布日期:2019-11-27 20:21阅读:1615来源:国知局
折叠二维码图像的还原方法、还原装置与扫码设备与流程

本发明是与二维码图像应用有关,特别是关于折叠二维码图像的还原方法、还原装置与具有相关还原装置的扫码设备。



背景技术:

图像二维码应用,比如qrcode,已经在各个领域被广泛使用。其中用于承载信息的二维码的图像通常为正方形且常在平面上显示(例如黏贴在商品包装盒上的标签)。二维码图像在被相机摄取后,由于相机的镜头和传感器通常不会与平面二维码平行,且摄取角度在可以还原并提取二维码图像承载信息的前提下可以为任意角度,对摄取的二维码图像通常会造成不同程度的透视畸变。

透视畸变会使摄取的二维码图像与原始的二维码图像在形状、大小、位置上有所不同,而在对其进行透视还原前,摄取的二维码图像所承载的信息则无法被提取,因此透视还原是图像二维码应用中必要的一部,其实现的方法也被大量学习。其中最常用的为利用在二维码图像的四个角点添加寻像图像作为位置校正点,在通过其他图像处理技术提取到摄取到的四个角点后,可以利用其中摄取到的角点的坐标与相对应的原始的坐标来计算摄取的图像经历的透视畸变从而进行还原,比如被广泛使用的zxing开源条形码软件库使用的校正点便是二维码本身的寻像图像。除了利用寻像图像作为校正点,也可以利用二维码图像本身的结构来矫正透视畸变的工作,比如在中国专利申请cn101908144a中,通过提取所摄取到的二维码图像中模块的位置来获取多个可用来计算透视畸变参数的校正点。

在对平面二维码图像进行透视还原的基础上,目前也有在透视畸变基础上增强其在一定的非平面的情况下被摄取后的透视还原的工作,来处理当平面二维码被黏贴的表面有轻微的弯曲,或者二维码图片标签本身表面有除了透视畸变外其他不规则的形状变化的情况。比如中国专利申请cn201510432188即是使用匹配模板来利用多个寻像图像矫正透视畸变以及曲面矫正。

然而,目前这些相关的二维码透视还原方法一般仅针对显示在平面上,以及存在一定弯曲和其他畸变的二维码图像进行还原,而未考虑二维码图像的折叠形变,例如在中间位置被折叠并且被黏贴在由两个存在一定角度的平面组成的商品包装上时造成的形变。此种折叠形变造成了原本的平面二维码图像变为在两个平面交汇处折叠的立体二维码(比如立方体的两个相邻的面)的情况,因此传统的二维码图像透视还原方法无法用于被从中间处折叠黏贴的二维码图像。所以此种类型的包装目前并无法将二维码图像安放在两个平面的交汇处。然而,此种类型的商品包装却较为常见,涵盖了从立方体形状的包装到所有存在两个交汇平面的包装。

因此,迫切需要一种折叠二维码图像的还原方法,可以实现从折叠的二维码图像中提取信息。



技术实现要素:

有鉴于此,本发明的一目的在于提供一种折叠二维码图像的还原方法及其装置与扫码设备,使从位于商品包装的平面交汇处黏贴的图像二维码并从中提取信息成为可能。

为了实现上述目的,本发明提供一种折叠二维码图像的还原方法,其特点在于,包括:

图像预处理步骤,对一折叠二维码图像进行预处理,以获取包含有二维码图像信息的预处理后图像;

角点检测步骤,对该预处理后图像进行角点检测,以获取该折叠二维码图像的多个校正点,其中所述多个校正点至少包含该折叠二维码图像的顶部角点及位于该折叠二维码图像的折叠线上的折叠角点;

图像还原步骤,利用所述折叠角点及所述顶部角点,对该折叠二维码图像进行透视还原,以获取该折叠二维码图像在两个交汇平面中的第一部分图像和第二部分图像;

图像拼接步骤,对该第一部分图像和该第二部分图像进行拼接,以获取一平面二维码图像。

在本发明的一实施方式中,该图像预处理步骤包括:

对该折叠二维码图像进行形态处理,通过对该折叠二维码图像中的不同物体进行区分,提取其中的二维码图像信息,其中该二维码图像信息包含二维码图像的位置信息。

在本发明的一实施方式中,在对该折叠二维码图像进行形态处理之前,还包括:

对该折叠二维码图像进行灰度值转换处理,以得到一灰度值图像;

对该灰度值图像进行二值化处理,以得到一黑白二值图像。

在本发明的一实施方式中,在对该折叠二维码图像进行形态处理时,包含:

使用结构元素对该黑白二值图像进行闭运算,使该黑白二值图像中的二维码图像的边界变得连续;

对该黑白二值图像进行填充,以区分二维码图像与其他物体,并获取二维码图像在该黑白二值图像中的位置信息。

在本发明的一实施方式中,该角点检测步骤包括:

使用填充后的该黑白二值图像作为标签图像,并对其进行边缘检测,以获取二维码图像的多个边缘,并得到一边缘标签图像;

对该边缘标签图像进行线检测,以提取出该二维码图像的所述多个边缘的边缘信息;

利用所述多个边缘的所述边缘信息进行角点检测,以获取该二维码图像的多个顶部角点和位于折叠线上的折叠角点。

在本发明的一实施方式中,在该图像还原步骤中,所获取的还原后的该第一部分图像和该第二部分图像均为校正后长宽比设定为1的正方形图像。

在本发明的一实施方式中,该图像拼接步骤包括:

通过模块数量估计方法,分别计算出该二维码图像在水平方向和垂直方向上的模块数量;

根据还原后的该二维码图像的该第一部分图像和该第二部分图像的宽度、以及所计算出的水平方向和垂直方向上的模块数量,将还原后的该二维码图像的该第一部分图像和该第二部分图像由正方形图像调整为其原始的长宽比,以得到修正后的第一部分图像和修正后的第二部分图像;

将该修正后的第一部分图像和该修正后的第二部分图像进行拼接,以得到该平面二维码图像。

在本发明的一实施方式中,该模块数量估计方法包括:

在该黑白二值图像中,通过在水平方向上所获取到的两个顶部角点来确定水平定位图形的扫描位置,并根据该水平定位图形的扫描结果来确定该二维码图像在水平方向上的模块数量;

在该黑白二值图像中,通过在垂直方向上所获取到的顶部角点和折叠角点来确定垂直定位图形的扫描位置,并根据该垂直定位图形的扫描结果来确定该二维码图像在垂直方向上的模块数量。

在本发明的一实施方式中,当角点检测步骤检测失败或图像还原步骤失败时,还包括:

通过增加结构元素的尺寸,重新进行闭运算步骤。

在本发明的一实施方式中,在对该折叠二维码图像进行灰度值转换处理之前还包括:

通过一图像摄取装置获得一摄取图像,并对该摄取图像进行切割处理,以获取具有一预定尺寸的该折叠二维码图像。

为了实现上述目的,本发明另提供一种折叠二维码图像的还原装置,其特点在于,包括:

图像预处理单元,用于对一折叠二维码图像进行预处理,以获取包含有二维码图像信息的预处理后图像;

角点检测单元,用于对该预处理后图像进行角点检测,以获取该折叠二维码图像的多个校正点,其中所述多个校正点至少包含该折叠二维码图像的顶部角点及位于该折叠二维码图像的折叠线上的折叠角点;

图像还原单元,用于利用所述折叠角点及所述顶部角点,对该折叠二维码图像进行透视还原,以获取该折叠二维码图像在两个交汇平面中的第一部分图像和第二部分图像;

图像拼接单元,用于对该第一部分图像和该第二部分图像进行拼接,以获取一平面二维码图像。

在本发明的另一实施方式中,该图像预处理单元包括:

形态处理模块,用于对该折叠二维码图像进行形态处理,通过对该折叠二维码图像中的不同物体进行区分,提取其中的二维码图像信息,其中该二维码图像信息包含二维码图像的位置信息。

在本发明的另一实施方式中,该图像预处理单元还包括:

灰度值转换处理模块,用于对该折叠二维码图像进行灰度值转换处理,以得到一灰度值图像;以及

二值化处理模块,用于对该灰度值图像进行二值化处理,以得到一黑白二值图像。

在本发明的另一实施方式中,该形态处理模块在对该折叠二维码图像进行形态处理时,是使用结构元素对该黑白二值图像进行闭运算,使该黑白二值图像中的二维码图像的边界变得连续;以及是对该黑白二值图像进行填充,以区分二维码图像与其他物体,并获取二维码图像在该黑白二值图像中的位置信息。

在本发明的另一实施方式中,该角点检测单元包括:

边缘检测模块,用于使用填充后的该黑白二值图像作为标签图像,并对其进行边缘检测,以获取二维码图像的多个边缘,并得到一边缘标签图像;

线检测模块,用于对该边缘标签图像进行线检测,以提取出该二维码图像的所述多个边缘的边缘信息;

角点检测模块,用于利用所述多个边缘的所述边缘信息进行角点检测,以获取该二维码图像的多个顶部角点和位于折叠线上的折叠角点。

在本发明的另一实施方式中,该图像还原单元所获取的还原后的该第一部分图像和该第二部分图像均为校正后长宽比设定为1的正方形图像。

在本发明的另一实施方式中,该图像拼接单元包括:

模块数量估计模块,用于通过模块数量估计方法,分别计算出该二维码图像在水平方向和垂直方向上的模块数量;

图像大小调整模块,用于根据还原后的该二维码图像的该第一部分图像和该第二部分图像的宽度、以及所计算出的水平方向和垂直方向上的模块数量,将还原后的该二维码图像的该第一部分图像和该第二部分图像由正方形图像调整为其原始的长宽比,以得到修正后的第一部分图像和修正后的第二部分图像;

图像拼接模块,用于将该修正后的第一部分图像和该修正后的第二部分图像进行拼接,以得到该平面二维码图像。

在本发明的另一实施方式中,该模块数量估计模块是:

在该黑白二值图像中,通过在水平方向上所获取到的两个顶部角点来确定水平定位图形的扫描位置,并根据该水平定位图形的扫描结果来确定该二维码图像在水平方向上的模块数量;

在该黑白二值图像中,通过在垂直方向上所获取到的顶部角点和折叠角点来确定垂直定位图形的扫描位置,并根据该垂直定位图形的扫描结果来确定该二维码图像在垂直方向上的模块数量。

在本发明的另一实施方式中,当角点检测步骤检测失败或图像还原步骤失败时,该形态处理模块还通过增加结构元素的尺寸,重新进行闭运算步骤。

在本发明的另一实施方式中,该图像预处理单元还包括:

切割模块,用于通过一图像摄取装置获得一摄取图像,并对该摄取图像进行切割处理,以获取具有一预定尺寸的该折叠二维码图像。

为了实现上述目的,本发明又提供一种折叠二维码图像的扫码设备,其特点在于,包括:

一相机单元,用于摄取一折叠二维码图像;

一如上所述的折叠二维码图像的还原装置,用于对该折叠二维码图像进行还原,以获取一平面二维码图像;

一二维码解码器,用于对经还原后所得到的该平面二维码图像进行解码。

本发明针对折叠形变这一类型的透视畸变,在不改变图像二维码本身结构的情况下,设计了相关的还原方法及其装置与相关的扫码设备,从而使从位于商品包装的平面交汇处黏贴的图像二维码并从中提取信息成为可能。

以下将以实施方式对上述的说明作详细的描述,并对本发明的技术方案提供更进一步的解释。

附图说明

为让本发明的上述和其他目的、特征、优点与实施例能更明显易懂,所附附图的说明如下:

图1为本发明的一实施例中折叠二维码图像的还原方法的流程图;

图2为本发明的一实施例中使用相机摄取的折叠二维码图像的示意图;

图3为本发明的一实施例中经过切割处理和灰度值转换处理后的折叠二维码图像的示意图;

图4a为本发明的一实施例中在进行二值化处理过程中图像块与摄取的图像的关系的展示示意图;

图4b为本发明的一实施例中经过二值化处理后得到的黑白二值图像;

图5为本发明的一实施例中在进行形态处理过程中使用的结构元素ec的示意图;

图6为本发明的一实施例中在进行形态处理过程中进行闭运算之后得到的闭运算结果图像ic的示意图;

图7为本发明的一实施例中在进行形态处理过程中经填充后得到的填充结果图像if的示意图;

图8为本发明的一实施例中经边缘检测后得到的边缘标签图像ie的示意图;

图9为本发明的一实施例中在进行线检测时霍夫域坐标(θ,ρ)与像素坐标(x,y)的关系示意图;

图10a、图10b为本发明的一实施例中的霍夫变换结果示意图,其中图10a显示了折叠二维码图像的上下4个顶部角点在霍夫域的表示,图10b显示了折叠二维码图像的中间折叠线上的2个折叠角点在霍夫域的表示;

图11为本发明的一实施例中经线检测后的结果示意图;

图12为本发明的一实施例中经角点检测后的结果示意图;

图13a、图13b为本发明的一实施例中经图像还原步骤后得到的透视还原结果示意图,其中图13a显示了还原后的该折叠二维码图像的第一部分图像(即上部图像),图13b显示了还原后的该折叠二维码图像的第二部分图像(即下部图像);

图14为本发明的一实施例中通过模块数量估计方法计算在水平方向上的模块数量时的示意图,其中显示了在黑白二值图像中,从提取到的下端的两个校对点确定的水平定位图形的扫描位置;

图15为图14中水平定位图形的扫描结果示意图;

图16a、图16b分别为本发明的一实施例中经图像大小调整后得到的修正后的第一部分图像、修正后的第二部分图像的示意图;

图17为本发明的一实施例中经图像拼接步骤后得到的平面二维码图像的示意图;

图18为本发明的一种折叠二维码图像的还原装置的结构示意图;

图19为本发明的一种折叠二维码图像的扫码设备的结构示意图。

具体实施方式

为了使本发明的叙述更佳详尽与完备,可参照所附的附图及以下所述各种实施例,附图中相同的号码代表相同或相似的组件。另一方面,众所周知的组件与步骤并未描述于实施例中,以避免对本发明造成不必要的限制。此外,为简化附图起见,一些已知惯用的结构与元件在附图中将以简单示意的方式绘示。

下面将结合图1~图17,将以一较佳实施例详细说明本发明的折叠二维码图像的还原方法。

需要事先说明的是,本较佳实施例中所揭露的还原方法是假设原始的二维码图像为四边形(非正方形)且折叠处与上下两边平行,其中每一个承载的比特信息都是由一个正方形模块组成,并且在其中经过平面交汇处的边以及上下两边其中的一个边中有交替的黑色模块与白色模块作为定位图形,定位图形中的黑白模块大小与数据模块相同,用来定位其中每一模块行和模块列在整个数据模块部分的位置。但是,可以理解的是,上述仅是本较佳实施例对二维码的假设,但本发明所涉及到的方法、装置及其应用没有限制二维码的种类等。

并且,经过角度未知折叠后,原本的平面二维码图像由两个不同交汇平面构成,本实施例是将从中间折叠后的二维码图像的两个平面分别做透视还原,然后对两个还原后的平面进行拼接从而还原原本的二维码图像。本发明没有假设特定的折叠角度,但假设其足够大可以区分上下两个平面,同时不至于使两个平面中的任意一个被另一个遮挡或者失去对焦。

如图1所示,其示出了本发明的一较佳实施例的折叠二维码图像的还原方法的流程。

该还原方法分为四个主要步骤:图像预处理步骤、角点检测步骤、图像还原步骤、和图像拼接步骤。

图像预处理步骤

图像预处理步骤,其主要是对一折叠二维码图像进行预处理,以获取包含有二维码图像信息的预处理后图像。在本较佳实施例中,该图像预处理步骤可包括切割处理、灰度值转换处理、二值化处理、以及形态处理等多个处理步骤。但是,可以理解的是,在其它实施例中,也可以仅包含这些处理步骤中的一个或多个,这些并不作为对本发明的限制。

对摄取的图像进行切割处理、灰度值转换处理和二值化处理

在本较佳实施例中,假设一图像摄取装置,例如一扫码设备的相机单元,所摄取到的折叠二维码图像是经过一次折叠角度未知的折叠,且折叠线与二维码图像的四边中平行的两边平行,其中,该相机单元所摄取到的折叠二维码图像如图2所示。

首先,在取得摄取到的折叠二维码图像时,为了减轻后续图像处理的计算量,可对摄取到的图像进行切割处理,从而减少处理的像素数量和其他无关的图像部分,以获取具有一预定尺寸的折叠二维码图像,例如可通过切割处理获得一675×675像素的折叠二维码图像。在实际操作过程中,可以通过设计扫码设备,并借助用户的协助,使得该扫码设备的相机单元在摄取图像时可使二维码大致位于中央,从而可获得一预定尺寸(例如675×675像素)的折叠二维码图像,以此来减少后续需要处理的图像范围,增加整体的计算速度。该预定尺寸的折叠二维码图像可作为后续步骤的输入。

由于没有涉及到颜色信息,可用已知的转换公式将所获取的该折叠二维码图像进行灰度值转换处理,即转换为灰度值图像ig。

ig=0.299×r+0.587×g+0.114×b

其中(r,g,b)为摄取到的折叠二维码图像的红绿蓝三个颜色值。在经过切割处理和灰度值转换处理后,后续需要处理的灰度值图像ig如图3所示。

在得到灰度值图像ig后,需要将其中的二维码图像部分与其他无关的图像部分进行区分。在此步骤中,灰度值图像ig进一步被变换为二进制图像,也就是黑白二值图像ib。

考虑到不均匀的反射光线和二维码图像内容中的像素值不同的对比度,参考自zxing软件库,一个简单的自适应阈值设定方式如下:首先,将摄取的图像分解为数个8×8像素的图像块。如果其尺寸并非8的倍数,边界的图像块尺寸可以小于8×8像素。用blk(i,j)来表示第(i,j)个图像块,在每一个图像块中,计算:

其中图像块与摄取的图像的关系如图4a所示,其中,假设摄取的图像大小为24×24像素,则其可以分为9个图像块,例如包括图像块blk(1,1)、blk(1,2)、blk(1,3)、blk(2,1)、……、blk(3,3)等,每个图像块的大小为8×8像素。

然后,再以(i,j)为中心,周围的5×5个图像块中取p(i,j)的平均值作为阈值。

如果周围的图像块超出了图像的边界,则将范围调整为离(i,j)最近的5×5个图像块。最后,在第(i,j)个图像块中,将灰度值图像和相对应的阈值进行比较,得到黑白二值图像ib:

(k,l)位于图像块blk(i,j)中

得到的黑白二值图像ib如图4b所示。

形态处理

此步骤是对该折叠二维码图像进行形态处理,通过对该折叠二维码图像中的不同物体进行区分,提取其中的二维码图像信息,其中该二维码图像信息包含二维码图像的位置信息。

在此步骤中,是使用得到的黑白二值图像ib来对摄取的图像中不同的物体进行区分,提取其中的二维码图像信息,并且去掉其他不必要的图像部分。在此,是假设二维码图像为摄取的图像中最主要的物体。

首先,对该黑白二值图像ib进行闭运算。这一步是使用以结构元素为ec的标准闭运算,使该黑白二值图像中的二维码图像的边界变得连续。其中,此闭运算步骤是对黑白二值图像中的物体(包括二维码图像和其他可能的物体)外围和边界中断裂处进行弥合,同时保持了物体在黑白二值图像中的总体位置和形状:

这里,由于事先无法预知相机摄取二维码图像时的摄取环境、周边干扰二维码图像检测的物体数量、以及二维码本身在整个图像中所占的比例,可首先将结构元素ec设置为半径为7的圆形滑动窗口,如图5所示。

另外,表示图像形态的膨胀操作:

其会使物体的边界根据结构元素ec的结构向外扩张,∪可以当作“或(or)”操作。

代表图像形态的腐蚀操作:

其会使物体的边界根据结构元素ec向内收缩,也就是只有当图像的边界处形状与ec重合的部分会被保留,∩可以当作“且(and)”操作。

在进行闭运算后,黑白二值图像中二维码图像的部分的边界会变得连续,如图6所示,其示出了进行闭运算之后得到的闭运算结果图像ic。与图4b比较,可以看出图4b中位于中间的二维码图像的边界已经被连为一体。

在本发明中,当后续的步骤失败时,例如当角点检测步骤检测失败或图像还原步骤失败时,可通过增加结构元素的尺寸,重新进行闭运算步骤,并重新尝试后续步骤。例如,可通过提高窗口的半径重新进行闭运算步骤,对图像上不同的物体进行更大范围的填充。如此,本发明可通过角点检测步骤和图像还原步骤的结果调整闭运算中的结构元素来控制整个流程。

下一步,是对图像进行填充操作来区分二维码图像与其他物体,并获取二维码图像在摄取图像中的位置。由于在闭运算后,闭运算结果图像ic中相同的物体的边界已经连为一体,且不同物体并不相连,则可在不同的物体上分别进行填充,并且获取其中面积最大(白色像素点最多)的物体作为二维码图像的位置。经填充后的填充结果图像if如图7所示。

角点检测步骤

角点检测步骤,其主要是对预处理后图像进行角点检测,以获取折叠二维码图像的多个校正点,其中所述多个校正点至少包含该折叠二维码图像的顶部角点及位于该折叠二维码图像的折叠线上的折叠角点。在本较佳实施例中,该角点检测步骤可包括边缘检测、线检测和角点检测等多个检测步骤。

边缘检测

从摄取到的折叠二维码图像可以看到,经过折叠后的二维码存在6个角点以及6条边。因此,通过对摄取的图像进行边缘检测和线检测,可以确定其中的6条边,并根据它们的相交点可以确定6个角点,例如包括该折叠二维码图像的4个顶部角点及位于该折叠二维码图像的折叠线上的2个折叠角点。

在这一步骤中,可使用填充后的黑白二值图像,例如填充结果图像if作为标签图像,对其进行边缘检测。由于图7中白色部分的边缘十分明显,且需要提取的边缘也十分具体,这里需要的边缘检测并非难点,故可使用不同的边缘检测方法,如prewitt或者sobel等。比如本较佳实施例可使用sobeloperator来提取黑白二值图像中的边缘,其在水平方向和垂直方向的滑动窗口分别为:

然后,可将其中量值较大的边缘提取出来作为二维码图像的边缘。最终的得到的边缘标签图像ie为:

其中*表示卷积,得到的边缘标签图像ie如图8所示。

线检测

得到边缘标签图像ie后,需要提取出边缘信息以进行下一步的处理。这里可使用常用的霍夫变换来进行线检测。对于每一个在二维码边缘标签图像的白色像素点(x,y),经过霍夫变换后经过如下的关系变为(θ,ρ):

xcosθ+ysinθ=ρ

并在霍夫域中的(θ,ρ)中加1。在对边缘标签图像ie进行霍夫变换后,得到如图10a、10b所示的霍夫变换结果。这里的坐标(x,y)为摄取到的二维码图像中的坐标,其原点为图像的左上角,如图9所示,其示出了霍夫域坐标(θ,ρ)与像素坐标(x,y)的关系。其中直线l上的每一个像素都会在同一处(θ,ρ)中加1,最终再累计为霍夫域的局部最大值。

图10a、图10b分别示出了霍夫变换结果,图10a显示了折叠二维码图像的上下4个顶部角点在霍夫域的表示,图10b显示了折叠二维码图像中间折叠线上的2个折叠角点在霍夫域的表示。在图10a和图10b中,在垂直方向取得了4条直线,在水平方向则取得了2条直线,分别用白色方格标记为霍夫域中的局部最大值。

虽然边缘检测步骤中取得的边缘为线段,但在此利用的是检测到的这6条线段所在的直线,可使用齐次坐标来表示。如此一来,即可在霍夫域中得到边缘直线的信息,包括其起点s=(xs,ys,1)和终点e=(xe,ye,1)。齐次坐标系中,可用l=[a,b,c]来表示直线,则在直线上的点满足:

ax+by+c=0

其中,直线l可以用直线上的两点的交叉乘积得到:

这里s=(xs,ys,1)与e=(xe,ye,1)都可以由直线在霍夫域中的点(θ,ρ)计算得到。取得的4条垂直方向的直线可用li,i=1,…,4表示,如图11中的直线li,水平方向的2条直线可用lj,j=1,2表示,如图11中的直线lj。

角点检测

在进行图像还原前,需要取得摄取的折叠二维码图像的四个顶部角点和折叠处的两个折叠角点,作为校正点和图像还原的输入。在得到二维码图像边界的直线li和lj后,可以再次用交叉乘积来得到直线交点的齐次坐标:

其中,二维码图像的4个顶部角点为水平方向上的直线lj和垂直方向上的直线li的交点。

二维码图像的折叠处的2个折叠角点为不同的垂直方向上的直线li之间的交点。

其中,为两条不同的垂直线。并且,在这些交点中,只需取在摄取到的图像范围中的交点,作为需要的校正点。另外,校正点的坐标需要转换为二维平面坐标c。

如图12所示,从二维码图像的边界的直线中提取了6个校正点。其中p1~p4为二维码图像的4个顶部角点,p5~p6为折叠处的2个折叠角点。

图像还原步骤

图像还原步骤,其主要是利用所述折叠角点及所述顶部角点,对该折叠二维码图像进行透视还原,以获取该折叠二维码图像在两个交汇平面中的第一部分图像和第二部分图像。

透视变换的数学表达

在本发明中,假设相机模型为针孔相机模型。尽管其他的更为准确的相机光学模型可以表达更多类型的空间失真,由于它们较为复杂且与透视还原没有直接关系,因而针孔相机模型更普遍用于平面透视变换。

平面透视变换描述的是一个在三维空间中的二维平面上的点投射到另一个二维平面的过程。也就是说,相机所摄取的图像为二维图像。这也是目前二维码应用中的透视还原所假设的,二维码图像为平面。

如果把在平面二维码中二维空间上的一点的二维坐标以齐次坐标表示:x″=[x″y″z″]t,也就是说,其二维的直角坐标为:

对于平面透视变换,其变换后的齐次坐标为x′=ax″:

相应的,x'在摄取到的二维图像中的直角坐标为:

其中,a为3×3的非其奇异矩阵。透视变换中,a为齐次矩阵,其自由度为8,因为在对其乘以一个标量常数后,不会改变。

透视还原步骤

得到6个校正点后,可将其分为上下两部分进行处理。由于透视变换的自由度为8,而每一个参考点的坐标为二维坐标,故需要4个参考点来估计一个完整的齐次矩阵a。

在上一步骤中得到了6个校正点,所以对于上半部分的二维码图像,可将上半部分的2个校正点(例如顶部角点)和中间折叠部分的2个校正点(例如折叠角点)作为参考点。对于下半部分,可将下半部分的2个校正点(例如顶部角点)和中间折叠部分的2个校正点(例如折叠角点)作为参考点。这样,中间折叠部分的折叠角点一共被用到2次来估计两个不同的透视变换。

首先,假设上下两部分的二维码图像均从一个单位长度的正方形所投影过来(会进行后续处理使上下两部分二维码的长度吻合),也就是:

(0,0)→(x0,y0),

(1,0)→(x1,y1),

(0,1)→(x2,y2),

(1,1)→(x3,y3)

其中,(xi,yi)为角点坐标ci,可用如下的关系式来得到齐次矩阵a:

a11=x1-x0+a13x1

a21=x3-x0+a23x3

a31=x0

a12=y1-y0+a13y1

a22=y3-y0+a23y3

a32=y0

定义:

δx1=x1-x2,δx2=x3-x3,δx3=x0-x1+x2-x3

δy1=y1-y2,δy2=y3-y2,δy3=y0-y1+y2-y3

则可以计算

由于上下两部分经过的不同的透视畸变,所以其对应的齐次矩阵也不同,可分别用a1和a2来表示,通过两组不同的参考点得到二维码图像。而后可以通过来将上下两部分分别还原为正方形图像,如图13a和图13b所示,其示出了得到的透视还原结果。其中,图13a显示了还原后的该折叠二维码图像的第一部分图像(即上部图像),图13b显示了还原后的该折叠二维码图像的第二部分图像(即下部图像)。

图像拼接步骤

图像拼接步骤,其主要是对该第一部分图像和该第二部分图像进行拼接,以获取一平面二维码图像。

其中,得到折叠二维码图像上下两部分(即第一部分图像和第二部分图像)的正方形透视还原结果后,在还原后的二维码图像宽度不变的情况下,需要将它们的长度调整到它们原先的长度,从而在最后一步中,对还原后的上下两部分的二维码图像进行融合,还原得到原始的平面二维码图像。

模块数量估计

首先,通过上下两部分的二维码图像中位于上下两端其中一端的定位图形,也就是其中交替的黑色与白色模块,计算摄取到的二维码图像在水平方向的模块数量,如图14和图15所示。而确认上下哪一端包含了定位图形则非常容易,因为不包含定位图形的一端不会有黑白交替的模块出现。同时,假设模块为正方形,其长宽相同。

如图14所示,其是在黑白二值图像中,从提取到的下端的两个校对点(即顶部角点)确定水平定位图形的扫描位置,用线段“lh”标记。

如图15所示,其示出了图14中线段“lh”的扫描结果,可以从中估计在水平方向上的模块数量。在图15中,每一次从0→1→0的过程代表了一个模块,同样,每一次1→0→1的过程也代表了一个模块,因此可以从中得到水平方向的模块数量nh。这里,nh应为整数,因为在水平方向上的二维码图像并未被分割,其所包含的应为整数个模块。

用同样的方法,在还原后的上、下两部分的二维码图像的右侧,可以确定上、下两部分的二维码图像在垂直方向上的模块数量nv,upper、nv,lower。区别于水平方向的一点是nv,upper、nv,lower可以不是整数,因为在折叠过的二维码图像上下两部分的交汇处可以在垂直方向上的一个模块中间,导致上、下两部分各有此模块的一部分。在此,可利用二维码图像的上部分中最下端的模块所占的像素长度dupper,bottom与下部分最上端的模块所占的像素长度dlower,top得到:

其中#upper和#lower分别为上、下两部分垂直定位图形中黑白交替的数量,也就是nv,upper和nv,lower的整数部分。

图像大小调整和拼接

在这一步中,原先还原的二维码图像的上、下两部分将由正方形图像调整为其原始的长宽比。通过透视还原后二维码图像的上下两部分的宽度w和上一步估计出来的水平方向的模块数量nh,可以计算出模块在透视还原后的大小m:

m=w/nh

从而可以计算透视还原后上部分的二维码图像的长度(高度)hupper:

hupper=nv,upper×m

和下部分的二维码图像的长度(高度)hlower:

hlower=nv,lower×m

从而将上下两部分原本同宽度一样的长度(高度)调整为hupper和hlower,经调整后的结果如图16a和图16b所示,其中图16a示出了经图像大小调整后得到的修正后的第一部分图像(即上部图像),图16b示出了经图像大小调整后得到的修正后的第二部分图像的示意图(即下部图像)。

最后,将上下两部分的二维码图像进行拼接,即可得到还原后的平面二维码图像,如图17所示。还原后的平面二维码图像可以被二维码解码器识别,从而可取得相关信息。

如图18所示,本发明相应提供一种折叠二维码图像的还原装置180,其可包括:

图像预处理单元181,用于对一折叠二维码图像进行预处理,以获取包含有二维码图像信息的预处理后图像;

角点检测单元182,用于对该预处理后图像进行角点检测,以获取该折叠二维码图像的多个校正点,其中所述多个校正点至少包含该折叠二维码图像的顶部角点及位于该折叠二维码图像的折叠线上的角点;

图像还原单元183,用于利用所述角点及所述顶部角点,对该折叠二维码图像进行透视还原,以获取该折叠二维码图像在两个交汇平面中的第一部分图像和第二部分图像;以及

图像拼接单元184,用于对该第一部分图像和该第二部分图像进行拼接,以获取一平面二维码图像。

较佳的,该图像预处理单元包括形态处理模块,用于对该折叠二维码图像进行形态处理,通过对该折叠二维码图像中的不同物体进行区分,提取其中的二维码图像信息,其中该二维码图像信息包含二维码图像的位置信息。

更佳的,该图像预处理单元还可包括:

灰度值转换处理模块,用于对该折叠二维码图像进行灰度值转换处理,以得到一灰度值图像;以及

二值化处理模块,用于对该折叠二维码图像进行二值化处理,以得到一黑白二值图像。

在本发明,该形态处理模块在对该折叠二维码图像进行形态处理时,是使用结构元素对该黑白二值图像进行闭运算,使该黑白二值图像中的二维码图像的边界变得连续;以及是对该黑白二值图像进行填充,以区分二维码图像与其他物体,并获取二维码图像在该黑白二值图像中的位置信息。

较佳的,该角点检测单元可包括:

边缘检测模块,用于使用填充后的该黑白二值图像作为标签图像,并对其进行边缘检测,以获取二维码图像的多个边缘,并得到一边缘标签图像;

线检测模块,用于对该边缘标签图像进行线检测,以提取出该二维码图像的所述多个边缘的边缘信息;以及

角点检测模块,用于利用所述多个边缘的所述边缘信息进行角点检测,以获取该二维码图像的多个顶部角点和位于折叠线上的折叠角点。

在本发明中,该图像还原单元是假设该折叠二维码图像的该第一部分图像和该第二部分图像均从一个单位长度的正方形所投影过来,且所获取的还原后的该第一部分图像和该第二部分图像均为正方形图像。

较佳的,该图像拼接单元可包括:

模块数量估计模块,用于通过模块数量估计方法,分别计算出该二维码图像在水平方向和垂直方向上的模块数量;

图像大小调整模块,用于根据还原后的该二维码图像的该第一部分图像和该第二部分图像的宽度、以及所计算出的水平方向和垂直方向上的模块数量,将还原后的该二维码图像的该第一部分图像和该第二部分图像由正方形调整为其原始的长宽比,以得到修正后的第一部分图像和修正后的第二部分图像;以及

图像拼接模块,用于将该修正后的第一部分图像和该修正后的第二部分图像进行拼接,以得到该平面二维码图像。

在本发明中,该模块数量估计模块是:

在该黑白二值图像中,通过在水平方向上所获取到的两个顶部角点来确定水平定位图形的扫描位置,并根据该水平定位图形的扫描结果来确定该二维码图像在水平方向上的模块数量;

在该黑白二值图像中,通过在垂直方向上所获取到的顶部角点和折叠角点来确定垂直定位图形的扫描位置,并根据该垂直定位图形的扫描结果来确定该二维码图像在垂直方向上的模块数量。

在本发明中,当角点检测步骤检测失败或图像还原步骤还原失败时,该形态处理模块还通过增加结构元素的尺寸,重新进行闭运算步骤。

在本发明中,该图像预处理单元还可进一步包括:

切割模块,用于通过一图像摄取装置获得一摄取图像,并对该摄取图像进行切割处理,以获取具有一预定尺寸的该折叠二维码图像。

如图19所示,本发明还提供一种折叠二维码图像的扫码设备190,其可包括:

一相机单元191,用于摄取一折叠二维码图像;

一如上所述的折叠二维码图像的还原装置180,用于对该折叠二维码图像进行还原,以获取一平面二维码图像;以及

一二维码解码器192,用于对经还原后所得到的该平面二维码图像进行解码。

本发明针对折叠形变这一类型的透视畸变,在不改变图像二维码本身结构的情况下,设计了相关的还原方法及其装置与相关的扫码设备,从而使从位于商品包装的平面交汇处黏贴的图像二维码并从中提取信息成为可能。

虽然本发明已以实施方式揭露如上,然其并非用以限定本发明,任何熟悉此技艺者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰,因此本发明的保护范围当视所附的权利要求书所界定的范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1