本申请涉及图像处理,尤其涉及一种二维码的定位方法及装置。
背景技术:
1、二维码应用场景复杂多样,背景干扰导致特征提取不稳定或与实际偏差较大。以图1所示dm(data matrix,数据矩阵)码为例,实际工业场景的二维码图像中,二维码区域往往伴随噪声及背景干扰,直接提取得到的准确线段难度很大,图1中所示的图像,存在像素点模糊,边界不清楚的问题。故需要采样,在较小分辨率中,定位特征连续性更好,提取更稳定。但此时,由于识别过程不清楚码区大小,即不清楚应将图片下采样至哪个分辨率进行提取存在不确定性。例如有的图像,模块较大,需要在更小的分辨率下进行定位,有的图像尺寸小,在较小的分辨率下特征几乎无法提取,需要在较高的分辨率进行,故兼容全部的场景,采用单一分辨率进行定位较难,导致二维码的识别效果较差。
技术实现思路
1、本申请提供一种二维码的定位方法及装置,以解决二维码无法有效识别的问题。
2、本申请第一方面提供一种二维码的定位方法,包括获取第一分辨率下的第一待扫描图像;遍历所述第一分辨率下的所述第一待扫描图像中的线段;获取第二分辨率下的第二待扫描图像,所述第二分辨率大于所述第一分辨率;遍历所述第二分辨率下的所述第二待扫描图像中的线段;将所述第一分辨率下的线段坐标映射到所述第二分辨率坐标系;根据所述第一分辨率下的线段与所述第二分辨率下的线段的叠加结果,选择所述线段的更新条件;按照所选择的所述更新条件更新所述第二待扫描图像中的线段,以及根据多个更新后的所述线段确定所述二维码的位置。
3、可选的,根据所述第一分辨率下的线段与所述第二分辨率下的线段的叠加结果,选择所述线段的更新条件,包括:获取所述第一分辨率下的线段与所述第二分辨率下的线段的重叠数量;若所述重叠数量为0,则保留所述第一分辨率下的线段。若所述重叠数量不为0,则根据所述第一分辨率下的线段与所述第二分辨率下的线段的重叠数量更新所述第二待扫描图像中的线段。
4、可选的,根据所述第一分辨率下的线段与所述第二分辨率下的线段的重叠数量更新所述第二待扫描图像中的线段,包括:若所述重叠数量为1,则保留所述第一分辨率下的线段与所述第二分辨率下的线段中重叠部分为更新后的所述第二待扫描图像中的线段;若所述重叠数量不为1,则通过直线拟合方式确定所述第一分辨率下的线段与所述第二分辨率下的线段中多段线段的直线方向,并将所述多段线段的端点映射到所述直线方向上,将所述直线方向上的最长的线段作为更新后的所述第二待扫描图像中的线段。
5、可选的,获取所述第一分辨率下的线段与所述第二分辨率下的线段的重叠数量包括:获取所述第一分辨率下的线段的端点投影坐标;计算所述投影坐标到所述第二分辨率坐标中线段的距离;若所述距离小于第一预设距离,则确定所述第一分辨率下的线段与所述第二分辨率下的线段重叠,以及统计确定为所述第一分辨率下的线段与所述第二分辨率下的线段重叠的重叠数量。
6、可选的,获取所述第一分辨率下的线段与所述第二分辨率下的线段的重叠数量还包括:获取所述第一分辨率下的线段与所述第二分辨率下的线段之间的夹角;若所述夹角小于第一预设角度,则确定所述第一分辨率下的线段与所述第二分辨率下的线段重叠,以及统计确定为所述第一分辨率下的线段与所述第二分辨率下的线段重叠的重叠数量。
7、可选的,获取所述第一分辨率下的线段与所述第二分辨率下的线段的重叠数量还包括:获取所述第一分辨率下的线段与所述第二分辨率下的线段的重叠长度;计算所述重叠长度与所述第一分辨率下的线段长度的比值;若所述比值在第一预设范围内,则确定所述第一分辨率下的线段与所述第二分辨率下的线段重叠,以及统计确定为所述第一分辨率下的线段与所述第二分辨率下的线段重叠的重叠数量。
8、可选的,所述第一预设距离的取值范围为1-3个像素;所述第一预设角度的取值范围为:1.5°-2.5°;所述第一预设范围为:0.5-1。
9、本申请第二方面提供一种二维码的定位装置,包括获取模块、遍历模块、选择模块、映射模块和定位模块;所述获取模块被配置为:分别获取第一分辨率下的第一待扫描图像及第二分辨率下的第二待扫描图像;所述遍历模块被配置为:分别遍历所述第一分辨率下的所述第一待扫描图像中的线段及所述第二分辨率下的所述第二待扫描图像中的线段;所述映射模块被配置为:将所述第一分辨率下的线段映射到所述第二分辨率坐标系;所述选择模块被配置为:根据所述第一分辨率下的线段与所述第二分辨率下线段的叠加结果,确定所述线段的更新条件;所述定位模块被配置为:按照所选择的所述更新条件更新所述第二待扫描图像中的线段,以及根据多个更新后的所述线段确定所述二维码的位置。
10、可选的,所述选择模块被配置为;获取所述第一分辨率下的线段与所述第二分辨率下的线段的重叠数量;若所述重叠数量为0,则保留所述第一分辨率下的线段。若所述重叠数量不为0,则根据所述第一分辨率下的线段与所述第二分辨率下的线段的重叠数量更新所述第二待扫描图像中线段。
11、可选的,所述选择模块还被配置为:若所述重叠数量为1,则保留所述第一分辨率下的线段与所述第二分辨率下的线段中重叠部分为更新后的所述第二待扫描图像中线段;若所述重叠数量不为1,则通过直线拟合方式确定所述第一分辨率下的线段与所述第二分辨率下的线段中多段线段的直线方向,并将多段线段的端点映射到所述直线上,将直线方向上的最长的线段作为更新后的所述第二待扫描图像中线段。
12、本申请提供的二维码的定位方法及装置,采用本实施例中的方法进行线段更新的过程中,在判断线段更新时存在三种情况分别是,保留第一分辨率下的线段,保留第一分辨率下的线段与第二分辨率下的线段的重叠部分,保留第一分辨率下的线段与第二分辨率下的线段中多条线段的直线方向中的最长线段。并在得到多条更新后的线段后,将多条更新后的线段进行组合,以形成二维码的边框结构,从而实现二维码位置的定位。通过本申请中不同分辨率下的线段的识别和更新方法,对二维码边长的检测能力更强,区域定位更加鲁棒,并保留更全的线段合集,在模糊、高噪声、码区小、背景干扰等场景下保证定位到码区,从而保证识别率,提高识别精度。
1.一种二维码的定位方法,其特征在于,包括:
2.根据权利要求1所述的二维码的定位方法,其特征在于,根据所述第一分辨率下的线段与所述第二分辨率下的线段的叠加结果,选择所述线段的更新条件,包括:
3.根据权利要求2所述的二维码的定位方法,其特征在于,根据所述第一分辨率下的线段与所述第二分辨率下的线段的重叠数量更新所述第二待扫描图像中的线段,包括:
4.根据权利要求3所述的二维码的定位方法,其特征在于,获取所述第一分辨率下的线段与所述第二分辨率下的线段的重叠数量包括:
5.根据权利要求4所述的二维码的定位方法,其特征在于,获取所述第一分辨率下的线段与所述第二分辨率下的线段的重叠数量还包括:
6.根据权利要求5所述的二维码的定位方法,其特征在于,获取所述第一分辨率下的线段与所述第二分辨率下的线段的重叠数量还包括:
7.根据权利要求6所述的二维码的定位方法,其特征在于,
8.一种二维码的定位装置,其特征在于,包括获取模块、遍历模块、选择模块、映射模块和定位模块;
9.根据权利要求8所述的二维码的定位装置,其特征在于,所述选择模块被配置为;
10.根据权利要求9所述的二维码的定位装置,其特征在于,所述选择模块还被配置为: