发明内容
本申请提供一种二维码畸变校正方法及装置,以解决现有的二维码畸变校正方法不能校正二维码的旋转的问题。
第一方面,本申请首先提供一种二维码畸变校正方法,所述方法包括如下步骤:
获取二维码图像;
根据所述二维码图像,计算所述二维码图像四个顶点的畸变图像坐标p;
根据所述二维码的预设长宽比r,计算所述二维码图像的四个顶点对应的无畸变图像坐标p′;
根据所述畸变图像坐标p,以及所述无畸变图像坐标p′,建立线性方程组p=Hp′,其中,H为单应矩阵;
根据所述线性方程组,计算所述单应矩阵;
根据所述计算结果,对所述二维码图像进行校正;
输出包含校正后的二维码图像的矩形图像。
结合第一方面,在第一方面的第一种可实施方式中,根据所述二维码图像,计算所述二维码图像四个顶点的畸变图像坐标p,包括:
获取所述二维码图像的边缘区域;
根据所述边缘区域,识别所述二维码图像的四条边;
根据所述二维码图像的四条边,计算所述四条边的交点的坐标,得到所述二维码图像四个顶点的畸变图像坐标p。
结合第一方面的第一种可实施方式,在第一方面的第二种可实施方式中,获取所述二维码图像的边缘区域的步骤中,采用二值化与形态学方法获取所述二维码图像的边缘区域。
结合第一方面的第一种可实施方式,在第一方面的第三种可实施方式中,根据所述边缘区域,识别所述二维码图像的四条边的步骤中,采用霍夫变换算法识别所述二维码图像的四条边。
结合第一方面,在第一方面的第四种可实施方式中,根据所述二维码的预设长宽比r,计算所述二维码图像的四个顶点对应的无畸变图像坐标p′,包括:
计算所述二维码图像的四个顶点构成的四边形中每条边的长度;
获取所述四边形中长度最长边的长度L;
在所述四边形中,选取离所述二维码的图像坐标原点O最近的一个顶点,作为无畸变图像坐标原点R;
按照左手坐标系构建无畸变图像坐标系XRY;
逆时针遍历所述四边形的四条边;
判断所述边是否是所述四边形中长度最长的边或者所述长度最长的边的对边;
如果所述边是所述四边形中长度最长的边或者所述长度最长的边的对边,确定所述边的长度为L;
如果所述边不是所述四边形中长度最长的边或者所述长度最长的边的对边,确定所述边的长度为L/r;
根据所述四边形的四条边的长度,计算所述二维码图像的四个顶点对应的无畸变图像坐标p′。
第二方面,本申请提供一种二维码畸变校正装置,所述装置包括:
获取单元,用于获取二维码图像;
第一计算单元,用于根据所述二维码图像,计算所述二维码图像四个顶点的畸变图像坐标p;
第二计算单元,用于根据所述二维码的预设长宽比r,计算所述二维码图像的四个顶点对应的无畸变图像坐标p′;
建立单元,用根据所述畸变图像坐标p,以及所述无畸变图像坐标p′,建立线性方程组p=Hp′,其中,H为单应矩阵;
第三计算单元,用于根据所述线性方程组,计算所述单应矩阵;
校正单元,用于根据所述计算结果,对所述二维码图像进行校正;
输出单元,用于输出包含校正后的二维码图像的矩形图像。
结合第二方面,在第二方面的第一种可实施方式中,第一计算单元,包括:
第一获取子单元,用于获取所述二维码图像的边缘区域;
识别子单元,用于根据所述边缘区域,识别所述二维码图像的四条边;
第一计算子单元,用于根据所述二维码图像的四条边,计算所述四条边的交点的坐标,得到所述二维码图像四个顶点的畸变图像坐标p。
结合第二方面的第一种可实施方式,在第二方面的第二种可实施方式中,所述第一获取子单元用于采用二值化与形态学方法获取所述二维码图像的边缘区域。
结合第二方面的第一种可实施方式,在第三方面的第二种可实施方式中,所述识别子单元用于采用霍夫变换算法识别所述二维码图像的四条边。
结合第二方面,在第二方面的第四种可实施方式中,所述第二计算单元,包括:
第二计算子单元,用于计算所述二维码图像的四个顶点构成的四边形中每条边的长度;
第二获取子单元,用于获取所述四边形中长度最长边的长度L;
选取子单元,用于在所述四边形中,选取离所述二维码的图像坐标原点O最近的一个顶点,作为无畸变图像坐标原点R;
构建子单元,用于按照左手坐标系构建无畸变图像坐标系XRY;
遍历子单元,用于逆时针遍历所述四边形的四条边;
判断子单元,用于判断所述边是否是所述四边形中长度最长的边或者所述长度最长的边的对边;
第一确定子单元,用于如果所述边是所述四边形中长度最长的边或者所述长度最长的边的对边,确定所述边的长度为L;
第二确定子单元,用于如果所述边不是所述四边形中长度最长的边或者所述长度最长的边的对边,确定所述边的长度为L/r;
第三计算子单元,用于根据所述四边形的四条边的长度,计算所述二维码图像的四个顶点对应的无畸变图像坐标p′。
由以上技术方案可知,本申请实施例提供的一种二维码畸变校正方法及装置,通过获取二维码图像,根据二维码图像,计算二维码图像四个顶点的畸变图像坐标,根据二维码的预设长宽比,计算二维码图像的四个顶点对应的无畸变图像坐标,根据畸变图像坐标,以及无畸变图像坐标,建立线性方程组,根据线性方程组,计算单应矩阵中的未知参数,根据计算结果,对二维码图像进行校正,输出包含校正后的二维码图像的矩形图像;校正过程无需知道二维码实际对应的物理坐标,只需根据二维码的预设长宽比例就能计算单应矩阵模型,可用于不同类型的二维码的畸变校正,显著提升使用的方便性以及应用场景的多样性,可实现快速获取无旋转的二维码校正图像;其次,计算单应矩阵模型比常规的非线性投影模型简单快速,整个校正过程耗时少;最后,输出的二维码校正图像是仅包含二维码区域信息的矩形区域图像,方便后续的解码,可提高解码效率。
具体实施方式
请参阅图2,本申请实施例提供一种二维码畸变校正方法,所述方法包括如下步骤:
步骤S101,获取二维码图像。
在具体实施时,可在电脑上获取扫码工具扫描到的二维码图像,或直接利用采集二维码图像的设备获取二维码图像。
步骤S102,根据所述二维码图像,计算所述二维码图像四个顶点的畸变图像坐标p。
该步骤中,二维码图像四个顶点的畸变图像坐标p指的是二维码图像的边缘所形成的四边形的四个顶点的坐标,由于该四边形是二维码图像产生畸变后得到,因此该四边形的四个顶点的坐标称为畸变图像坐标。
具体地,可通过交互方式得到二维码图像四个顶点的畸变图像坐标p,或者采用自动获取的方式得到二维码图像四个顶点的畸变图像坐标p。
步骤S103,根据所述二维码的预设长宽比r,计算所述二维码图像的四个顶点对应的无畸变图像坐标p′。
其中,二维码的预设长宽比r大于或等于1。
步骤S104,根据所述畸变图像坐标p,以及所述无畸变图像坐标p′,建立线性方程组p=Hp′,其中,H为单应矩阵,
步骤S105,根据所述线性方程组,计算所述单应矩阵。
该步骤中,计算出单应矩阵中的h1~h8这8个未知参数。计算单应矩阵模型比常规的非线性投影模型简单快速,使得整个校正过程耗时少。
步骤S106,根据所述计算结果,对所述二维码图像进行校正。
例如,在无畸变二维码图像中,需要求解的某像素坐标为(100,100),通过与单应矩阵H相乘后,进行双线性插值,可以得到该坐标在畸变二维码图像上对应的像素坐标,如(98,102)。
那么,无畸变二维码图像上的坐标(100,100)上的像素值就是畸变图像上坐标(98,102)上的像素值。按照上述方式,遍历无畸变图像上的每个坐标,即可得到校正图像。
步骤S107,输出包含校正后的二维码图像的矩形图像。
该步骤输出的矩形图像是仅包含二维码区域信息的矩形图像,方便后续的解码,可提高解码效率。
由以上技术方案可知,本申请实施例提供的一种二维码畸变校正方法,通过获取二维码图像,根据二维码图像,计算二维码图像四个顶点的畸变图像坐标,根据二维码的预设长宽比,计算二维码图像的四个顶点对应的无畸变图像坐标,根据畸变图像坐标,以及无畸变图像坐标,建立线性方程组,根据线性方程组,计算单应矩阵中的未知参数,根据计算结果,对二维码图像进行校正,输出包含校正后的二维码图像的矩形图像;校正过程无需知道二维码实际对应的物理坐标,只需根据二维码的预设长宽比例就能计算单应矩阵模型,可用于不同类型的二维码的畸变校正,显著提升使用的方便性以及应用场景的多样性,可实现快速获取无旋转的二维码校正图像。其次,计算单应矩阵模型比常规的非线性投影模型简单快速,整个校正过程耗时少;最后,获取的二维码校正图像是仅包含二维码区域信息的矩形区域图像,方便后续的解码,可提高解码效率。
请参阅图3,在本申请的另一实施方式中,根据所述二维码图像,计算所述二维码图像四个顶点的畸变图像坐标p,包括:
步骤S1021,获取所述二维码图像的边缘区域。
具体地,获取所述二维码图像的边缘区域的步骤中,可采用二值化与形态学方法获取所述二维码图像的边缘区域。
步骤S1022,根据所述边缘区域,识别所述二维码图像的四条边。
具体地,根据所述边缘区域,识别所述二维码图像的四条边的步骤中,可采用霍夫变换算法识别所述二维码图像的四条边。
步骤S1023,根据所述二维码图像的四条边,计算所述四条边的交点的坐标,得到所述二维码图像四个顶点的畸变图像坐标p。
由于二维码畸变图像中二维码区域的位置是不固定的,通过交互方式虽然能很精确地获取四个顶点坐标,但操作起来不方便。本实施例采用上述方法自动计算获取四个顶点的畸变图像坐标p,既能较精确地得到四个顶点的坐标,又能提高实用性,降低人工成本。
由以上技术方案可知,本申请实施例提供的一种二维码畸变校正方法,通过获取二维码图像,根据二维码图像,计算二维码图像四个顶点的畸变图像坐标,根据二维码的预设长宽比,计算二维码图像的四个顶点对应的无畸变图像坐标,根据畸变图像坐标,以及无畸变图像坐标,建立线性方程组,根据线性方程组,计算单应矩阵中的未知参数,根据计算结果,对二维码图像进行校正,输出包含校正后的二维码图像的矩形图像;本申请实施例提供的二维码畸变校正方法,自动计算获取四个顶点的畸变图像坐标p,既能较精确地得到四个顶点的坐标,又能提高实用性,降低人工成本。
请参阅图4和图5,在本申请的又一实施方式中,根据所述二维码的预设长宽比r,计算所述二维码图像的四个顶点对应的无畸变图像坐标p′,包括:
步骤S1031,计算所述二维码图像的四个顶点构成的四边形中每条边的长度。
步骤S1032,获取所述四边形中长度最长边的长度L。
步骤S1033,在所述四边形中,选取离所述二维码的图像坐标原点O最近的一个顶点,作为无畸变图像坐标原点R。
步骤S1034,按照左手坐标系构建无畸变图像坐标系XRY。
其中,左手坐标系是指在空间直角坐标系中,让左手拇指指向X轴的正方向,食指指向Y轴的正方向,如果中指能指向R轴的正方向,则称这个坐标系为左手直角坐标系。
步骤S1035,逆时针遍历所述四边形的四条边。
步骤S1036,判断所述边是否是所述四边形中长度最长的边或者所述长度最长的边的对边。
步骤S1037,如果所述边是所述四边形中长度最长的边或者所述长度最长的边的对边,确定所述边的长度为L。
由于畸变后的四边形中,长度最长的边或者所述长度最长的边的对边,则说明该边即为畸变前的二维码图像的四边形的两个长边,因此该边的长度为L。
步骤S1038,如果所述边不是所述四边形中长度最长的边或者所述长度最长的边的对边,确定所述边的长度为L/r。
由于畸变后的四边形中,如果不是长度最长的边或者长度最长的边的对边,则说明该边即为畸变前的二维码图像的四边形的两个宽边,因此该边的长度为L/r。
步骤S1039,根据所述四边形的四条边的长度,计算所述二维码图像的四个顶点对应的无畸变图像坐标p′。
由以上技术方案可知,本申请实施例提供的一种二维码畸变校正方法,无需知道二维码实际对应的物理坐标,只需根据二维码的预设长宽比例就能计算单应矩阵模型,可用于不同类型的二维码的畸变校正,显著提升使用的方便性以及应用场景的多样性;其次,计算单应矩阵模型比常规的非线性投影模型简单快速,整个校正过程耗时少;最后,获取的二维码校正图像是仅包含二维码区域信息的矩形区域图像,方便后续的解码,可提高解码效率。
请参阅图6,本申请实施例还提供一种二维码畸变校正装置,所述装置包括:
获取单元101,用于获取二维码图像;
第一计算单元102,用于根据所述二维码图像,计算所述二维码图像四个顶点的畸变图像坐标p;
第二计算单元103,用于根据所述二维码的预设长宽比r,计算所述二维码图像的四个顶点对应的无畸变图像坐标p′;
建立单元104,用根据所述畸变图像坐标p,以及所述无畸变图像坐标p′,建立线性方程组p=Hp′,其中,H为单应矩阵;
第三计算单元105,用于根据所述线性方程组,计算所述单应矩阵;
校正单元106,用于根据所述计算结果,对所述二维码图像进行校正;
输出单元107,用于输出包含校正后的二维码图像的矩形图像。
请参阅图7,在本申请提供的一种二维码畸变校正装置的另一实施例中,第一计算单元102,包括:
第一获取子单元1021,用于获取所述二维码图像的边缘区域;
识别子单元1022,用于根据所述边缘区域,识别所述二维码图像的四条边;
第一计算子单元1023,用于根据所述二维码图像的四条边,计算所述四条边的交点的坐标,得到所述二维码图像四个顶点的畸变图像坐标p。
所述第一获取子单元1021用于采用二值化与形态学方法获取所述二维码图像的边缘区域。
所述识别子单元1022用于采用霍夫变换算法识别所述二维码图像的四条边。
请参阅图8,在本申请提供的一种二维码畸变校正装置的又一实施例中,所述第二计算单元103,包括:
第二计算子单元1031,用于计算所述二维码图像的四个顶点构成的四边形中每条边的长度;
第二获取子单元1032,用于获取所述四边形中长度最长边的长度L;
选取子单元1033,用于在所述四边形中,选取离所述二维码的图像坐标原点O最近的一个顶点,作为无畸变图像坐标原点R;
构建子单元1034,用于按照左手坐标系构建无畸变图像坐标系XRY;
遍历子单元1035,用于逆时针遍历所述四边形的四条边;
判断子单元1036,用于判断所述边是否是所述四边形中长度最长的边或者所述长度最长的边的对边;
第一确定子单元1037,用于如果所述边是所述四边形中长度最长的边或者所述长度最长的边的对边,确定所述边的长度为L;
第二确定子单元1038,用于如果所述边不是所述四边形中长度最长的边或者所述长度最长的边的对边,确定所述边的长度为L/r;
第三计算子单元1039,用于根据所述四边形的四条边的长度,计算所述二维码图像的四个顶点对应的无畸变图像坐标p′。
具体实现中,本申请还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的一种二维码畸变校正方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于一种二维码畸变校正装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
以上所述的本申请实施方式并不构成对本申请保护范围的限定。