二维码图像修复方法、装置、计算机设备和存储介质与流程

文档序号:21850008发布日期:2020-08-14 17:27阅读:1783来源:国知局
二维码图像修复方法、装置、计算机设备和存储介质与流程

本申请涉及图像处理技术领域,特别是涉及一种二维码图像修复方法、装置、计算机设备和存储介质。



背景技术:

随着二维码技术的发展,二维码在日常生活中得到广泛运用,尤其是移动支付领域。扫描设备通过识别用户提供的二维码图像就可以快速识别、完成移动支付,相对于现金支付方式更加方便和便捷。

但是,在实现过程中,发明人发现传统技术中至少存在如下问题:当终端屏幕受到损坏时,屏幕裂痕使得扫描到的二维码图像信息损坏,二维码数据区出现断续,扫描设备或相关软件无法准确地识别二维码图像,可靠性差。



技术实现要素:

基于此,有必要针对终端屏幕的裂痕影响二维码识别的问题,提供一种二维码图像修复方法、装置、计算机设备和存储介质。

一种二维码图像修复方法,包括:

在子二维码直方图中存在三个波峰时,根据子二维码直方图中各波峰位置坐标,对对应的子二维码俯视图进行二值化处理,得到子裂缝蒙版并确定子二维码图中的待修复子区域;子二维码俯视图为基于包含裂缝的目标图像进行划分得到;子二维码直方图由子二维码俯视图计算得到;子二维码图为子二维码俯视图进行otsu二值化处理得到;

获取环绕待修复子区域的计算区域;计算区域为待修复子区域外扩预设数量的像素得到;

基于待修复子区域中待测点与重心形成的计算直线,得到计算直线与待修复子区域的边界形成的第一交点和第二交点,以及计算直线在计算区域中的形成的第一线段和第二线段;

根据第一距离、第二距离、第一像素平均值和第二像素平均值,得到待测点的像素修复值;第一距离为待测点与第一交点的距离;第二距离为待测点与第二交点的距离;第一像素平均值为第一线段上的像素平均值;第二像素平均值为第二线段上的像素平均值;

基于各待测点的像素修复值对待修复子区域进行修复,得到修复后的子二维码图。

在其中一个实施例中,所述根据第一距离、第二距离、第一像素平均值和第二像素平均值,得到所述待测点的像素修复值的步骤,包括:

根据所述第一距离、所述第二距离和所述第一像素平均值,得到第一像素修复值;根据所述第一距离、所述第二距离和所述第二像素平均值,得到第二像素修复值;

基于所述第一像素修复值和所述第二像素修复值,得到所述待测点的像素修复值。

在其中一个实施例中,所述根据所述第一距离、所述第二距离和所述第一像素平均值,得到第一像素修复值的步骤,包括:

根据所述第二距离与第三距离的比值,确定第一比值参数;所述第三距离为所述第一距离和所述第二距离之和;

根据所述第一比例参数与所述第一像素平均值的乘积值,得到所述待测点的第一像素修复值。

在其中一个实施例中,所述根据所述第一距离、所述第二距离和所述第二像素平均值,得到第二像素修复值的步骤,包括:

根据所述第一距离和所述第三距离的比值,确定第二比值参数;

根据所述第二比值参数与所述第二像素平均值的乘积值,得到所述待测点的第二像素修复值。

在其中一个实施例中,所述在子二维码直方图中存在三个波峰时,根据所述子二维码直方图中各波峰位置坐标,对对应的子二维码俯视图进行二值化处理,得到子裂缝蒙版的步骤,包括:

在所述子二维码直方图中存在三个波峰时,根据所述子二维码直方图中的第一波峰、第二波峰和第三波峰分别对应的像素值,确定局部二值化阈值;

根据所述局部二值化阈值,对所述对应的子二维码俯视图进行二值化处理,得到所述子裂缝蒙版。

在其中一个实施例中,所述根据所述局部二值化阈值,对所述对应的子二维码俯视图进行二值化处理,得到所述子裂缝蒙版的步骤,包括:

根据以下公式对所述子二维码俯视图中各点进行二值化处理得到对应的子原始蒙版像素值:

其中,t1为所述局部二值化阈值中的第一阈值,t2为所述局部二值化阈值中的第二阈值,p为所述子二维码俯视图中各点的原始像素值,pix为所述原始像素值二值化后对应的子原始蒙版像素值;所述第一阈值为所述第一波峰的像素值与所述第二波峰的像素值的平均值;所述第二阈值为所述第二波峰的像素值与所述第三波峰的像素值的平均值;所述第二阈值大于所述第一阈值;

根据所述子二维码俯视图中各点对应的子原始蒙版像素值,得到子裂缝原始蒙版;

对所述子裂缝原始蒙版进行中值滤波,得到对应的所述子裂缝蒙版。

在其中一个实施例中,所述在子二维码直方图中存在三个波峰时,根据所述子二维码直方图中各波峰位置坐标,对对应的子二维码俯视图进行二值化处理,得到子裂缝蒙版并确定所述子二维码图中的待修复子区域的步骤之前,还包括:

对获取到的目标图像进行灰度处理和边缘检测,并基于hough变换进行直线检测,确定目标二维码图像;

对所述目标二维码图像进行透视变换,得到校正后的所述二维码俯视图;

对所述二维码俯视图进行网格划分后,得到各所述子二维码俯视图。

一种二维码图像修复装置,其特征在于,包括:

待修复区域确定模块,用于在子二维码直方图中存在三个波峰时,根据子二维码直方图中各波峰位置坐标,对对应的子二维码俯视图进行二值化处理,得到子裂缝蒙版并确定子二维码图中的待修复子区域;子二维码俯视图为基于包含裂缝的目标图像进行划分得到;子二维码直方图由子二维码俯视图计算得到;子二维码图为子二维码俯视图进行otsu二值化处理得到;

计算区域获取模块,用于获取环绕待修复子区域的计算区域;计算区域为待修复子区域外扩预设数量的像素得到;

修复值得到模块,用于基于待修复子区域中待测点与重心形成的计算直线,得到计算直线与待修复子区域的边界形成的第一交点和第二交点,以及计算直线在计算区域中的形成的第一线段和第二线段;根据第一距离、第二距离、第一像素平均值和第二像素平均值,得到待测点的像素修复值;第一距离为待测点与第一交点的距离;第二距离为待测点与第二交点的距离;第一像素平均值为第一线段上的像素平均值;第二像素平均值为第二线段上的像素平均值;

修复处理模块,用于基于各待测点的像素修复值对待修复子区域进行修复,得到修复后的子二维码图。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上述的二维码图像修复方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的二维码图像修复方法的步骤。

上述技术方案中的一个技术方案具有如下优点和有益效果:

上述二维码图像修复方法,在子二维码直方图中存在三个波峰时,则根据该子二维码直方图中的各波峰位置坐标处理对应的子二维码俯视图确定该子二维码图中的待修复区域,并根据待修复子区域外扩预设一定数量的像素得到对应的计算区域,基于待修复子区域中待测点与重心形成的计算直线,得到并根据计算直线与待修复子区域的边界形成的第一交点和第二交点,以及计算直线在计算区域中的形成的第一线段和第二线段,确定待测点的像素修复值,确定待修复子区域内各待测点的像素修复值,得到修复后的子二维码图,进而得到修复了原裂缝数据断层的二维码图像,改善了原始二维码图像质量,保证了终端屏幕存在裂缝时二维码正常的识别,提高二维码识别可靠性。

附图说明

通过附图中所示的本申请的优选实施例的更具体说明,本申请的上述及其它目的、特征和优势将变得更加清晰。在全部附图中相同的附图标记指示相同的部分,且并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本申请的主旨。

图1为一个实施例中二维码图像修复方法的第一流程示意图;

图2为一个实施例中二维码图像修复方法的第二流程示意图;

图3为一个实施例中二维码图像修复方法的第三流程示意图;

图4为一个实施例中子二维码图的修复方式的示意图;

图5为一个实施例中子二维码直方图的示意图;

图6为一个实施例中校正后的二维码俯视图otsu二值化处理后的示意图;

图7为一个实施例中裂缝原始蒙版的示意图;

图8为一个实施例中裂缝蒙版的示意图;

图9为一个实施例中修复后的目标图像的示意图;

图10为一个实施例中二维码图像修复装置的结构框图;

图11为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请实施例可运用于图像处理技术领域;随着二维码技术的发展,二维码在日常生活中得到广泛运用,尤其是移动支付领域。扫描设备通过识别用户提供的二维码图像就可以快速识别、完成移动支付,相对于现金支付方式更加方便和便捷。同时由于终端屏幕遇碰撞容易产生裂屏,屏幕裂痕使得扫描到的二维码图像信息损坏,扫描设备或相关软件无法准确地识别二维码图像,可靠性差。这对于出门不带现金,习惯扫码支付的用户来说,这种情况造成了无法识别二维码的隐患,给生活带来了很大不便。为此,本申请提供了一种二维码图像修复方法,保证当存在终端屏幕裂痕时仍能够正常扫描识别,提高二维码识别可靠性。

在一个实施例中,如图1所示,提供了一种二维码图像修复方法,包括:

步骤s100、在子二维码直方图中存在三个波峰时,根据子二维码直方图中各波峰位置坐标,对对应的子二维码俯视图进行二值化处理,得到子裂缝蒙版并确定子二维码图中的待修复子区域;子二维码俯视图为基于包含裂缝的目标图像进行划分得到;子二维码直方图由子二维码俯视图计算得到;子二维码图为子二维码俯视图进行otsu二值化处理得到;

目标图像由扫描设备扫描移动终端屏幕得到,可包括二维码图像区域、非二维码图像区域。终端屏幕存在裂缝时,获取到的目标图像中包括裂缝信息,其对应的图像区域存在数据断层,扫描设备或相关软件无法准确地识别二维码图像区域的二维码信息。

各子二维码俯视图可根据目标图像进行网格划分得到,仅包括对应的二维码图像区域。子二维码直方图是根据对应的子二维码俯视图计算得到。若该子二维码俯视图中存在裂缝信息,则对应的子二维码直方图中前景、裂缝以及背景像素会分别形成三个波峰p1、p2和p3。子二维码直方图中,各波峰的横坐标为对应的像素值。采用ostu二值算法对子二维码俯视图进行去噪处理,得到二值化后的子二维码图。子二维码图为对应的子二维码俯视图进行otsu(大津算法)二值化后得到的二值图像。需要说明的是,在其他实施例中,可采用bernsen二值化算法、niblack二值化算法对子二维码俯视图进行二值化处理,可根据实际修复效果选择,此处不做具体限定。

在子二维码直方图中存在三个波峰时,根据该子二维码直方图中各波峰对应的像素值,确定局部二值化阈值,对对应的子二维码俯视图进行局部二值化处理,得到对应的子裂缝蒙版。子裂缝蒙版中像素值为255的图像区域,即为子裂缝蒙版中的裂缝区域,而子裂缝蒙版中像素值为0或其他像素值的区域为已知像素区域。进而,根据子裂缝蒙版中裂缝区域位置,确定对应的子二维码图中的待修复区域以及已知像素区域。示例性地,局部二值化阈值为p2(裂缝像素形成的波峰)对应的像素值和p1(前景像素形成的波峰)对应的像素值的平均值,在子二维码直方图中存在三个波峰时,对对应的子二维码俯视图按以下方式进行处理:若子二维码俯视图中各像素点的像素值小于局部二值化阈值则将其设像素值设为零,否则将其对应的像素值设为255,得到对应的局部二值化处理后的子裂缝蒙版。需要说明的是,若子二维码俯视图中数据完整,对应的子二维码直方图中仅包括前景像素、背景像素分别形成的两个波峰,则无需对该子二维码俯视图后续进行修复处理,并非本申请实施例主要考虑范围。视具体情况,可将子二维码俯视图中各像素值置0,也可对该完整的子二维码俯视图不做处理,此处不做具体限定。

步骤s200、获取环绕待修复子区域的计算区域;计算区域为待修复子区域外扩预设数量的像素得到;

通过对待修复子区域外扩r个像素得到计算区域,计算区域为已知像素区域。需要说明的是,r的取值可以是1、2、3等,此处不做具体限定,可根据二维码实际修复结果试验确定。

步骤s300、基于待修复子区域中待测点与重心形成的计算直线,得到计算直线与待修复子区域的边界形成的第一交点和第二交点,以及计算直线在计算区域中的形成的第一线段和第二线段;

经待修复子区域中待测点与重心的计算直线,分别与待修复子区域的边界相交于第一交点和第二交点。计算直线与待修复子区域中分别形成第一线段和第二线段。其中,待修复子区域的重心可根据修复子区域各像素点的坐标和对应的像素值确定。

步骤s400、根据第一距离、第二距离、第一像素平均值和第二像素平均值,得到待测点的像素修复值;第一距离为待测点与第一交点的距离;第二距离为待测点与第二交点的距离;第一像素平均值为第一线段上的像素平均值;第二像素平均值为第二线段上的像素平均值;

步骤s500、基于各待测点的像素修复值对待修复子区域进行修复,得到修复后的子二维码图。

确定待修复子区域中各待测点的像素修复值,确定修复后的子二维码图,进行得到修复后的二维码图,修复后的二维码图修复了原裂缝的数据断层能够进行扫描识别,保证二维码图像的正常识别。

本申请实施例中,根据包含裂缝的目标图像进行划分得到子二维码俯视图,进而根据各子二维码俯视图处理得到对应的子裂缝蒙版以确定对应的子二维码图中的待修复子区域;根据待修复子区域中待测点与重心的计算直线,得到第一距离、第二距离、第一像素平均值和第二像素平均值,进而得到个待修复点对应的像素修复值,实现对二维码图像的修复,修复原裂缝造成的数据断层,实现在终端存在裂缝时能够有效还原,保证识别可靠性。

在一个实施例中,如图2所示,根据第一距离、第二距离、第一像素平均值和第二像素平均值,得到待测点的像素修复值的步骤,包括:

步骤s410、根据第一距离、第二距离和第一像素平均值,得到第一像素修复值;根据第一距离、第二距离和第二像素平均值,得到第二像素修复值;

步骤s420、基于第一像素修复值和第二像素修复值,得到待测点的像素修复值。

具体而言,根据第一像素修复值和第二像素修复值,得到待测点的像素修复值,从而得到各待测点对应的像素修复值,对待修复子区域进行修复得到修复后的子二维码图,所述修复后的子二维码图已修复原裂缝引起的数据断层,能够正常识别,解决了在终端存在裂缝时无法识别二维码图像的问题。

其中,第一像素修复值,根据第一距离、第二距离和第一像素平均值得到。示例性地,第一像素修复值,根据第二距离与第一交点与第二交点的距离的占比、第一像素平均值的乘积值以及第一常数确定。其中,第一交点与第二交点的距离为第一距离和第二距离之和。第一常数可以是任意数值,可根据二维码实际修复需求确定。例如,第一常数可为1、2、3等,一般性地,第一常数为0。示例性地,第一像素修复值,根据第二距离与第一交点与第二交点的距离的占比、第一像素平均值和第一系数的乘积值确定。第一系数可以为任意数值,可根据二维码实际修复需求确定。例如,第一系数可为1。

第二像素修复值,根据第一距离、第二距离和第一像素平均值得到。示例性地,第二像素修复值,可根据第一距离在第一交点与第二交点距离的占比、第二像素平均值以及第二常数确定。再将上述占比与第二像素平均值的乘积值,与第二常数之和确定为第二像素修复值。其中,第二常数可以为任意数值,可根据二维码实际修复需求确定。例如,第二常数为1、2、3等。示例性地,第二像素修复值,根据第一距离在第一交点与第二交点距离的占比、第二像素平均值以及第二系数的乘积值确定。其中,第二系数可以为任意值,可根据二维码实际修复需求设置。例如,第二系数可为1、2、3等。

在一个实施例中,如图3所示,根据第一距离、第二距离和第一像素平均值,得到第一像素修复值的步骤,包括:

步骤s412、根据第二距离与第三距离的比值,确定第一比值参数;第三距离为第一距离和第二距离之和;

步骤s414、根据第一比例参数与第一像素平均值的乘积值,得到待测点的第一像素修复值。

具体而言,第二距离与第三距离的比值为第一比值,将第一比值与第一比值系数的乘积值确定为第一比值参数。其中,第一比值系数可为任意值,根据实际修复需求设置,例如,第一比值系数可为0、1、-1、2、-2、3、-3等。一般性地,第一比值系数为1。根据第一比例参数与第一像素平均值的乘积值,得到待测点的第一像素修复值。

在一个实施例中,如图3所示,根据第一距离、第二距离和第二像素平均值,得到第二像素修复值的步骤,包括:

步骤s416、根据第一距离和第三距离的比值,确定第二比值参数;

步骤s418、根据第二比值参数与第二像素平均值的乘积值,得到待测点的第二像素修复值。

具体而言,第一距离和第三距离的比值为第二比值,将第二比值与第二比值系数的乘积值确定为第二像素修复值。其中,第二比值系数可以为0、1、-1、2、-2、3、-3等。一般性地,第二比值系数为1。

在一个具体实施例中,如图4所示,r为子二维码图中的待修复子区域、根据子裂缝蒙版中像素值为255的区域确定。计算区域u为已知像素区域、通过对待修复子区域r外扩r个像素得到。其中,r可为任意值,可根据二维码实际修复需求确定。待修复子区域r的重心为点o,点p为待修复子区域r内的任一待测点。待修复子区域r的重心点o的坐标可根据以下公式得到:

其中,(xi,yi)为已知像素区域u中各像素点坐标,pi为已知像素区域u中各像素点对应的像素值。

经待测点p与点o的计算直线,分别与待修复子区域r的边界相交于第一交点q1和第二交点q2,第一距离d1为待测点p与第一交点q1的距离,第二距离d2为待测点p与第二交点q2的距离。上述计算直线分别在计算区域u中形成第一线段l1和第二线段l2,第一像素平均值i1为第一线段l1上的像素平均值,第二像素平均值i2为第一线段上的像素平均值。则待修复子区域r中待测点p的像素修复值v可根据以下公式得到:

根据上述方法可以计算得到待修复子区域r内各待测点的修复像素值,基于各待测点的像素修复值对所述待修复子区域进行修复,得到修复后的子二维码图。

在一个实施例中,根据子二维码直方图中各波峰位置坐标,对对应的子二维码俯视图进行二值化处理,得到子裂缝蒙版的步骤,包括:

在子二维码直方图中存在三个波峰时,根据子二维码直方图中的第一波峰、第二波峰和第三波峰分别对应的像素值,确定局部二值化阈值;

根据局部二值化阈值,对对应的子二维码俯视图进行二值化处理,得到子裂缝蒙版。

具体而言,对子二维码俯视图进行直方图处理得到对应的子二维码直方图,子二维码俯视图为根据包含裂缝的目标图像进行透视变换、网格划分得到。如图5所示,在子二维码俯视图存在裂缝信息时,子二维码直方图中前景像素、裂缝像素以及背景像素依次形成第一波峰、第二波峰以及第三波峰,第一波峰的像素值为p1,第二波峰的像素值为p2,第三波峰的像素值为p3,根据子二维码直方图中各波峰对应的像素值,确定局部二值化阈值,对对应的子二维码俯视图进行二值化处理得到对应的子裂缝蒙版。、

示例性地,将p1设为第一阈值,将p1与p3之间的平均值设为第二阈值。若子二维码俯视图中像素点的像素值大于第一阈值且小于第二阈值时,将该像素点的像素值设置为255,否则,将该像素点的像素值设为0。从而遍历子二维码俯视图中各像素点,实现局部二值化,得到对应的子裂缝蒙版,进而根据子裂缝蒙版准确快速地确定对应的子二维码图中的待修复子区域,从而对该待修复子区域进行数据修复。

在一个实施例中,根据局部二值化阈值,对所述对应的子二维码俯视图进行二值化处理得到子裂缝蒙版的步骤,包括:

根据以下公式对子二维码俯视图中各点进行二值化处理得到对应的子原始蒙版像素值:

其中,t1为局部二值化阈值中的第一阈值,t2为局部二值化阈值中的第二阈值,p为子二维码俯视图中各点的原始像素值,pix为原始像素值二值化后对应的子原始蒙版像素值;第一阈值为第一波峰的像素值与第二波峰的像素值的平均值;第二阈值为第二波峰的像素值与第三波峰的像素值的平均值;第二阈值大于第一阈值;

基于子二维码俯视图中各点对应的子原始蒙版像素值,得到子裂缝蒙版。

具体而言,第一阈值为第一波峰的像素值与第二波峰的像素值的平均值,第二阈值为第二波峰的像素值与第三波峰的像素值的平均值。第一波峰由子二维码直方图中前景像素形成,第二波峰由由子二维码直方图中各裂缝像素形成,第三波峰由子二维码直方图中各背景像素形成。

根据第一阈值和第二阈值,对子二维码俯视图中各像素点逐点进行局部二值化,减少数据运算量,快速得到对应的子裂缝原始蒙版。进而,根据在子裂缝原始蒙版中各像素点对应的子原始蒙版像素值,得到对应的子裂缝蒙版。子裂缝蒙版中,将像素值为255的区域确定子二维码图中的待修复区域,以便进一步进行针对性修复,提升二维码识别率。示例性地,对子裂缝原始蒙版进一步二值化处理,以去除子裂缝原始蒙版中的噪声,得到对应的子裂缝蒙版。

在一个实施例中,基于子二维码俯视图中各点对应的子原始蒙版像素值,得到子裂缝蒙版的步骤包括:

根据子二维码俯视图中各点对应的子原始蒙版像素值,得到子裂缝原始蒙版;

对子裂缝原始蒙版进行中值滤波,得到对应的子裂缝蒙版。

具体而言,对子裂缝原始蒙版进行中值滤波。中值滤波可以用于去除椒盐噪声,提高图像处理准确率。示例性地,采用3x3窗口对子裂缝原始蒙版进行中值滤波,以去除噪点,得到对应的子裂缝蒙版。

在一个实施例中,在子二维码直方图中存在三个波峰时,根据子二维码直方图中各波峰位置坐标,对对应的子二维码俯视图进行二值化处理,得到子裂缝蒙版并确定子二维码图中的待修复子区域的步骤之前,还包括:

对获取到的目标图像进行预处理,得到目标二维码图像;

目标图像为扫描设备获取到的存在数据断层的原始二维码图像,目标图像中包括二维码图像区域和非二维码图像区域。目标图像中存在数据断层。通过对目标图像进行预处理,确定目标图像中二维码图像区域的四条边,得到仅包含二维码图像区域的目标二维码图像,从而对二维码图像区域中待修复区域进行图像修复,减少运算量,提高数据处理效率。预处理方式可包括但不限于边缘检测、直线检测确定目标图像的四条边等。

对目标二维码图像进行透视变换,得到校正后的二维码俯视图;

根据目标二维码图像中四个顶点坐标,求解透视变换矩阵,根据该透视变换矩阵对目标二维码图像进行透视变换,对扫描设备获取到的目标图像进行实时校正还原,得到校正后的二维码俯视图。

示例性地,得到目标二维码图像的四条边后,可得到四个角点坐标,依次为左上角[x1,y1],右上角[x2,y2],左下角[x3,y3]和右下角[x4,y4],通过透视变换矩阵h,将目标二维码图像映射为二维码俯视图。二维码俯视图的各角点坐标依次为:左上角[u1,v1],右上角[u2,v2],左下角[u3,v3]和右下角[u4,v4]。其中,透视变换公式为:

其中,s为比例系数,h为透视变换矩阵,(x,y)为目标二维码图像中各像素坐标,(x,y)为二维码俯视图中各像素点坐标。将映射前各角点坐标和映射后各角点坐标代入上述透视变换公式,可求得h,则映射后x,y对应的x,y可由下式求得:

对二维码俯视图进行网格划分后,得到各子二维码俯视图。

对二维码俯视图进行n*n网格划分后,得到各子二维码俯视图,进而对分区后的子二维码俯视图进行数据修复。需要说明的是,n的取值可以为任意正整数,此处不做具体限定。

具体而言,通过对获取到目标图像进行预处理,得到仅包含二维码图像区域的目标二维码图像,以便减少运算量,加快运算速率。对得到的目标二维码图像进行透视变换,进行正视化后得到二维码俯视图,对二维码俯视图进行网格划分后,得到各子二维码俯视图,从而对各子二维码俯视图分别进行修复处理,以得到修复后的二维码图像,在移动终端存在裂屏时仍可进行识别。

在一个实施例中,对获取到的目标图像进行预处理,得到目标二维码图像的步骤,包括:

对获取到的目标图像进行灰度处理和边缘检测,并基于hough变换进行直线检测,确定目标二维码图像。

具体而言,目标图像为彩色图像,由于彩色图像包含r、g、b三个通道,直接用于图像处理,计算量大。而采用灰度图像,只有一个通道,则大大减少了计算量。因此,对目标图像进行灰度处理,以减少计算量。灰度处理公式如下:

gray=0.3r+0.59g+0.11b

其中,r为像素点红色分量,g为像素点绿色分量,b为像素点的蓝色分量,gray为灰度变化后像素点对应的灰度值。

对灰度处理后的目标图像进行边缘检测,从而大幅度地减少了数据量,剔除了不相关的信息,保留了图像重要的结构属性。示例性地,对灰度化后的目标图像采用canny边缘检测以追踪目标图像边界。canny算法是图像边缘检测算法中最经典的算法之一,它采用基于边缘梯度方向的非极大值抑制和双阈值滞后的阈值处理。一般性地,可将第一阈值设为50,第二阈值设为150。

在一个具体实施例中,在对灰度处理后的目标图像进行边缘检测之前,还包括步骤,对灰度处理后的目标图像进行滤波处理。例如,对灰度处理后的目标图像进行高斯滤波。这是由于图像存在很多噪声,边缘检测时会产生很多伪边缘。高斯滤波器是一种平滑线性滤波器,使用高斯滤波器对图像滤波,降低图像的“尖锐”变化,去除边缘检测的伪边缘,提高边缘检测准确性。高斯分布函数如下:

其中,σ为标准差。

示例性地,采用如下5x5高斯核进行滤波,高斯分布函数中σ为2.5:

进一步地,对边缘检测后的目标图像,基于hough检测,确认目标二维码图像的四条边,确定目标图像中的二维码图像区域。hough检测是直线检测的经典方法,使用直线检测直线,对于任意4条直线所组成的线段,它们的长度相近,夹角接近90度,则确认为目标二维码图像的四条边,以便后续仅对二维码图像区域进行修复、识别处理,减少数据处理量。

在一个实施例中,基于各待测点的像素修复值对待修复子区域进行修复,得到修复后的子二维码图的步骤后,还包括:

根据otsu算法,对修复后的子二维码图进行二值化处理,得到对应的子二值二维码图像以及修复后的目标图像;

根据目标二维码图像的角点坐标,确定修复后的目标图像的二值二维码图像区域并进行解码处理。

具体而言,根据otsu算法,对各修复后的子二维码图进行二值化处理,以提升修复后子二维码图的质量,得到对应的子二值二维码图像,完成对目标图像的修复,也就得到修复后的目标图像,实现对目标图像数据断层的修复,提升在终端屏幕存在裂缝时二维码的识别率,提高二维码识别可靠性。

进而根据目标二维码图像的角点坐标,确定修复后的目标图像的二值二维码图像区域,对该二值二维码图像区域进行精准定位并进行解码处理,提高解码效率。

在一个具体实施例中,由于屏幕裂缝使扫描到的二维码图像信息损坏,获取到的目标图像,存在数据断层,根据以下步骤对该目标二维码图像进行修复:

1)对目标图像进行灰度处理,由于彩色图像包含r、g、b三个通道,直接用于图像处理,计算量大。而采用灰度图像只有一个通道,则大大减少了计算量。

2)对灰度化后的目标图像进行高斯滤波,使用高斯滤波器对图像滤波,降低图像的“尖锐”变化,去除边缘检测的伪边缘。

3)基于canny算法对灰度处理后的目标图像进行边缘检测,进而基于hough变换进行直线检测,得到目标二维码图像,确定目标二维码图像的四条边。

4)对目标二维码图像进行透视变换,得到校正后的二维码俯视图。进而,对校正后的二维码俯视图进行otsu二值化处理得到如图6所示的二维码图。

5)对校正后的二维码俯视图进行n*n网格划分后,得到各子二维码俯视图,根据各子二维码俯视图计算对应的直方图。在子二维码直方图中存在三个波峰时(对应的子二维码俯视图区域由于屏幕裂缝存在数据断层),根据各子二维码直方图中的第一波峰、第二波峰和第三波峰分别对应的像素值,确定局部二值化阈值;根据以下公式对各子二维码俯视图中各点进行二值化处理得到对应的子原始蒙版像素值:

其中,t1为局部二值化阈值中的第一阈值,t2为局部二值化阈值中的第二阈值,p为子二维码俯视图中各点的原始像素值,pix为原始像素值二值化后对应的子原始蒙版像素值;第一阈值为第一波峰的像素值与第二波峰的像素值的平均值;第二阈值为第二波峰的像素值与第三波峰的像素值的平均值;第二阈值大于第一阈值;

6)根据子二维码俯视图中各点对应的子原始蒙版像素值,得到对应的子裂缝原始蒙版,则得到如图7所示的裂缝原始蒙版。裂缝原始蒙版由各子裂缝原始蒙版组成。

7)对各子裂缝原始蒙版采用3x3窗口中值滤波,去除噪点,得到对应的子裂缝蒙版,从而得到如图8所示的裂缝蒙版。裂缝蒙版由各子裂缝蒙版组成。

8)根据子裂缝蒙版确定对应的子二维码图中的待修复子区域,对待修复子区域进行修复,得到修复后的子二维码图。根据otsu算法,对修复后的子二维码图进行二值化处理,得到对应的子二值二维码图像以及由各子二值二维码图像组成的修复后的目标图像,修复后的目标图像如图9所示。可以直观看到,与图6中校正、二值化后的二维码图相比,修复后的图像二维码质量高,修复了原裂缝的数据断层,提高二维码识别可靠性。

9)根据目标二维码图像的角点坐标,确定修复后的目标图像的二值二维码图像区域并针对该区域进行解码处理,以便加快图像识别效率。

应该理解的是,虽然图1-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-3中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图10所示,提供了一种二维码图像修复装置,包括:

待修复区域确定模块,用于在子二维码直方图中存在三个波峰时,根据子二维码直方图中各波峰位置坐标,对对应的子二维码俯视图进行二值化处理,得到子裂缝蒙版并确定子二维码图中的待修复子区域;子二维码俯视图为基于包含裂缝的目标图像进行划分得到;子二维码直方图由子二维码俯视图计算得到;子二维码图为子二维码俯视图进行otsu二值化处理得到;

计算区域获取模块,用于获取环绕待修复子区域的计算区域;计算区域为待修复子区域外扩预设数量的像素得到;

修复值得到模块,用于基于待修复子区域中待测点与重心形成的计算直线,得到计算直线与待修复子区域的边界形成的第一交点和第二交点,以及计算直线在计算区域中的形成的第一线段和第二线段;根据第一距离、第二距离、第一像素平均值和第二像素平均值,得到待测点的像素修复值;第一距离为待测点与第一交点的距离;第二距离为待测点与第二交点的距离;第一像素平均值为第一线段上的像素平均值;第二像素平均值为第二线段上的像素平均值;

修复处理模块,用于基于各待测点的像素修复值对待修复子区域进行修复,得到修复后的子二维码图。

关于二维码图像修复装置的具体限定可以参见上文中对于二维码图像修复方法的限定,在此不再赘述。上述二维码图像修复装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、运营商网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种二维码图像修复方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

在子二维码直方图中存在三个波峰时,根据子二维码直方图中各波峰位置坐标,对对应的子二维码俯视图进行二值化处理,得到子裂缝蒙版并确定子二维码图中的待修复子区域;子二维码俯视图为基于包含裂缝的目标图像进行划分得到;子二维码直方图由子二维码俯视图计算得到;子二维码图为子二维码俯视图进行otsu二值化处理得到;

获取环绕待修复子区域的计算区域;计算区域为待修复子区域外扩预设数量的像素得到;

基于待修复子区域中待测点与重心形成的计算直线,得到计算直线与待修复子区域的边界形成的第一交点和第二交点,以及计算直线在计算区域中的形成的第一线段和第二线段;

根据第一距离、第二距离、第一像素平均值和第二像素平均值,得到待测点的像素修复值;第一距离为待测点与第一交点的距离;第二距离为待测点与第二交点的距离;第一像素平均值为第一线段上的像素平均值;第二像素平均值为第二线段上的像素平均值;

基于各待测点的像素修复值对待修复子区域进行修复,得到修复后的子二维码图。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

在子二维码直方图中存在三个波峰时,根据子二维码直方图中各波峰位置坐标,对对应的子二维码俯视图进行二值化处理,得到子裂缝蒙版并确定子二维码图中的待修复子区域;子二维码俯视图为基于包含裂缝的目标图像进行划分得到;子二维码直方图由子二维码俯视图计算得到;子二维码图为子二维码俯视图进行otsu二值化处理得到;

获取环绕待修复子区域的计算区域;计算区域为待修复子区域外扩预设数量的像素得到;

基于待修复子区域中待测点与重心形成的计算直线,得到计算直线与待修复子区域的边界形成的第一交点和第二交点,以及计算直线在计算区域中的形成的第一线段和第二线段;

根据第一距离、第二距离、第一像素平均值和第二像素平均值,得到待测点的像素修复值;第一距离为待测点与第一交点的距离;第二距离为待测点与第二交点的距离;第一像素平均值为第一线段上的像素平均值;第二像素平均值为第二线段上的像素平均值;

基于各待测点的像素修复值对待修复子区域进行修复,得到修复后的子二维码图。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-onlymemory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(randomaccessmemory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(staticrandomaccessmemory,sram)或动态随机存取存储器(dynamicrandomaccessmemory,dram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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