一种融合logo图标的堆叠式二维码的识别方法
技术领域
本发明涉及二维码技术,尤其涉及一种融合logo图标的堆叠式二维码的识别方法。
背景技术
二维码因其具有存储量大、保密性高、追踪性高、抗损性强等特点,被广泛运用于各行各业中。目前常见的二维码多为矩阵码(如DM码和QR码),其用黑、白色块表示二进制的1和0,将黑、白色块按一定组合方式堆叠形成二维码,该二维码包括用于定位的定位部和用于存储信息的数据部,但现有的这种矩阵二维码的因其色块比较密集,若想要结合logo图标显示,就需要在二维码中挖去一个空白区域,将logo图标放在空白区域内显示,这样logo图标被压缩得很小,不容易识别,视觉效果差,且二维码也因其本身色块密度不均,需要选择一块独立干净的平整的区域安放码区,受环境影响比较大,如扫码位置直接影响到光线角度等,用户因此需要跑到特定一个位置进行扫码,扫码操作受限。
发明内容
本发明要解决的技术问题,在于提供一种上述融合logo图标的堆叠式二维码的识别方法,实现对融合logo图标的二维码的快速识别,提高扫码效率。
本发明要解决的技术问题是这样实现的:一种上述融合logo图标的堆叠式二维码的识别方法,需提供融合logo图标的堆叠式二维码,所述堆叠式二维码包括上方的码区层和下方的logo图标层,所述码区层包括等距矩阵排列的复数个码区;
每一所述码区包括矩阵式排列的复数行复数列的识别单元,且在同一所述码区内,每相邻两行识别单元之间设有一行空白单元,每相邻两列识别单元之间设有一列空白单元;
每一所述空白单元为由白色模块组成的3×3模块;
每一所述识别单元为由黑色模块和白色模块组成的3×3模块,所述识别单元的3×3模块包括两个黑色模块和7个白色模块,同一所述识别单元中的两个黑色模块之间间隔至少一个白色模块的距离,每一所述识别单元对应存储一个四位二进制串;
所述方法包括如下步骤:
步骤71、获取所述堆叠式二维码的图像,并获取所述图像中所有粒子中心坐标以及粒子的面积值,过滤掉logo图标和面积值不符合要求的粒子;
步骤72、遍历所述粒子,通过计算每一所述粒子的中心坐标与其他粒子的中心坐标之间的距离,将彼此距离最小的两所述粒子进行配对,每两个配对的粒子形成一识别单元;
步骤73、获取一个独立码区所需的复数个识别单元;
步骤74、依次遍历所述识别单元,根据所述识别单元对应的四位二进制串,获得一个独立码区对应的二进制串。
进一步的,所述步骤71中“过滤掉logo图标”具体为:通过logo图标的色块面积或logo图标的颜色或logo图标的灰度值进行过滤;
进一步的,所述步骤71还包括:统计数量最多的且距离最小的两粒子的角度,根据所述角度对所述图像进行旋转,确保所述图像为正的图像。
进一步的,所述步骤72中过滤面积值不符合要求的粒子的具体方式为:采用粒子统计的方法获取出现次数最多的面积值作为标准值,根据所述标准值设定上限值和下限值,过滤掉其中面积值大于所述上限值以及面积值小于所述上限值的粒子。
本发明具有如下优点:
1、由于本发明二维码内部留出足够多的空隙,能够很好的融入其他非编码图形(例如logo图标)之中,因此可以生成大片的编码区域和大片的logo图标,logo图标以均匀的码区作为背景进行展示,较现有的二维码中的logo图标更为清晰明了,且不影响美感。
2、通过堆叠的多个码区形成一个片区,方便用户随意选择一块区域进行扫码操作,实现便捷扫码,且这种均匀分布的堆叠式二维码在解码识别中抗干扰性强,可通过统计的方法区分出属于二维码的模块和非编码的图形,在剔除非编码图形后,利用重复堆叠的二维码可以互相验证,进一步提高二维码鲁棒性,且在出现一部分二维码损坏时,用户还可以使用其他部位进行扫码,不影响正常扫码,大大提高用户扫码体验。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明一种融合logo图标的堆叠式二维码示意图。
图2为本发明单独一个码区示意图。
图3为图2的A部分放大图。
图4为本发明一实施例中识别单元与四位二进制串的对应关系示意图。
图5为本发明一种融合logo图标的堆叠式二维码的识别方法流程图。
具体实施方式
如图1至3所示,本发明一种融合logo图标的堆叠式二维码,包括上方的码区层和下方的logo图标层,所述码区层包括等距矩阵排列的复数个码区;
每一所述码区包括矩阵式排列的复数行复数列的识别单元,且在同一所述码区内,每相邻两行识别单元之间设有一行空白单元,每相邻两列识别单元之间设有一列空白单元;
每一所述空白单元为由白色模块组成的3×3模块;
每一所述识别单元为由黑色模块和白色模块组成的3×3模块,所述识别单元的3×3模块包括两个黑色模块和7个白色模块,同一所述识别单元中的两个黑色模块之间间隔至少一个白色模块的距离,每一所述识别单元对应存储一个四位二进制串。
所述码区与码区之间通过空白单元分隔开或者所述码区与码区之间设有定位区,所述定位区由识别单元和空白单元相间设置而成,且所述定位区中的识别单元根据需要指定一种或多种识别单元按一定规律排列。
所述黑色模块与白色模块均为正方形色块或圆形色块。
在所述logo图标层上将其与识别单元的黑色模块交叠部位进行镂空处理,用于显示黑色模块,且所述区域大小略大于所述黑色模块大小,使得logo图标位置的粒子能够正常识别。
所述码区层的黑色模块与所述logo图标层可设置为不同灰度或不同色彩,以便于区分。
如图5所示,本发明的一种上述融合logo图标的堆叠式二维码的识别方法,包括如下步骤:
步骤71、获取所述堆叠式二维码的图像,并获取所述图像中所有粒子中心坐标以及粒子的面积值,过滤掉logo图标和面积值不符合要求的粒子,其中,“过滤掉logo图标”具体为:通过logo图标的色块面积或logo图标的颜色或logo图标的灰度值进行过滤;其中,过滤面积值不符合要求的粒子的具体方式为:采用粒子统计的方法获取出现次数最多的面积值作为标准值,根据所述标准值设定上限值和下限值,过滤掉其中面积值大于所述上限值以及面积值小于所述上限值的粒子;该步骤71还包括:统计数量最多的且距离最小的两粒子的角度,根据所述角度对所述图像进行旋转,确保所述图像为正的图像;
步骤72、遍历所述粒子,通过计算每一所述粒子的中心坐标与其他粒子的中心坐标之间的距离,将彼此距离最小的两所述粒子进行配对,每两个配对的粒子形成一识别单元;
步骤73、获取一个独立码区所需的复数个识别单元;
步骤74、依次遍历所述识别单元,根据所述识别单元对应的四位二进制串,获得一个独立码区对应的二进制串。
下面结合一具体实施例对本发明做进一步说明:
请再参阅图1至图5,本发明的一种融合logo图标的堆叠式二维码,包括上方的码区层和下方的logo图标层,所述码区层包括等距矩阵排列的复数个码区;
每一所述码区包括矩阵式排列的复数行复数列的识别单元,且在同一所述码区内,每相邻两行识别单元之间设有一行空白单元,每相邻两列识别单元之间设有一列空白单元;
每一所述空白单元为由白色模块组成的3×3模块(见图3中的a);
每一所述识别单元为由黑色模块和白色模块组成的3×3模块(见图中的b),所述识别单元的3×3模块包括两个黑色模块和7个白色模块,同一所述识别单元中的两个黑色模块之间间隔至少一个白色模块的距离,每一所述识别单元对应存储一个四位二进制串,如图4所示,按照黑色模块的不同位置组合的识别单元有16种,恰好匹配四位二进制的16种数值,预先对每一种识别单元绑定一个四位二进制串,使得一种识别单元对应一个四位二进制数。
所述码区与码区之间还可通过设置定位区进行快速定位,提高识别效率,所述定位区由识别单元和空白单元相间设置而成,所述定位区与所述码区之间间隔一排空白单元格(即一行或一列的空白单元),且所述定位区中的识别单元可根据需要指定一种或多种识别单元按一定规律排列,以便快速区分和定位,例如所述定位区的识别单元可以指定都用两黑色模块位置关系为水平设置的这一种识别单元,也可以根据需要选择几种识别单元按一定的规则进行排列,且可以指定定位区的十字交叉处的识别单元为其中两黑色模块位置关系为水平设置或竖直设置的识别单元,以便与码区的识别单元排列关系区别开,从而实现快速定位,也便于调整图像方向并快速获取码区位置。
所述黑色模块与白色模块可以为大小形状一致的色块,例如均为正方形色块或圆形色块等。
在扫描本发明的带定位区的堆叠式二维码时,只需要随意扫码其中一部分二维码,只需要识别其中一个码区即可进行解码,具体步骤如下:
获取所述带定位区的堆叠式二维码的图像,对所述带定位区的堆叠式二维码图像进行滤波(比如高斯滤波或均值滤波等);
获取上述图像中所有粒子中心坐标以及粒子的面积值,过滤掉logo图标和面积值不符合要求的粒子,其中,过滤面积值不符合要求的粒子具体为:筛选掉其中面积值大于一上限值和面积值小于上限值的粒子,得到符合条件的粒子,具体的上限值与下限值可根据统计所有粒子面积值,以出现次数最多的面积值作为标准值,在标准值增加或减少一定值来设定上限值和下限值。
其中,过滤logo图标和底色的方式可采用以下三种:
(1)利用彩色相机获取彩色图像,将像素颜色通道值不同的码区黑色模块与logo图标以及底色区分开,由于黑色模块大小一致的数量众多,可以很快判断出属于模块的色彩,再把这种色彩以外的颜色滤掉,这样就可以分离码区和logo图标,进行后面的操作;
(2)利用灰度区分,做直方图,利用二值化方法排除掉底色部分的色素,再对剩下的像素进行二值化,区分出码区的灰度和logo图标的灰度,提取出粒子的像素进行后面操作,例如设计时让logo图标在灰度图中具有较低灰度值,再将生成的码区以高灰度值将其覆盖,重复部分以二维码模块为准,识码的时候可以用二值化的方法把logo图标的像素滤除也可以找小粒子确定二维码的灰度区域;
(3)在形状上进行处理,将和logo图标交叠的二维码模块保留,logo图标镂空(即在所述logo图标层上将其与识别单元的黑色模块交叠部位抠去一块区域,用于显示黑色模块,且所述区域大小略大于所述黑色模块大小,使得logo图标位置的粒子能够正常识别),再利用面积排除,先进行二值化,用二值图找粒子的方法将面积大小的明显不同于黑色模块的logo图标进行过滤。
统计数量最多的且距离最小的两粒子的角度,根据所述角度对所述图像进行旋转正位,得到正的图像,便于识别,具体旋转方式可通过统计数量最多的且距离最小的两粒子(粒子对应的是黑色模块)的角度,根据所述角度对所述图像进行旋转正位,由于当识别单元中两个黑色模块处于在同一水平线上或同一竖直线上时,两个黑色模块的距离是各种模式中距离最小的模式,因此可通过统计的方法查找这些0°或90°的识别单元,并利用这些识别单元对图像信息位置的调整;
遍历所述粒子,通过计算每一所述粒子的中心坐标与其他粒子的中心坐标之间的距离,将彼此距离最小的两所述粒子进行配对,每两个配对的粒子形成一识别单元;
按预先设定的协议查找定位区,根据所述定位区找到一个独立的码区所需的复数个识别单元,即通过找到定位区,根据定位区的位置找一个码区,可以为一个完整码区,也可以是在定位区四周的识别单元拼接成的一个码区进行解码,大大减小了所需要的最小解码区域;在没有定位区的情况下,可通过重复部位判断一个码区的识别单元。
依次遍历所述码区对应的识别单元,根据所述识别单元对应的四位二进制串,获得所述一个码区对应的二进制串,之后可根据需要选择现有的二维码(比如QR算法、DM解码等)解码算法或自定义的解码方法做进一步解码操作。
本发明二维码内部留出足够多的空隙,能够很好的融入其他非编码图形(例如logo图标)之中,因此可以生成大片的编码区域和大片的logo图标,该logo图标的大小明显大于一个识别单元的大小,logo图标以均匀的码区作为背景进行展示,较现有的二维码中的logo图标更为显目,且不影响美感。通过堆叠的多个码区形成一个片区,方便用户随意选择一块区域进行扫码操作,实现便捷扫码,且这种均匀分布的堆叠式二维码在解码识别中抗干扰性强,可通过统计的方法区分出属于二维码的模块和非编码的图形,在剔除非编码图形后,利用重复堆叠的二维码可以互相验证,进一步提高二维码鲁棒性,且在出现一部分二维码损坏时,用户还可以使用其他部位进行扫码,保证正常扫码,大大提高用户扫码体验,在本发明中,剔除编码图形的方式可以通过颜色、形状、面积、灰度等方式与码区进行区分与筛选,提高准确度,另外还通过设置定位区,以便快速查找到一个解码用的码区所需的识别单元,大大提高解码效率,且当存在不同码区堆叠的时候,还可以通过所述定位区去判断扫描的码区具体是哪一个码区。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。