一种快速定位拍码距离的方法及系统转让专利

申请号 : CN201410460548.4

文献号 : CN105469015B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 邓伟刘燕李伟田德振

申请人 : 北京慧眼智行科技有限公司

摘要 :

本发明提供一种快速定位拍码距离的方法及系统,在二维码的边界画圆或一段以上圆弧,使用移动终端定位,如果定位到的为圆,则直接计算该圆的圆面积;如果定位到的为一段以上圆弧,则计算该圆弧所属圆的圆面积;然后,通过比较计算得到的圆面积与查找到的最优圆面积范围,自动判断图像采集设备与被识读二维码之间的距离,并给出调整方向的提醒信息,能够快速得到符合解码要求的图像采集设备与被识读二维码之间的距离,从而采集到清晰的二维码图像,进而方便后续解码;避免使用者盲目调整图像采集设备与被识读二维码之间的距离,从而提高了使用者的体验度。

权利要求 :

1.一种快速定位拍码距离的方法,其特征在于,包括以下步骤:

S1,生成原始二维码,所述原始二维码为由n*m个二维码单元构成的矩阵;其中,n、m均为整数,n与m相等或不相等;并且,各个所述二维码单元的码点排布方式完全相同,每一个所述二维码单元均具有唯一的参考码点O1;所述二维码单元为由若干个码点排列形成的正方形矩阵,该正方形矩阵的边长为D1;

S2,在所述原始二维码内部画出一个圆,其圆心为O2,其直径为D2;并且,所画出的圆需满足以下约束条件:其中,LO1O2代表圆心O2与最近的参考码点O1之间的距离值;

S3,删除所述原始二维码中位于所画出的圆之外的码点,得到以所画出的圆为边界线的第一次处理后的二维码;

S4,对所述第一次处理后的二维码进行进一步处理,删除圆的x段圆弧,得到第二次处理后的二维码;其中,x≥0,x为整数;其中,该第二次处理后的二维码的边界为圆或一段以上圆弧;

S5,所述第二次处理后的二维码即为最终用于实际流通的二维码;当需要使用移动终端识别该实际流通的二维码时,使所述移动终端的图像采集设备朝向所述实际流通的二维码,所述图像采集设备与所述实际流通的二维码之间的距离为L1;然后,所述图像采集设备采集该实际流通的二维码的二维码图像,并将采集到的该二维码图像传输给所述移动终端的处理器;

S6,所述处理器对所述二维码图像进行二值化处理,得到二值化的二维码图像;

S7,所述处理器去除所述二值化的二维码图像的噪声,得到处理后二维码图像;

S8,所述处理器分析所述处理后二维码图像,定位到位于所述处理后二维码图像的边界的圆或一段以上圆弧;

S9,如果所述处理器定位到的为圆,则直接计算该圆的圆面积;如果所述处理器定位到的为一段以上圆弧,则计算该圆弧所属圆的圆面积;

S10,所述处理器获得所述移动终端的屏幕分辨率和预览分辨率,然后,查找预存储的配置关系表,获得与该屏幕分辨率和该预览分辨率唯一绑定的最优圆面积范围;

S11,所述处理器比较S9计算得到的圆面积与S10查找到的最优圆面积范围,如果S9计算得到的圆面积属于S10查找到的最优圆面积范围之内,则表明不需要调整所述图像采集设备与所述实际流通的二维码之间的距离L1,直接存储当前采集到的该实际流通的二维码的二维码图像,用于后续解码;否则,执行S12;

S12,所述处理器进一步判断S9计算得到的圆面积是否大于S10查找到的最优圆面积范围,如果大于,则表明所述图像采集设备与所述实际流通的二维码之间的距离L1较小,向移动终端的显示设备推送需要增大图像采集设备与所述实际流通的二维码之间的距离的提醒消息,待使用者调整所述图像采集设备与所述实际流通的二维码之间的距离后,再重复执行S5-S12,直到S9计算得到的圆面积属于S10查找到的最优圆面积范围之内;

如果小于,则表明所述图像采集设备与所述实际流通的二维码之间的距离L1较大,向移动终端的显示设备推送需要减小图像采集设备与所述实际流通的二维码之间的距离的提醒消息,待使用者调整所述图像采集设备与所述实际流通的二维码之间的距离后,再重复执行S5-S12,直到S9计算得到的圆面积属于S10查找到的最优圆面积范围之内。

2.根据权利要求1所述的快速定位拍码距离的方法,其特征在于,S4中,当第二次处理后的二维码边界为一段以上圆弧时,需满足以下条件:如果圆弧的数量为一个,则所述圆弧为1/2圆;

如果圆弧的数量为两个,则每个圆弧的长度不小于圆周长的四分之一;

如果圆弧的数量为3-11个,则每个圆弧的长度不小于圆周长的十二分之一。

3.根据权利要求1所述的快速定位拍码距离的方法,其特征在于,S7具体为:S7.1,所述二值化的二维码图像由若干个黑颜色像素点和若干个白颜色像素点组成;

标记所述二值化的二维码图像的连通区域,分别计算每一个连通区域包含的黑颜色像素点数量;其中,所述连通区域为一连续区域,且该连续区域仅由黑颜色像素点连续组成;

S7.2,定位到所标记的连通区域中位于所述二值化的二维码图像的边界区域,该边界区域即为S4得到的圆或圆弧;

将所标记的其他任一连通区域Q1所包含的黑颜色像素点数量记为N1;将圆或圆弧连通区域所包含的黑颜色像素点数量记为N2,将二维码图像中每个码点所包含的黑颜色像素点数量记为N3;

如果N1大于N3的倍数达到设定阈值,且小于N2,则连通区域Q1为大噪声,去除连通区域Q1;

如果N1大于N2,则连通区域Q1为大噪声,去除连通区域Q1;

如果N1小于N3,则连通区域Q1为小噪声,去除连通区域Q1。

4.根据权利要求3所述的快速定位拍码距离的方法,其特征在于,S8具体为:对于所标记的圆或圆弧连通区域,提取圆或圆弧连通区域的单像素边缘,即为S8定位到的圆或一段以上圆弧。

5.根据权利要求1所述的快速定位拍码距离的方法,其特征在于,S9中,如果所述处理器定位到的为一段以上圆弧,则采用霍夫变换方法寻找到该圆弧所属圆,进而再计算该圆弧所属圆的圆面积。

6.一种快速定位拍码距离的系统,其特征在于,包括:服务器和移动终端;

所述服务器用于生成最终用于实际流通的二维码,包括:

原始二维码生成模块,用于生成原始二维码,所述原始二维码为由n*m个二维码单元构成的矩阵;其中,n、m均为整数,n与m相等或不相等;并且,各个所述二维码单元的码点排布方式完全相同,每一个所述二维码单元均具有唯一的参考码点O1;所述二维码单元为由若干个码点排列形成的正方形矩阵,该正方形矩阵的边长为D1;

绘画模块,用于在所述原始二维码生成模块所生成的原始二维码内部画出一个圆,其圆心为O2,其直径为D2;并且,所画出的圆需满足以下约束条件:其中,LO1O2代表圆心O2与最近的参考码点O1之间的距离值;

删除模块,用于删除所述原始二维码中位于所画出的圆之外的码点,得到以所画出的圆为边界线的第一次处理后的二维码;

处理模块,用于对经所述删除模块处理后的二维码进行进一步处理,删除圆的x段圆弧,得到第二次处理后的二维码;其中,x≥0,x为整数;其中,该第二次处理后的二维码的边界为圆或一段以上圆弧;所述第二次处理后的二维码即为最终用于实际流通的二维码;

所述移动终端用于识读所述服务器所生成的最终用于实际流通的二维码,包括:图像采集设备,用于当图像采集设备与所述实际流通的二维码之间的距离为L1时,采集该实际流通的二维码的二维码图像;

二值化处理模块,用于对所述图像采集设备采集的二维码图像进行二值化处理,得到二值化的二维码图像;

噪声处理模块,用于对所述二值化处理模块处理后的二维码图像去除噪声,得到处理后二维码图像;

定位模块,用于定位所述噪声处理模块处理后二维码图像的边界的圆或一段以上圆弧;

圆面积计算模块,如果所述定位模块定位到的为圆,则直接计算该圆的圆面积;如果所述定位模块定位到的为一段以上圆弧,则计算该圆弧所属圆的圆面积;

获取模块,用于获取所述移动终端的屏幕分辨率和预览分辨率;

配置关系表,用于存储屏幕分辨率、预览分辨率与最优圆面积范围的映射关系;

查找模块,用于以所述获取模块获取到的屏幕分辨率和预览分辨率为查询关键词,查找所述配置关系表,获得与该屏幕分辨率和该预览分辨率唯一绑定的最优圆面积范围;

比较模块,用于比较所述圆面积计算模块计算得到的圆面积是否属于所述查找模块查找到的最优圆面积范围;

存储模块,用于当所述比较模块比较到所述圆面积计算模块计算得到的圆面积属于所述查找模块查找到的最优圆面积范围时,直接存储当前采集到的该实际流通的二维码的二维码图像,用于后续解码;

调整通知模块,用于当所述比较模块比较到所述圆面积计算模块计算得到的圆面积大于所述查找模块查找到的最优圆面积范围时,表明所述图像采集设备与所述实际流通的二维码之间的距离L1较小,向移动终端的显示设备推送需要增大图像采集设备与所述实际流通的二维码之间的距离的提醒消息;

用于当所述比较模块比较到所述圆面积计算模块计算得到的圆面积小于所述查找模块查找到的最优圆面积范围时,表明所述图像采集设备与所述实际流通的二维码之间的距离L1较大,向移动终端的显示设备推送需要减小图像采集设备与所述实际流通的二维码之间的距离的提醒消息。

7.根据权利要求6所述的快速定位拍码距离的系统,其特征在于,所述处理模块具体用于:删除圆的x段圆弧后,如果所得到的二维码边界为一段以上圆弧时,需满足以下条件:如果圆弧的数量为一个,则所述圆弧为1/2圆;

如果圆弧的数量为两个,则每个圆弧的长度不小于圆周长的四分之一;

如果圆弧的数量为3-11个,则每个圆弧的长度不小于圆周长的十二分之一。

8.根据权利要求6所述的快速定位拍码距离的系统,其特征在于,所述噪声处理模块具体用于:标记子模块,用于标记所述二值化的二维码图像的连通区域,分别计算每一个连通区域包含的黑颜色像素点数量;其中,所述连通区域为一连续区域,且该连续区域仅由黑颜色像素点连续组成;

定位子模块,用于定位到所述标记子模块所标记的连通区域中位于所述二值化的二维码图像的边界区域,该边界区域即为圆或圆弧;

比较并去除子模块,将所标记的其他任一连通区域Q1所包含的黑颜色像素点数量记为N1;将圆或圆弧连通区域所包含的黑颜色像素点数量记为N2,将二维码图像中每个码点所包含的黑颜色像素点数量记为N3;

如果N1大于N3的倍数达到设定阈值,且小于N2,则连通区域Q1为大噪声,去除连通区域Q1;

如果N1大于N2,则连通区域Q1为大噪声,去除连通区域Q1;

如果N1小于N3,则连通区域Q1为小噪声,去除连通区域Q1。

9.根据权利要求8所述的快速定位拍码距离的系统,其特征在于,所述定位模块具体用于:提取圆或圆弧连通区域的单像素边缘,即为定位到的圆或一段以上圆弧。

10.根据权利要求6所述的快速定位拍码距离的系统,其特征在于,所述圆面积计算模块具体用于:如果所述定位模块定位到的为一段以上圆弧,则采用霍夫变换方法寻找到该圆弧所属圆,进而再计算该圆弧所属圆的圆面积。

说明书 :

一种快速定位拍码距离的方法及系统

技术领域

[0001] 本发明属于二维码技术领域,具体涉及一种快速定位拍码距离的方法及系统。

背景技术

[0002] 目前,二维码广泛应用于服装业、食品业、医药、五金交电等多种行业,并有进一步发展扩大的趋势。随着手机等移动终端以及通信技术的迅猛发展,人们通过手机等移动终端直接识读二维码的需求越来越大。
[0003] 现有技术中,人们通过手机等移动终端识读二维码时,过程为:(1)拍码:移动终端摄像头朝向被识读二维码,通过摄像头采集二维码图像并显示在移动终端屏幕上;使用者通过肉眼观察移动终端屏幕上的二维码图像是否符合标准,如果不符合标准,则不断调整移动终端摄像头到被识读二维码的距离,直接移动终端屏幕上显示符合标准的二维码图像为止。
[0004] 具体的,移动终端屏幕上显示的二维码图像标准包括:二维码清晰度、采集的二维码码点的面积大小、采集的二维码码点数量等;例如,对于点阵式二维码,其由若干个相同的二维码单元排列而成,如果采集的二维码图像少于一个二维码单元,则表明摄像头距离二维码图像太近,需要将摄像头向远离二维码的方向移动;如果采集的二维码单元的数量过多,或者,采集的二维码码点过小,则表明摄像头距离二维码图像太远,需要将摄像头向靠近二维码的方向移动。(2)解码:对拍码得到的二维码图像进行解码。
[0005] 由此可见,使用者需要通过经验不断调整摄像头与被识读二维码之间的距离,一方面,对于缺乏相关经验的使用者,如果使用者不清楚移动终端屏幕上显示的二维码图像标准,既使通过多次尝试,也难以采集到符合标准的二维码图像,进而无法正确解码;另一方面,对于具有相关经验的使用者,也需要通过多次尝试才能采集到符合标准的二维码,具有拍码效率低的不足。

发明内容

[0006] 针对现有技术存在的缺陷,本发明提供一种快速定位拍码距离的方法及系统,可有效提高拍码效率。
[0007] 本发明采用的技术方案如下:
[0008] 本发明提供一种快速定位拍码距离的方法,包括以下步骤:
[0009] S1,生成原始二维码,所述原始二维码为由n*m个二维码单元构成的矩阵;其中,n、m均为整数,n与m相等或不相等;并且,各个所述二维码单元的码点排布方式完全相同,每一个所述二维码单元均具有唯一的参考码点O1;所述二维码单元为由若干个码点排列形成的正方形矩阵,该正方形矩阵的边长为D1;
[0010] S2,在所述原始二维码内部画出一个圆,其圆心为O2,其直径为D2;并且,所画出的圆需满足以下约束条件:
[0011]
[0012]
[0013] 其中,LO1O2代表圆心O2与最近的参考码点O1之间的距离值;
[0014] S3,删除所述原始二维码中位于所画出的圆之外的码点,得到以所画出的圆为边界线的第一次处理后的二维码;
[0015] S4,对所述第一次处理后的二维码进行进一步处理,删除圆的x段圆弧,得到第二次处理后的二维码;其中,x≥0,x为整数;其中,该第二次处理后的二维码的边界为圆或一段以上圆弧;
[0016] S5,所述第二次处理后的二维码即为最终用于实际流通的二维码;当需要使用移动终端识别该实际流通的二维码时,使所述移动终端的图像采集设备朝向所述实际流通的二维码,所述图像采集设备与所述实际流通的二维码之间的距离为L1;然后,所述图像采集设备采集该实际流通的二维码的二维码图像,并将采集到的该二维码图像传输给所述移动终端的处理器;
[0017] S6,所述处理器对所述二维码图像进行二值化处理,得到二值化的二维码图像;
[0018] S7,所述处理器去除所述二值化的二维码图像的噪声,得到处理后二维码图像;
[0019] S8,所述处理器分析所述处理后二维码图像,定位到位于所述处理后二维码图像的边界的圆或一段以上圆弧;
[0020] S9,如果所述处理器定位到的为圆,则直接计算该圆的圆面积;如果所述处理器定位到的为一段以上圆弧,则计算该圆弧所属圆的圆面积;
[0021] S10,所述处理器获得所述移动终端的屏幕分辨率和预览分辨率,然后,查找预存储的配置关系表,获得与该屏幕分辨率和该预览分辨率唯一绑定的最优圆面积范围;
[0022] S11,所述处理器比较S9计算得到的圆面积与S10查找到的最优圆面积范围,如果S9计算得到的圆面积属于S10查找到的最优圆面积范围之内,则表明不需要调整所述图像采集设备与所述实际流通的二维码之间的距离L1,直接存储当前采集到的该实际流通的二维码的二维码图像,用于后续解码;否则,执行S12;
[0023] S12,所述处理器进一步判断S9计算得到的圆面积是否大于S10查找到的最优圆面积范围,如果大于,则表明所述图像采集设备与所述实际流通的二维码之间的距离L1较小,向移动终端的显示设备推送需要增大图像采集设备与所述实际流通的二维码之间的距离的提醒消息,待使用者调整所述图像采集设备与所述实际流通的二维码之间的距离后,再重复执行S5-S12,直到S9计算得到的圆面积属于S10查找到的最优圆面积范围之内;
[0024] 如果小于,则表明所述图像采集设备与所述实际流通的二维码之间的距离L1较大,向移动终端的显示设备推送需要减小图像采集设备与所述实际流通的二维码之间的距离的提醒消息,待使用者调整所述图像采集设备与所述实际流通的二维码之间的距离后,再重复执行S5-S12,直到S9计算得到的圆面积属于S10查找到的最优圆面积范围之内。
[0025] 优选的,S4中,当第二次处理后的二维码边界为一段以上圆弧时,需满足以下条件:
[0026] 如果圆弧的数量为一个,则所述圆弧为1/2圆;
[0027] 如果圆弧的数量为两个,则每个圆弧的长度不小于圆周长的四分之一;
[0028] 如果圆弧的数量为3-11个,则每个圆弧的长度不小于圆周长的十二分之一。
[0029] 优选的,S7具体为:
[0030] S7.1,所述二值化的二维码图像由若干个黑颜色像素点和若干个白颜色像素点组成;
[0031] 标记所述二值化的二维码图像的连通区域,分别计算每一个连通区域包含的黑颜色像素点数量;其中,所述连通区域为一连续区域,且该连续区域仅由黑颜色像素点连续组成;
[0032] S7.2,定位到所标记的连通区域中位于所述二值化的二维码图像的边界区域,该边界区域即为S4得到的圆或圆弧;
[0033] 将所标记的其他任一连通区域Q1所包含的黑颜色像素点数量记为N1;将圆或圆弧连通区域所包含的黑颜色像素点数量记为N2,将二维码图像中每个码点所包含的黑颜色像素点数量记为N3;
[0034] 如果N1大于N3的倍数达到设定阈值,且小于N2,则连通区域Q1为大噪声,去除连通区域Q1;
[0035] 如果N1大于N2,则连通区域Q1为大噪声,去除连通区域Q1;
[0036] 如果N1小于N3,则连通区域Q1为小噪声,去除连通区域Q1。
[0037] 优选的,S8具体为:对于所标记的圆或圆弧连通区域,提取圆或圆弧连通区域的单像素边缘,即为S8定位到的圆或一段以上圆弧。
[0038] 优选的,S9中,如果所述处理器定位到的为一段以上圆弧,则采用霍夫变换方法寻找到该圆弧所属圆,进而再计算该圆弧所属圆的圆面积。
[0039] 本发明还提供一种快速定位拍码距离的系统,包括:服务器和移动终端;
[0040] 所述服务器用于生成最终用于实际流通的二维码,包括:
[0041] 原始二维码生成模块,用于生成原始二维码,所述原始二维码为由n*m个二维码单元构成的矩阵;其中,n、m均为整数,n与m相等或不相等;并且,各个所述二维码单元的码点排布方式完全相同,每一个所述二维码单元均具有唯一的参考码点O1;所述二维码单元为由若干个码点排列形成的正方形矩阵,该正方形矩阵的边长为D1;
[0042] 绘画模块,用于在所述原始二维码生成模块所生成的原始二维码内部画出一个圆,其圆心为O2,其直径为D2;并且,所画出的圆需满足以下约束条件:
[0043]
[0044]
[0045] 其中,LO1O2代表圆心O2与最近的参考码点O1之间的距离值;
[0046] 删除模块,用于删除所述原始二维码中位于所画出的圆之外的码点,得到以所画出的圆为边界线的第一次处理后的二维码;
[0047] 处理模块,用于对经所述删除模块处理后的二维码进行进一步处理,删除圆的x段圆弧,得到第二次处理后的二维码;其中,x≥0,x为整数;其中,该第二次处理后的二维码的边界为圆或一段以上圆弧;所述第二次处理后的二维码即为最终用于实际流通的二维码;
[0048] 所述移动终端用于识读所述服务器所生成的最终用于实际流通的二维码,包括:
[0049] 图像采集设备,用于当图像采集设备与所述实际流通的二维码之间的距离为L1时,采集该实际流通的二维码的二维码图像;
[0050] 二值化处理模块,用于对所述图像采集设备采集的二维码图像进行二值化处理,得到二值化的二维码图像;
[0051] 噪声处理模块,用于对所述二值化处理模块处理后的二维码图像去除噪声,得到处理后二维码图像;
[0052] 定位模块,用于定位所述噪声处理模块处理后二维码图像的边界的圆或一段以上圆弧;
[0053] 圆面积计算模块,如果所述定位模块定位到的为圆,则直接计算该圆的圆面积;如果所述定位模块定位到的为一段以上圆弧,则计算该圆弧所属圆的圆面积;
[0054] 获取模块,用于获取所述移动终端的屏幕分辨率和预览分辨率;
[0055] 配置关系表,用于存储屏幕分辨率、预览分辨率与最优圆面积范围的映射关系;
[0056] 查找模块,用于以所述获取模块获取到的屏幕分辨率和预览分辨率为查询关键词,查找所述配置关系表,获得与该屏幕分辨率和该预览分辨率唯一绑定的最优圆面积范围;
[0057] 比较模块,用于比较所述圆面积计算模块计算得到的圆面积是否属于所述查找模块查找到的最优圆面积范围;
[0058] 存储模块,用于当所述比较模块比较到所述圆面积计算模块计算得到的圆面积属于所述查找模块查找到的最优圆面积范围时,直接存储当前采集到的该实际流通的二维码的二维码图像,用于后续解码;
[0059] 调整通知模块,用于当所述比较模块比较到所述圆面积计算模块计算得到的圆面积大于所述查找模块查找到的最优圆面积范围时,表明所述图像采集设备与所述实际流通的二维码之间的距离L1较小,向移动终端的显示设备推送需要增大图像采集设备与所述实际流通的二维码之间的距离的提醒消息;
[0060] 用于当所述比较模块比较到所述圆面积计算模块计算得到的圆面积小于所述查找模块查找到的最优圆面积范围时,表明所述图像采集设备与所述实际流通的二维码之间的距离L1较大,向移动终端的显示设备推送需要减小图像采集设备与所述实际流通的二维码之间的距离的提醒消息。
[0061] 优选的,所述处理模块具体用于:删除圆的x段圆弧后,如果所得到的二维码边界为一段以上圆弧时,需满足以下条件:
[0062] 如果圆弧的数量为一个,则所述圆弧为1/2圆;
[0063] 如果圆弧的数量为两个,则每个圆弧的长度不小于圆周长的四分之一;
[0064] 如果圆弧的数量为3-11个,则每个圆弧的长度不小于圆周长的十二分之一。
[0065] 优选的,所述噪声处理模块具体用于:
[0066] 标记子模块,用于标记所述二值化的二维码图像的连通区域,分别计算每一个连通区域包含的黑颜色像素点数量;其中,所述连通区域为一连续区域,且该连续区域仅由黑颜色像素点连续组成;
[0067] 定位子模块,用于定位到所述标记子模块所标记的连通区域中位于所述二值化的二维码图像的边界区域,该边界区域即为圆或圆弧;
[0068] 比较并去除子模块,将所标记的其他任一连通区域Q1所包含的黑颜色像素点数量记为N1;将圆或圆弧连通区域所包含的黑颜色像素点数量记为N2,将二维码图像中每个码点所包含的黑颜色像素点数量记为N3;
[0069] 如果N1大于N3的倍数达到设定阈值,且小于N2,则连通区域Q1为大噪声,去除连通区域Q1;
[0070] 如果N1大于N2,则连通区域Q1为大噪声,去除连通区域Q1;
[0071] 如果N1小于N3,则连通区域Q1为小噪声,去除连通区域Q1。
[0072] 优选的,所述定位子模块具体用于:提取圆或圆弧连通区域的单像素边缘,即为定位到的圆或一段以上圆弧。
[0073] 优选的,所述圆面积计算模块具体用于:
[0074] 如果所述定位模块定位到的为一段以上圆弧,则采用霍夫变换方法寻找到该圆弧所属圆,进而再计算该圆弧所属圆的圆面积。
[0075] 本发明的有益效果如下:
[0076] 本发明提供的快速定位拍码距离的方法及系统,通过程序自动判断图像采集设备与被识读二维码之间的距离,并给出调整方向的提醒信息,能够快速得到符合解码要求的图像采集设备与被识读二维码之间的距离,从而采集到清晰的二维码图像,进而方便后续解码;避免使用者盲目调整图像采集设备与被识读二维码之间的距离,从而提高了使用者的体验度。

附图说明

[0077] 图1为本发明提供的快速定位拍码距离的方法流程示意图;
[0078] 图2为本发明提供的一种原始二维码的具体示例图;
[0079] 图3为在另一个位置画圆的具体示例图;
[0080] 图4为一种第一次处理后的二维码示意图;
[0081] 图5为另一种第一次处理后的二维码示意图;
[0082] 图6为二值化的二维码图像中包含的连通区域的示意图;
[0083] 图7为本发明提供的一种快速定位拍码距离的系统结构示意图。

具体实施方式

[0084] 以下结合附图对本发明进行详细说明:
[0085] 如图1所示,本发明提供一种快速定位拍码距离的方法,包括以下步骤:
[0086] S1,生成原始二维码,所述原始二维码为由n*m个二维码单元构成的矩阵;其中,n、m均为整数,n与m相等或不相等;并且,各个所述二维码单元的码点排布方式完全相同,每一个所述二维码单元均具有唯一的参考码点O1;所述二维码单元为由若干个码点排列形成的正方形矩阵,该正方形矩阵的边长为D1;
[0087] 参考图2,为由5*5=25个二维码单元构成的矩阵;由图2可以看出,这25个二维码单元的码点排布方式完全相同。并且,每一个二维码单元均具有一个用于确定二维码方向的参考码点,例如,位于第2行第2列的二维码单元,其参考码点即为用方框特殊示出的O1。
[0088] 另外,需要强调的是,对于本发明所提供的这种原始二维码,其虽然由n*m个二维码单元构成,但是,各个二维码单元均可解出相同的码值,并且,每个二维码单元所解出的码值即为整体的原始二维码码值。理解这一点,方便对S2的约束进行理解。
[0089] S2,在所述原始二维码内部画出一个圆,其圆心为O2,其直径为D2;并且,所画出的圆需满足以下约束条件:
[0090]
[0091]
[0092] 其中,LO1O2代表圆心O2与最近的参考码点O1之间的距离值;
[0093] 其中, 的原因为:通过这个约束,能够保证所画出的圆能够覆盖至少一个二维码单元面积。当 时,所画出的圆外切一个二维码单元。
[0094] 仍然参考图2,所示出的圆即为一种满足该约束所画出的圆;由图2可知,所画出的圆并未包括一个完整的二维码单元,也就是说,并未包括图2中25个二维码单元中的任意一个二维码单元,但是,其所包含的码点能够拼接出一个完整的二维码单元,即能解出有意义的码值。
[0095] 的原因为:由于所画出的圆用于后续过程中对图像传感器与码点之间距离调整的参考,如果D2过大,则需要使图像传感器远离二维码,才能够采集完整的圆,这样将导致所采集的二维码码点过小,具有不易识读二维码的问题,因此,在此设置了的约束。
[0096] 在满足上述约束的情况下,可以任意画出各种位置的圆。如图3所示,为在另一个位置画圆的示意图。
[0097] S3,删除所述原始二维码中位于所画出的圆之外的码点,得到以所画出的圆为边界线的第一次处理后的二维码;
[0098] 如图4所示,为一种第一次处理后的二维码示意图。由于圆内包含能够拼接为一个完整二维码单元的点阵,因此,将原始二维码中位于所画出的圆之外的码点删除,仍然能够对圆内的点阵进行正确的解码。如图5所示,为另一种第一次处理后的二维码示意图,共包括两个圆弧。
[0099] S4,对所述第一次处理后的二维码进行进一步处理,删除圆的x段圆弧,得到第二次处理后的二维码;其中,x≥0,x为整数;其中,该第二次处理后的二维码的边界为圆或一段以上圆弧;
[0100] 具体的,由于所画出的圆弧在后续过程中,一方面,需要确定圆弧所属圆的直径;另一方面,为防止圆弧在后续过程中被误认为噪声而除去,因此,考虑多种因素后,可对所得到的圆弧进行一定的限制,作为一种优选方式,圆弧需满足以下条件:
[0101] 如果圆弧的数量为一个,则所述圆弧为1/2圆;
[0102] 如果圆弧的数量为两个,则每个圆弧的长度不小于圆周长的四分之一;
[0103] 如果圆弧的数量为3-11个,则每个圆弧的长度不小于圆周长的十二分之一。
[0104] S5,所述第二次处理后的二维码即为最终用于实际流通的二维码;
[0105] 当需要使用移动终端识别该实际流通的二维码时,使所述移动终端的图像采集设备朝向所述实际流通的二维码,所述图像采集设备与所述实际流通的二维码之间的距离为L1;然后,所述图像采集设备采集该实际流通的二维码的二维码图像,并将采集到的该二维码图像传输给所述移动终端的处理器;
[0106] 此处,移动终端为任何具有图像采集功能的终端设备,例如,手机、平板电脑、计算机等等。图像采集设备可以为安装在手机上的摄像头。
[0107] S6,所述处理器对所述二维码图像进行二值化处理,得到二值化的二维码图像;
[0108] 由于图像采集设备所采集到的二维码图像为彩色图,因此,首先将其转换为灰度图;然后,提取灰度图的图像色度数据,基于所提取到的色度数据进行二值化处理,得到仅以黑白二种颜色呈现的二值化图。
[0109] 本步骤中,进行二值化处理的目的为:在后续S3时,能够精确的去除噪声,高精度的提取出二维码图像中的圆或圆弧以及二维码码点。
[0110] S7,所述处理器去除所述二值化的二维码图像的噪声,得到处理后二维码图像;
[0111] 本步骤具体可采用以下方法去除噪声:
[0112] S7.1,所述二值化的二维码图像由若干个黑颜色像素点和若干个白颜色像素点组成;
[0113] 标记所述二值化的二维码图像的连通区域,分别计算每一个连通区域包含的黑颜色像素点数量;其中,所述连通区域为一连续区域,且该连续区域仅由黑颜色像素点连续组成;
[0114] 如果二值化的二维码图像为图6所示,即最终可标记出4个连通区域,分别为:连通区域1、连通区域2、连通区域3和连通区域4。
[0115] S7.2,定位到所标记的连通区域中位于所述二值化的二维码图像的边界区域,该边界区域即为S4得到的圆或圆弧;如图6,连通区域1即为边界区域,为圆。
[0116] 将所标记的其他任一连通区域Q1所包含的黑颜色像素点数量记为N1;将圆或圆弧连通区域所包含的黑颜色像素点数量记为N2,将二维码图像中每个码点所包含的黑颜色像素点数量记为N3;
[0117] 如果N1大于N3的倍数达到设定阈值,且小于N2,则连通区域Q1为大噪声,去除连通区域Q1;如图6,连通区域2、连通区域3和连通区域4均属于此种需要去除的连通区域。
[0118] 如果N1大于N2,则连通区域Q1为大噪声,去除连通区域Q1;
[0119] 如果N1小于N3,则连通区域Q1为小噪声,去除连通区域Q1。
[0120] S8,所述处理器分析所述处理后二维码图像,定位到位于所述处理后二维码图像的边界的圆或一段以上圆弧;
[0121] 本步骤具体为:
[0122] 对于所标记的圆或圆弧连通区域,提取圆或圆弧连通区域的单像素边缘,即为S8定位到的圆或一段以上圆弧。
[0123] S9,如果所述处理器定位到的为圆,则直接计算该圆的圆面积;如果所述处理器定位到的为一段以上圆弧,则计算该圆弧所属圆的圆面积;
[0124] 具体的,如果所述处理器定位到的为一段以上圆弧,则采用霍夫变换方法寻找到该圆弧所属圆,进而再计算该圆弧所属圆的圆面积。
[0125] S10,所述处理器获得所述移动终端的屏幕分辨率和预览分辨率,然后,查找预存储的配置关系表,获得与该屏幕分辨率和该预览分辨率唯一绑定的最优圆面积范围;
[0126] S11,所述处理器比较S9计算得到的圆面积与S10查找到的最优圆面积范围,如果S9计算得到的圆面积属于S10查找到的最优圆面积范围之内,则表明不需要调整所述图像采集设备与所述实际流通的二维码之间的距离L1,直接存储当前采集到的该实际流通的二维码的二维码图像,用于后续解码;否则,执行S12;
[0127] S12,所述处理器进一步判断S9计算得到的圆面积是否大于S10查找到的最优圆面积范围,如果大于,则表明所述图像采集设备与所述实际流通的二维码之间的距离L1较小,向移动终端的显示设备推送需要增大图像采集设备与所述实际流通的二维码之间的距离的提醒消息,待使用者调整所述图像采集设备与所述实际流通的二维码之间的距离后,再重复执行S5-S12,直到S9计算得到的圆面积属于S10查找到的最优圆面积范围之内;
[0128] 如果小于,则表明所述图像采集设备与所述实际流通的二维码之间的距离L1较大,向移动终端的显示设备推送需要减小图像采集设备与所述实际流通的二维码之间的距离的提醒消息,待使用者调整所述图像采集设备与所述实际流通的二维码之间的距离后,再重复执行S5-S12,直到S9计算得到的圆面积属于S10查找到的最优圆面积范围之内。
[0129] 如图7所示,本发明还提供一种快速定位拍码距离的系统,包括:服务器和移动终端;
[0130] (一)服务器
[0131] 服务器用于生成最终用于实际流通的二维码,包括:
[0132] 原始二维码生成模块,用于生成原始二维码,所述原始二维码为由n*m个二维码单元构成的矩阵;其中,n、m均为整数,n与m相等或不相等;并且,各个所述二维码单元的码点排布方式完全相同,每一个所述二维码单元均具有唯一的参考码点O1;所述二维码单元为由若干个码点排列形成的正方形矩阵,该正方形矩阵的边长为D1;
[0133] 绘画模块,用于在所述原始二维码生成模块所生成的原始二维码内部画出一个圆,其圆心为O2,其直径为D2;并且,所画出的圆需满足以下约束条件:
[0134]
[0135]
[0136] 其中,LO1O2代表圆心O2与最近的参考码点O1之间的距离值;
[0137] 删除模块,用于删除所述原始二维码中位于所画出的圆之外的码点,得到以所画出的圆为边界线的第一次处理后的二维码;
[0138] 处理模块,用于对经所述删除模块处理后的二维码进行进一步处理,删除圆的x段圆弧,得到第二次处理后的二维码;其中,x≥0,x为整数;其中,该第二次处理后的二维码的边界为圆或一段以上圆弧;所述第二次处理后的二维码即为最终用于实际流通的二维码。
[0139] 其中,处理模块具体用于:删除圆的x段圆弧后,如果所得到的二维码边界为一段以上圆弧时,需满足以下条件:
[0140] 如果圆弧的数量为一个,则所述圆弧为1/2圆;
[0141] 如果圆弧的数量为两个,则每个圆弧的长度不小于圆周长的四分之一;
[0142] 如果圆弧的数量为3-11个,则每个圆弧的长度不小于圆周长的十二分之一。
[0143] (二)移动终端
[0144] 移动终端用于识读所述服务器所生成的最终用于实际流通的二维码,包括:
[0145] 图像采集设备,用于当图像采集设备与所述实际流通的二维码之间的距离为L1时,采集该实际流通的二维码的二维码图像;
[0146] 二值化处理模块,用于对所述图像采集设备采集的二维码图像进行二值化处理,得到二值化的二维码图像;
[0147] 噪声处理模块,用于对所述二值化处理模块处理后的二维码图像去除噪声,得到处理后二维码图像;
[0148] 噪声处理模块具体用于:
[0149] 标记子模块,用于标记所述二值化的二维码图像的连通区域,分别计算每一个连通区域包含的黑颜色像素点数量;其中,所述连通区域为一连续区域,且该连续区域仅由黑颜色像素点连续组成;
[0150] 定位子模块,用于定位到所述标记子模块所标记的连通区域中位于所述二值化的二维码图像的边界区域,该边界区域即为圆或圆弧;
[0151] 比较并去除子模块,将所标记的其他任一连通区域Q1所包含的黑颜色像素点数量记为N1;将圆或圆弧连通区域所包含的黑颜色像素点数量记为N2,将二维码图像中每个码点所包含的黑颜色像素点数量记为N3;
[0152] 如果N1大于N3的倍数达到设定阈值,且小于N2,则连通区域Q1为大噪声,去除连通区域Q1;
[0153] 如果N1大于N2,则连通区域Q1为大噪声,去除连通区域Q1;
[0154] 如果N1小于N3,则连通区域Q1为小噪声,去除连通区域Q1。
[0155] 定位模块,用于定位所述噪声处理模块处理后二维码图像的边界的圆或一段以上圆弧;
[0156] 具体用于:提取圆或圆弧连通区域的单像素边缘,即为定位到的圆或一段以上圆弧。
[0157] 圆面积计算模块,如果所述定位模块定位到的为圆,则直接计算该圆的圆面积;如果所述定位模块定位到的为一段以上圆弧,则计算该圆弧所属圆的圆面积,可采用霍夫变换方法寻找到该圆弧所属圆,进而再计算该圆弧所属圆的圆面积。
[0158] 获取模块,用于获取所述移动终端的屏幕分辨率和预览分辨率;
[0159] 配置关系表,用于存储屏幕分辨率、预览分辨率与最优圆面积范围的映射关系;
[0160] 查找模块,用于以所述获取模块获取到的屏幕分辨率和预览分辨率为查询关键词,查找所述配置关系表,获得与该屏幕分辨率和该预览分辨率唯一绑定的最优圆面积范围;
[0161] 比较模块,用于比较所述圆面积计算模块计算得到的圆面积是否属于所述查找模块查找到的最优圆面积范围;
[0162] 存储模块,用于当所述比较模块比较到所述圆面积计算模块计算得到的圆面积属于所述查找模块查找到的最优圆面积范围时,直接存储当前采集到的该实际流通的二维码的二维码图像,用于后续解码;
[0163] 调整通知模块,用于当所述比较模块比较到所述圆面积计算模块计算得到的圆面积大于所述查找模块查找到的最优圆面积范围时,表明所述图像采集设备与所述实际流通的二维码之间的距离L1较小,向移动终端的显示设备推送需要增大图像采集设备与所述实际流通的二维码之间的距离的提醒消息;
[0164] 用于当所述比较模块比较到所述圆面积计算模块计算得到的圆面积小于所述查找模块查找到的最优圆面积范围时,表明所述图像采集设备与所述实际流通的二维码之间的距离L1较大,向移动终端的显示设备推送需要减小图像采集设备与所述实际流通的二维码之间的距离的提醒消息。
[0165] 本发明提供的快速定位拍码距离的方法及系统,通过程序自动判断图像采集设备与被识读二维码之间的距离,并给出调整方向的提醒信息,能够快速得到符合解码要求的图像采集设备与被识读二维码之间的距离,从而采集到清晰的二维码图像,进而方便后续解码;避免使用者盲目调整图像采集设备与被识读二维码之间的距离,从而提高了使用者的体验度。
[0166] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。