二维码定位方法及装置
技术领域
本申请涉及图像处理领域,尤其涉及一种二维码定位方法及装置。
背景技术
二维码又称为二维条形码,它通过某种特定的几何图形按一定规律在平面(二维方向)上分布形成的图形记录数据符号信息。与传统的条码比较,二维码具有信息容量高、纠错能力强、译码可靠性高等特点,同时,还具有成本低、易制作等优势。因此,二维码已经在多个领域内得到了广泛应用,例如,支付领域、身份认证领域等。
在使用二维码时,扫描二维码后,需要对二维码进行识别,以获取存储在二维码内的数据符号信息。当扫描到二维码图形后,通过对二维码进行定位、解码,来识别该二维码。相关技术中,是先识别出二维码图像中的位置探测图形,再通过位置探测图形来对二维码进行定位。
在二维码的日常使用中,在某些环境下经常会出现识别性差的问题,比如当二维码的位置探测图形出现少量污损或者亮度较弱时,经常无法准确识别出二维码的位置探测图形,导致无法对二维码进行定位,从而使二维码识别失败。因此,业内亟需一种在不同环境下均具有较高准确性和有效性的二维码定位的方法。
发明内容
本申请实施例的目的是提供一种二维码定位方法及装置,二维码定位的准确性和有效性较高,进而提高了二维码的识别效率。
为解决上述技术问题,本申请实施例是这样实现的:
本申请实施例提供了一种二维码定位方法,包括:
在含有第一类像素和第二类像素的二维码图像中,以预设的行像素探测规则及列像素探测规则,确定所述二维码图像中的疑似位置探测图形的中心位置;其中,所述行像素探测规则包括:第一类像素、第二类像素、第一类像素的顺序排布比例满足第一预设比例,所述列像素探测规则包括:第一类像素、第二类像素、第一类像素的顺序排布比例满足第二预设比例;
根据确定的所述疑似位置探测图形的中心位置识别出相应的疑似位置探测图形;
从识别出的所述疑似位置探测图形中,确定符合所述二维码图像的定位规则的图形,作为所述二维码图像的位置探测图形。
本申请实施例还提供了一种二维码定位方法,包括:
在含有第一类像素和第二类像素的二维码图像中,以预设的行像素探测规则及列像素探测规则,确定所述二维码图像中的疑似位置探测图形的中心位置;其中,所述行像素探测规则包括:连续排布的所述第一类像素或所述第二类像素的个数达到第一预设阈值,所述列像素探测规则包括:连续排布的第一类像素或第二类像素的个数达到第二预设阈值;
根据确定的所述疑似位置探测图形的中心位置识别出相应的疑似位置探测图形;
从识别出的所述疑似位置探测图形中,确定符合所述二维码图像的定位规则的图形,作为所述二维码图像的位置探测图形。
本申请实施例还提供了一种二维码定位方法,包括:
在含有第一类像素和第二类像素的二维码图像中,以预设的像素探测规则,确定所述二维码图像中的疑似位置探测图形的中心位置;其中,所述像素探测规则包括第一类像素、第二类像素、第一类像素的顺序排布比例满足预设比例;
根据确定的所述疑似位置探测图形的中心位置识别出相应的疑似位置探测图形;
从识别出的所述疑似位置探测图形中,确定符合所述二维码图像的定位规则的图形,作为所述二维码图像的位置探测图形。
本申请实施例还提供了一种二维码定位装置,包括:
位置确定模块,用于在含有第一类像素和第二类像素的二维码图像中,以预设的行像素探测规则及列像素探测规则,确定所述二维码图像中的疑似位置探测图形的中心位置;其中,所述行像素探测规则包括:第一类像素、第二类像素、第一类像素的顺序排布比例满足第一预设比例,所述列像素探测规则包括:第一类像素、第二类像素、第一类像素的顺序排布比例满足第二预设比例;
识别模块,用于根据确定的所述疑似位置探测图形的中心位置识别出相应的疑似位置探测图形;
图形确定模块,用于从识别出的所述疑似位置探测图形中,确定符合所述二维码图像的定位规则的图形,作为所述二维码图像的位置探测图形。
本申请实施例还提供了一种二维码定位装置,包括:
位置确定模块,用于在含有第一类像素和第二类像素的二维码图像中,以预设的行像素探测规则及列像素探测规则,确定所述二维码图像中的疑似位置探测图形的中心位置;其中,所述行像素探测规则包括:连续排布的所述第一类像素或所述第二类像素的个数达到第一预设阈值,所述列像素探测规则包括:连续排布的第一类像素或第二类像素的个数达到第二预设阈值;
识别模块,用于根据确定的所述疑似位置探测图形的中心位置识别出相应的疑似位置探测图形;
图形确定模块,用于从识别出的所述疑似位置探测图形中,确定符合所述二维码图像的定位规则的图形,作为所述二维码图像的位置探测图形。
本申请实施例还提供了一种二维码定位装置,包括:
位置确定模块,用于在含有第一类像素和第二类像素的二维码图像中,以预设的像素探测规则,确定所述二维码图像中的疑似位置探测图形的中心位置;其中,所述像素探测规则包括第一类像素、第二类像素、第一类像素的顺序排布比例满足预设比例;
识别模块,用于根据确定的所述疑似位置探测图形的中心位置识别出相应的疑似位置探测图形;
图形确定模块,用于从识别出的所述疑似位置探测图形中,确定符合所述二维码图像的定位规则的图形,作为所述二维码图像的位置探测图形。
本申请实施例还提供了一种二维码定位设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
在含有第一类像素和第二类像素的二维码图像中,以预设的行像素探测规则及列像素探测规则,确定所述二维码图像中的疑似位置探测图形的中心位置;其中,所述行像素探测规则包括:第一类像素、第二类像素、第一类像素的顺序排布比例满足第一预设比例,所述列像素探测规则包括:第一类像素、第二类像素、第一类像素的顺序排布比例满足第二预设比例;
根据确定的所述疑似位置探测图形的中心位置识别出相应的疑似位置探测图形;
从识别出的所述疑似位置探测图形中,确定符合所述二维码图像的定位规则的图形,作为所述二维码图像的位置探测图形。
本申请实施例还提供了一种二维码定位设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
在含有第一类像素和第二类像素的二维码图像中,以预设的行像素探测规则及列像素探测规则,确定所述二维码图像中的疑似位置探测图形的中心位置;其中,所述行像素探测规则包括:连续排布的所述第一类像素或所述第二类像素的个数达到第一预设阈值,所述列像素探测规则包括:连续排布的第一类像素或第二类像素的个数达到第二预设阈值;
根据确定的所述疑似位置探测图形的中心位置识别出相应的疑似位置探测图形;
从识别出的所述疑似位置探测图形中,确定符合所述二维码图像的定位规则的图形,作为所述二维码图像的位置探测图形。
本申请实施例还提供了一种二维码定位设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
在含有第一类像素和第二类像素的二维码图像中,以预设的像素探测规则,确定所述二维码图像中的疑似位置探测图形的中心位置;其中,所述像素探测规则包括第一类像素、第二类像素、第一类像素的顺序排布比例满足预设比例;
根据确定的所述疑似位置探测图形的中心位置识别出相应的疑似位置探测图形;
从识别出的所述疑似位置探测图形中,确定符合所述二维码图像的定位规则的图形,作为所述二维码图像的位置探测图形。
本申请实施例还提供了一种存储介质,用于存储计算机可执行指令,其特征在于,所述可执行指令在被执行时实现以下流程:
在含有第一类像素和第二类像素的二维码图像中,以预设的行像素探测规则及列像素探测规则,确定所述二维码图像中的疑似位置探测图形的中心位置;其中,所述行像素探测规则包括:第一类像素、第二类像素、第一类像素的顺序排布比例满足第一预设比例,所述列像素探测规则包括:第一类像素、第二类像素、第一类像素的顺序排布比例满足第二预设比例;
根据确定的所述疑似位置探测图形的中心位置识别出相应的疑似位置探测图形;
从识别出的所述疑似位置探测图形中,确定符合所述二维码图像的定位规则的图形,作为所述二维码图像的位置探测图形。
本申请实施例还提供了一种存储介质,用于存储计算机可执行指令,其特征在于,所述可执行指令在被执行时实现以下流程:
在含有第一类像素和第二类像素的二维码图像中,以预设的行像素探测规则及列像素探测规则,确定所述二维码图像中的疑似位置探测图形的中心位置;其中,所述行像素探测规则包括:连续排布的所述第一类像素或所述第二类像素的个数达到第一预设阈值,所述列像素探测规则包括:连续排布的第一类像素或第二类像素的个数达到第二预设阈值;
根据确定的所述疑似位置探测图形的中心位置识别出相应的疑似位置探测图形;
从识别出的所述疑似位置探测图形中,确定符合所述二维码图像的定位规则的图形,作为所述二维码图像的位置探测图形。
本申请实施例还提供了一种存储介质,用于存储计算机可执行指令,其特征在于,所述可执行指令在被执行时实现以下流程:
在含有第一类像素和第二类像素的二维码图像中,以预设的像素探测规则,确定所述二维码图像中的疑似位置探测图形的中心位置;其中,所述像素探测规则包括第一类像素、第二类像素、第一类像素的顺序排布比例满足预设比例;
根据确定的所述疑似位置探测图形的中心位置识别出相应的疑似位置探测图形;
从识别出的所述疑似位置探测图形中,确定符合所述二维码图像的定位规则的图形,作为所述二维码图像的位置探测图形。
本申请实施例中的二维码定位方法及装置,根据第一类像素、第二类像素、第一类像素的排布比例或者连续排布的第一类像素的个数或者连续排布的第二类像素的个数确定二维码图像中的疑似位置探测图形的中心位置,具有一定的容错性,这样即使在二维码的位置探测图形存在污损或者亮度较弱的情况下,也能识别出疑似位置探测图形,提高了疑似位置探测图形识别的有效性;另外,当通过上述方式识别出疑似位置探测图形后,再从识别出的疑似位置探测图形中确定出二维码的位置探测图形,准确性较高。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的二维码定位方法的第一种流程示意图;
图2为本申请实施例提供的二维码的位置探测图形的示意图;
图3为本申请实施例提供的在二维码上建立的坐标系的示意图;
图4为本申请实施例提供的在二维码的位置探测图形上确定的第一像素排布和第二像素排布的示意图;
图5为本申请实施例提供的二维码定位方法的第二种流程示意图;
图6为本申请实施例提供的二维码定位方法的第三种流程示意图;
图7为本申请实施例提供的二维码定位方法的第四种流程示意图;
图8为本申请实施例提供的二维码定位方法的第五种流程示意图;
图9为本申请实施例提供的二维码定位装置的模块组成示意图;
图10为本申请实施例提供的二维码定位设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请实施例提供了一种二维码定位方法及装置,该方法可以应用在通过二维码进行支付或身份认证等场景中。该二维码可以是任何应用程序所使用的二维码,比如,支付宝或者微信等应用程序。
一般,在应用二维码时,需要对二维码进行识别,以获取二维码内存储的信息,在对二维码进行识别时至少包括二维码定位和二维码解码这两个步骤,即二维码定位是二维码识别的其中一个步骤。
本申请实施例提供的方法的执行主体可以是终端,比如说,手机、计算机、平板电脑或者二维码扫描设备等。在该种情况下,当终端获取到二维码图像后,则由终端直接在获取到的二维码图像上执行本申请实施例提供的方法。当然,本申请实施例提供的方法的执行主体还可以是服务器,在该种情况下,则是先通过终端扫描获取二维码图像,之后由服务器从终端处获取该二维码图像,再由服务器在获取到的二维码图像上执行本申请实施例提供的方法。
图1为本申请实施例提供的二维码定位方法的第一种流程示意图,如图1所示,该方法至少包括以下步骤:
步骤S102,在含有第一类像素和第二类像素的二维码图像中,以预设的行像素探测规则及列像素探测规则,确定该二维码图像中的疑似位置探测图形的中心位置;其中,上述行像素探测规则包括:第一类像素、第二类像素、第一类像素的顺序排布比例满足第一预设比例,上述列像素探测规则包括:第一类像素、第二类像素、第一类像素的顺序排布比例满足第二预设比例。
其中,上述第一类像素和第二类像素为颜色不同的像素,比如,当上述二维码为黑白二维码时,可以是,上述第一类像素为黑色像素,上述第二类像素为白色像素。当上述二维码为蓝白二维码时,可以是,上述第一类像素为蓝色像素,第二类像素为白色像素。
另外,在一种具体实施方式中,为了方便后续处理,在获取到原始的二维码图像后,对原始的二维码图像进行二值化处理,得到该二维码图像的二值化图像。在该种情况下,二维码图像上的像素只有黑色和白色两种颜色,因此,可以是第一类像素为黑色像素,第二类像素为白色像素。
一般的,在每个二维码中均设置有三个位置探测图形,且三个位置探测图形分别位于二维码的四个角中的任意三个角上。位置探测图形一般为矩形图形,可以是四边均相等的正方形,也可以是长方形。每个位置探测图形可以看作是由三个中心重叠的同心矩形组成。图2示出了本申请实施例中一种可能的二维码的位置探测图形的示意图,图2中的位置探测图形由三个中心重叠的同心正方形组成,这三个正方形分别为7*7个黑色模块、5*5个白色模块、3*3个黑色模块,即第一类像素为黑色像素、第二类像素为白色像素,该位置探测图形的模块宽度比为1:1:3:1:1。在图2中,将位置探测图形的最外面的黑色矩形区域记为第一区域,位置探测图形的中间的黑色矩形区域记为第三区域,第一区域和第二区域中间的白色区域记为第二区域。
其中,上述第一预设比例为1:n:1,且n大于1;上述第二预设比例为1:m:1,且m大于1;其中,m和n的取值可以相同,也可以不同,m和n的具体取值可以根据实际应用场景确定,比如说,针对现有的1:1:3:1:1模式的位置探测图形,上述m和n的取值均可以为5,即第一预设比例可以是1:5:1,第二预设比例可以是1:5:1。
在本申请实施例中,确定二维码图像中的疑似位置探测图形的中心位置,包括以下步骤(a1)和(a2):
(a1)确定行像素中的第一类像素、第二类像素、第一类像素的顺序排布比例满足第一预设比例的第一像素排布;及确定列像素中第一类像素、第二类像素、第一类像素的顺序排布比例满足第二预设比例的第二像素排布;
(a2)根据所述第一像素排布的中心点及第二像素排布的中心点,确定疑似位置探测图形的中心位置。
其中,上述第一类像素、第二类像素、第一类像素的顺序排布比例满足第一预设比例指的是第一类像素:第二类像素:第一类像素=1:n:1;上述第一类像素、第二类像素、第一类像素的顺序排布比例满足第二预设比例指的是第一类像素:第二类像素:第一类像素=1:m:1。具体的,此处像素的排布比例可以是像素个数的排布比例。
在本申请实施例中,满足第一预设比例的第一像素排布为只穿过图2中的第一区域和第二区域的行像素,满足第二预设比例的第二像素排布为只穿过图2中的第一区域和第二区域的列像素。
在实际应用时,由于扫描到的二维码图形可能存在变形、残缺或污损等问题,从而导致二维码图像中的位置探测图形中的第一像素排布中的第一类像素、第二类像素、第一类像素的顺序排布比例无法严格满足第一预设比例,第二像素排布中的第一类像素、第二类像素、第一类像素的顺序排布比例无法严格满足第二预设比例,因此,在上述步骤(a1)中,只要第一类像素、第二类像素、第一类像素的顺序排布比例在第一预设比例或者第二预设比例的误差范围内,则可以认为第一类像素、第二类像素、第一类像素的顺序排布满足第一预设比例或者第二预设比例。
在上述步骤(a2)中,可以根据第一像素排布的中心点及第二像素排布的中心点,确定出疑似位置探测图形的中心位置坐标,进而确定出疑似位置探测图形的中心位置。
在一种具体实施方式中,以二维码的左上角作为坐标原点O,以过坐标原点的水平线作为横轴(X轴),以过坐标原点的竖直线作为纵轴(Y轴),建立OXY坐标系,如图3所示。具体的,疑似位置探测图形的中心位置坐标至少可以通过(b1)、(b1)和(b3)三种方式实现:
(b1)在二维码图像上沿着X方向画一条扫描线,使用该扫描线沿着Y方向对二维码图像进行扫描,在第一预设位置处确定一个第一像素排布,之后在二维码图像上沿着Y方向画一条扫描线,使用该扫描线沿着X方向对二维码图像进行扫描,在每个疑似位置探测图形上的第二预设位置处和第三预设位置处分别确定一个第二像素排布,将第一预设位置处的第一像素排布记为P1,将第二预设位置处的第二像素排布记为P2,将第三预设位置处的第二像素排布记为P3,如图4所示,将第二像素排布P2距离该疑似位置探测图形的左边缘的距离记为第一距离,将第二像素排布P3距离该疑似位置探测图形的右边缘的距离记为第二距离,在一种具体实施方式中,为了便于计算,使得第二像素排布P2和第二像素排布P3的位置刚好满足第一距离和第二距离相等,计算第二像素排布P2和第二像素排布P3在水平方向上的位置的平均值,该平均值则是第一像素排布P1的中心点,将该中心点记为疑似位置探测图形的中心位置的横坐标;
另外,在本申请实施例中,二维码上的位置探测图形被平均划分为多个矩形模块,该矩形模块可以是正方形模块,也可以是长方形模块,该矩形模块的长宽比例可以根据实际应用场景进行设置。
通过计算疑似位置探测图形的宽度与该方向上的矩形模块的个数的比值,可以计算出每个矩形模块的宽度。之后,根据第一像素排布P1在竖直方向上的位置,以及第一像素排布P1在竖直方向上距离中心位置的矩形模块的个数,确定出第二像素排布的中心点,该第二像素排布的中心点则是疑似位置探测图形的中心位置的纵坐标。
其中,上述第一预设位置可以是使得第一像素排布满足第一预设比例的任意位置,第二预设位置和第三预设位置也为使第二像素排布满足第二预设比例的任意位置。优选的,为了便于计算,上述第一预设位置、第二预设位置和第三预设位置均可以设置在整个矩形模块处。
(b2)在该种情况下,疑似位置探测图形的中心位置的横坐标的确定方法与上述(b1)中横坐标的确定方法相同,此处不再赘述。
另外,在该种情况下,采用与确定横坐标的方法相同的方法确定疑似位置探测图形的中心位置的纵坐标。具体过程则为:在二维码图像上沿着X方向画一条扫描线,使用该扫描线沿着Y方向对二维码图像进行扫描,在第一预设位置处确定第一像素分布P1,在第四预设位置处确定第一像素排布p4。根据第一像素排布p1和第一像素排布p4确定疑似位置探测图形的中心位置的纵坐标,具体过程和上述横坐标的确定过程相似,此处不再赘述。
(b3)在二维码图像上沿着X方向画一条扫描线,使用该扫描线沿着Y方向对二维码图像进行扫描,在第一预设位置处确定第一像素排布p1,在二维码图像上沿着Y方向画一条扫描线,使用该扫描线沿着X方向对二维码图像进行扫描,在第二预设位置处确定第二像素排布p2,根据第一像素排布P1的第一个像素与最后一个像素之间的距离,确定第一像素排布P1的中心点,采用同样的方法确定出第二像素排布p2的中心点,根据第一像素排布p1的中心点确定疑似位置探测图形的中心位置的横坐标,根据第二像素排布p2的中心点确定疑似位置探测图形的中心位置的纵坐标。
其中,在本申请实施例中,第一像素排布为疑似位置探测图形的其中一行像素,第二像素排布为疑似位置探测图形的其中一列像素。
在本申请实施例中,仅通过第一类像素、第二类像素、第一类像素的顺序排布比例,确定二维码图像中的疑似位置探测图形的中心位置,提高了二维码的识别的有效性。
步骤S104,根据确定的疑似位置探测图形的中心位置识别出相应的疑似位置探测图形。
在本申请实施例中,在确定出疑似位置探测图形的中心位置后,则将该中心位置所在的图形确定为该二维码的疑似位置探测图形。
步骤S106,从识别出的疑似位置探测图形中,确定符合二维码图像的定位规则的图形,作为二维码图像的位置探测图形。
在本申请实施例中,通过上述步骤S102和步骤S104可以识别出二维码图像中的疑似位置探测图形,但是,仅仅通过上述两个步骤识别出的疑似位置探测图形中可能存在其它图形,因此,为了提高位置探测图形识别的准确性,需要对识别出的疑似位置探测图形进行进一步筛选,并从筛选后的疑似位置探测图形中,确定出符合二维码图像的定位规则的图形,具体是通过如下步骤(1)和(2)实现的:
(1)从识别出的疑似位置探测图形中,确定符合第一筛选条件和/或第二筛选条件的疑似位置探测图形;其中,上述第一筛选条件包括在中心位置相邻的预设区域内,第一类像素和/或第二类像素的个数符合预设的阈值范围;上述第二筛选条件包括穿过中心位置的第三像素排布中的第一类像素、第二类像素、第一类像素、第二类像素、第一类像素的顺序排布比例满足第三预设比例;
(2)从符合第一筛选条件和/或第二筛选条件的疑似位置探测图形中,确定符合二维码的定位规则的图形。
具体的,上述从识别出的疑似位置探测图形中,确定符合二维码图形的定位规则的图形包括如下三种情况:
第一种情况,
从识别出的疑似位置探测图形中,确定符合第一筛选条件的疑似位置探测图形;从符合第一筛选条件的疑似位置探测图形中,确定符合二维码的定位规则的图形;
第二种情况,
从识别出的疑似位置探测图形中,确定符合第二筛选条件的疑似位置探测图形;从符合第二筛选条件的疑似位置探测图形中,确定符合二维码的定位规则的图形;
第三种情况,
从识别出的疑似位置探测图形中,确定符合第一筛选条件和第二筛选条件的疑似位置探测图形;从符合第一筛选条件和第二筛选条件的疑似位置探测图形中,确定符合二维码的定位规则的图形。
在上述第三种情况中,一种具体的实施方式可以是:先从识别出的疑似位置探测图形中,确定符合第一筛选条件的疑似位置探测图像;再从符合第一筛选条件的疑似位置探测图形中,筛选符合第二筛选条件的疑似位置探测图形;从符合第二筛选条件的疑似位置探测图形中,确定符合二维码的定位规则的图形。
当然,还可以是先筛选出符合第二筛选条件的疑似位置探测图形,再从符合第二筛选条件的疑似位置探测图形中筛选符合第一筛选条件的疑似位置探测图形。
具体的,在本申请实施例中,使用第一筛选条件进行筛选的过程如下:以疑似位置探测图形的中心位置处的像素点为中心,在中心位置处的像素点周围选取预设数量个像素,比如,选取包括中心位置处的像素点在内的9个像素点、或者5个像素点等,确定选取的预设数量个像素点中第一类像素和第二类像素的个数,根据第一类像素或第二类像素的个数,进行筛选。例如,中心位置所在的第三区域为黑色像素区域,则第一类像素为黑色像素,第二类像素为白色像素,正常情况下,第三区域内的像素均为第一类像素,或者,由于椒盐噪声的影响,可能会有几个白色像素,因此,确定选取的预设数量个像素点中第二类像素点的个数,当第二类像素点的个数与预设数量的比值大于预设比值时,则将该疑似位置探测图形过滤掉。
具体的,上述第三像素排布可以是包含中心位置处的像素点在内的任意一条像素排布,比如说,可以是疑似位置探测图形的对角线、还可以是包含中心位置处的像素点且与水平线之间夹角值为30°的斜线等等。
在1:1:3:1:1模式的位置探测图形中,则上述第三预设比例为1:1:3:1:1。
图5示出了本申请实施例提供的二维码定位方法的第二种流程示意图,如图5所示,该方法包括以下步骤:
步骤S202,在含有第一类像素和第二类像素的二维码图像中,确定行像素中第一类像素、第二类像素、第一类像素的顺序排布比例满足第一预设比例的第一像素排布;及确定列像素中第一类像素、第二类像素、第一类像素的顺序排布比例满足第二预设比例的第二像素排布;
步骤S204,根据第一像素排布的中心点及第二像素排布的中心点,确定疑似位置探测图形的中心位置;
步骤S206,根据确定的疑似位置探测图形的中心位置识别出相应的疑似位置探测图形;
步骤S208,从识别出的疑似位置探测图形中,确定符合第一筛选条件的疑似位置探测图形;
步骤S210,从符合第一筛选条件的疑似位置探测图形中,确定符合第二筛选条件的疑似位置探测图形;
步骤S212,从符合第二筛选条件的疑似位置探测图形中,确定符合二维码的定位规则的图形。
二维码中的三个位置探测图形位于二维码的四个角中的任意三个角上,因此,上述定位规则可以包括:三个位置探测图形的中心点的连线中,长度最短的两条连线垂直且长度相等;
上述位置探测图形的中心点指的是位置探测图形的中心位置。
因此,从符合第一筛选条件和/或第二筛选条件的疑似位置探测图形中,确定符合二维码的定位规则的图形,包括:从符合第一筛选条件和/或第二筛选条件的疑似位置探测图形中,按照每三个一组的方式形成多组疑似位置探测图形;分别判断每组疑似位置探测图形是否满足上述定位规则;将满足上述定位规则的至少一组疑似位置探测图形作为二维码图像的位置探测图形。
其中,上述筛选出的符合第一筛选条件和/或第二筛选条件的疑似位置探测图形至少为3个。在本申请实施例中,将筛选出的符合第一筛选条件和/或第二筛选条件的疑似位置探测图形的个数记为N,N个疑似位置探测图形按照每三个一组的方式可以形成
组疑似位置探测图形,比如,上述筛选出的符合第一筛选条件和/或第二筛选条件的疑似位置探测图形为4个,分别记为A
1、A
2、A
3和A
4,按照每三个一组的形式可以形成
组疑似位置探测图形,分别记为{A
1,A
2,A
3}、{A
1,A
3,A
4}、{A
1,A
2,A
4}和{A
2、A
3、A
4}。
具体的,每组疑似位置探测图形的中心点的连线可以构成一个三角形,在判断每组疑似位置探测图形是否满足上述定位规则时,可以通过判断上述三角形中长度最短的两条边的夹角值是否是90°,以及长度最短的两条边是否相等来判断每组疑似位置探测图形是否满足定位规则。由于获取到的二维码图像可能存在变形等情况,因此由三个位置探测图形的中心点构成的三角形中两个短边的夹角值不一定是90°,因此,在实际应用中,在判断每组疑似位置探测图形是否满足定位规则时,只要每组疑似位置探测图形的中心点构成的三角形的两个短边的夹角值与90°之间的差值在预设范围内,且两个短边之间的长度差也在预设误差范围内,则确定该组疑似位置探测图形满足定位规则。
除了上述确定符合二维码的定位规则的图形外,本申请实施例还提供了如下方法,具体包括:
从符合第一筛选条件和/或第二筛选条件的疑似位置探测图形中,按照每三个一组的方式形成多组疑似位置探测图形;确定每组疑似位置探测图形中的三个疑似位置探测图形的中心点的连线构成的三角形的几何参数和三个疑似位置探测图形的面积的均差,其中,上述几何参数包括三角形中长度最短的两条连线的夹角值和长度最短的两条连线的长度差值;
根据上述夹角值、上述长度差值和上述均差,确定符合上述二维码的定位规则的图形。
其中,上述确定三个疑似位置探测图形的面积的均差的具体过程如下:根据每个疑似位置探测图形的长度和宽度,以及每个疑似位置探测图形上的模块的个数,确定出每个模块的长和宽,计算出每个模块的面积。之后,根据每个模块的面积和模块的个数,计算每个疑似位置探测图形的面积。最后,根据三个疑似位置探测图形的面积,及均差公式,计算出三个疑似位置探测图形的面积的均差。
具体的,在本申请实施例中,上述根据夹角值、长度差值和均差,确定符合上述二维码的定位规则的图像,具体包括如下步骤:
根据上述夹角值、上述长度差值和均差,通过公式(1)计算每组疑似位置探测图形的得分;
分别将每组疑似位置探测图形的得分与预设分值进行比较,根据比较结果确定符合二维码的定位规则的图形;
其中,在公式(1)中,a、b、c、d均为常量,xi表示的是第i组疑似位置探测图形的中心点的连线构成的三角形中长度最短的两条连线的夹角值,yi表示的是第i组疑似位置探测图形的中心点的连线构成的三角形中长度最短的两条连线的长度差值,zi表示的是第i组疑似位置探测图形中的三个疑似位置探测图形的面积的均差,fi表示的是第i组疑似位置探测图形的得分。
当确定出每组疑似位置探测图形的得分后,将该得分与预设分值进行比较,在一种具体实施方式中,当该得分大于或等于预设分值时,则确定该组疑似位置探测图形符合二维码的定位规则。
在本申请实施例中,确地出的符合二维码定位规则的位置探测图形的组数可以是一组或者多组。
基于上述图1至图5中的方法,本申请实施例还提供了一种二维码定位方法,图6为本申请实施例提供的二维码定位方法的第三种流程示意图,该方法的执行主体可以是终端,也可以是服务器,针对图6所示的方法,这里重点介绍与上述图1至图5中的方法的不同之处,相同之处可以参考前述图1至图5的描述,这里不再赘述,如图6所示,该方法包括以下步骤:
步骤S602,在含有第一类像素和第二类像素的二维码图像中,以预设的行像素探测规则及列像素探测规则,确定上述二维码图像中的疑似位置探测图形的中心位置;其中,上述行像素探测规则包括:连续排布的第一类像素或第二类像素的个数达到第一预设阈值,列像素探测规则包括:连续排布的第一类像素或第二类像素的个数达到第二预设阈值。
具体的,上述行像素探测规则可以是连续排布的第一类像素的个数达到第一预设阈值,相应的,列像素探测规则为连续排布的第一类像素的个数达到第二预设阈值;或者,上述行像素探测规则为连续排布的第二类像素的个数达到第一预设阈值,相应的,列像素探测规则为连续排布的第二类像素的个数达到第二预设阈值。
上述第一预设阈值与第二预设阈值的大小可以相等,在一种具体应用场景中,支付宝所使用的二维码中,位置探测图形为正方形,即长和宽相等,这时,第一预设阈值和第二预设阈值则相等。
其中,满足上述行像素探测规则和列像素探测规则的像素排布一般位于二值探测图形的第一区域(如图2所示)。
步骤S604,根据确定的疑似位置探测图形的中心位置识别出相应的疑似位置探测图形。
步骤S606,从识别出的疑似位置探测图形中,确定符合上述二维码的定位规则的图形,作为上述二维码图像的位置探测图形。
在一种具体实施方式中,比如支付宝所使用的黑白二维码,其位置探测图形为1:1:3:1:1模式,三个中心重叠的同心正方形,分别为7*7个黑色模块、5*5个白色模块、3*3个黑色模块,上述行像素探测规则可以是连续排布的黑色像素的个数达到7*7个黑色模块处的黑色像素的个数,上述列像素探测规则为连续排布的黑色像素的个数达到7*7个黑色模块处的黑色像素的个数。满足上述行像素探测规则的第一像素排布位于位置探测图形的第一区域,满足上述列像素探测规则的第二像素排布位于位置探测图形的第一区域,这样可以快速识别出二维码中的疑似位置探测图形。
在本申请实施例中,根据第一类像素、第二类像素、第一类像素的排布比例或者连续排布的第一类像素的个数或者连续排布的第二类像素的个数确定二维码图像中的疑似位置探测图形的中心位置,具有一定的容错性,这样即使在二维码的位置探测图形存在污损或者亮度较弱的情况下,也能识别出疑似位置探测图形,提高了疑似位置探测图形识别的有效性;另外,当通过上述方式识别出疑似位置探测图形后,再从识别出的疑似位置探测图形中确定出二维码的位置探测图形,准确性较高。
基于上述图1至图5中的方法,本申请实施例还提供了一种二维码定位方法,图7为本申请实施例提供的二维码定位方法的第四种流程示意图,该方法的执行主体可以是终端,也可以是服务器,针对图7所示的方法,这里重点介绍与上述图1至图5中的方法的不同之处,相同之处可以参考前述图1至图5的描述,这里不再赘述,如图7所示,该方法包括以下步骤:
步骤S702,在含有第一类像素和第二类像素的二维码图像中,以预设的像素探测规则,确定上述二维码图像中的疑似位置探测图形的中心位置;其中,上述像素探测规则包括第一类像素、第二类像素、第一类像素的顺序排布比例满足预设比例。
针对现阶段支付宝所使用的二维码,上述预设比例可以是1:5:1。
在本申请实施例中,上述第一类像素为前景色像素,第二类像素为背景色像素,具体的,上述第一类像素为黑色像素或蓝色像素,第二类像素为与所述第一类像素的色差值超过设定阈值的像素,比说,第二类像素可以是白色。
当然,除了黑色像素和蓝色像素外,上述第一类像素还可以是其它颜色的像素。
目前,支付宝在使用的二维码包括黑白二维码、蓝白二维码等,因此,在一种具体实施方式中,第一类像素为黑色像素,第二类像素为白色像素。在另外一种实施方式中,第一类像素为蓝色像素,第二类像素为白色像素。
步骤S704,根据确定的疑似位置探测图形的中心位置识别出相应的疑似位置探测图形。
步骤S706,从识别出的疑似位置探测图形中,确定符合二维码图像的定位规则的图形,作为二维码图像的位置探测图形。
以支付宝所使用的黑白二维码为例,现在结合具体应用场景,介绍一种具体的二维码的定位装置,图8为本申请实施例提供的二维码定位方法的第四种流程示意图,该方法的执行主体可以是终端,也可以是服务器,如图8所示,该方法包括以下步骤:
步骤S802,获取通过支付宝扫描到的原始二维码图像;
步骤S804,对原始二维码图像进行处理,得到包含有黑色像素和白色像素的二维码图像;
其中,上述对原始二维码图形进行处理,可以包括去噪、二值化处理等过程。
步骤S806,在含有黑色像素和白色像素的二维码图像中,以预设的像素探测规则,确定行像素中黑色像素、白色像素、黑色像素的顺序排布比例满足1:5:1的行像素排布及列像素排布;
步骤S808,根据上述行像素排布的中心点和列像素排布的中心点,确定疑似位置探测图形的中心位置;
步骤S810,根据确定的疑似位置探测图形的中心位置识别出相应的疑似位置探测图形;
步骤S812,从识别出的疑似位置探测图形中,确定符合第一筛选条件的疑似位置探测图形;
步骤S814,从符合第一筛选条件的疑似位置探测图形中筛选出符合第二筛选条件的疑似位置探测图形;
步骤S816,从符合第二筛选条件的疑似位置探测图形中,按照每三个一组的方式形成多组疑似位置探测图形;
步骤S818,判断每组疑似位置探测图形是否满足二维码的定位规则;如果是,执行步骤S820;
步骤S820,将该组疑似位置探测图形作为二维码图像的位置探测图形。
通过上述介绍的二维码定位方法,根据第一类像素、第二类像素、第一类像素的排布比例,确定二维码图像中的疑似位置探测图形的中心位置,具有一定的容错性,这样即使在二维码的位置探测图形存在污损或者亮度较弱的情况下,也能识别出疑似位置探测图形,提高了疑似位置探测图形识别的有效性;另外,当通过上述方式识别出疑似位置探测图形后,再从识别出的疑似位置探测图形中确定出二维码的位置探测图形,准确性较高。
对应上述的二维码定位方法,基于相同的思路,本申请实施例还提供了一种二维码定位装置,可以应用在终端侧,也可以应用在服务器侧,图9为本申请实施例提供的二维码定位装置的模块组成示意图,如图9所示,该装置包括:
位置确定模块91,用于在含有第一类像素和第二类像素的二维码图像中,以预设的行像素探测规则及列像素探测规则,确定上述二维码图像中的疑似位置探测图形的中心位置;其中,上述行像素探测规则包括:第一类像素、第二类像素、第一类像素的顺序排布比例满足第一预设比例,上述列像素探测规则包括:第一类像素、第二类像素、第一类像素的顺序排布比例满足第二预设比例;
识别模块92,用于根据确定的疑似位置探测图形的中心位置识别出相应的疑似位置探测图形;
图形确定模块93,用于从识别出的疑似位置探测图形中,确定符合二维码图形的定位规则的图形,作为二维码图像的位置探测图形。
可选地,上述第一预设比例为1:n:1,且n大于1;上述第二预设比例为1:m:1,且m大于1。
可选的,上述位置确定模块91包括像素确定单元和位置确定单元,具体包括像素确定单元和位置确定单元;
上述像素确定单元,用于确定行像素中第一类像素、第二类像素、第一类像素的顺序排布比例满足第一预设比例的第一像素排布;及确定列像素中第一类像素、第二类像素、第一类像素的顺序排布比例满足第二预设比例的第二像素排布;上述位置确定单元,用于根据上述第一像素排布的中心点及第二像素排布的中心点,确定上述疑似位置探测图形的中心位置。
可选地,上述图形确定模块93包括第一图形确定单元和第二图形确定单元,具体包括:
上述第一图形确定单元,用于从识别出的疑似位置探测图形中,确定符合第一筛选条件和/或第二筛选条件的疑似位置探测图形;其中,上述第一筛选条件包括在上述中心位置相邻的预设区域内,第一类像素和/或第二类像素的个数符合预设的阈值范围;第二筛选条件包括穿过上述中心位置的第三像素排布中的第一类像素、第二类像素、第一类像素、第二类像素、第一类像素的顺序排布比例满足第三预设比例;上述第二确定单元,用于从符合第一筛选条件和/或第二筛选条件的疑似位置探测图形中,确定符合上述二维码的定位规则的图形。
可选地,上述定位规则包括:三个位置探测图形的中心点的连线中,长度最短的两条连线垂直且长度相等,上述第二图形确定单元,具体用于:
从符合第一筛选条件和/或第二筛选条件的疑似位置探测图形中,按照没三个一组的方式形成多组疑似位置探测图形;分别判断每组疑似位置探测图形是否满足上述定位规则;将满足上述定位规则的至少一组疑似位置探测图形作为上述二维码图像的位置探测图形。
可选地,上述第二图形确定单元,还具体用于:
从符合第一筛选条件和/或第二筛选条件的疑似位置探测图形中,按照每三个一组的方式形成多组疑似位置探测图形;确定每组疑似位置探测图形中的三个疑似位置探测图形的中线点的连线构成的三角形的几何参数和三个疑似位置探测图形的面积的均差,其中,上述几何参数包括上述三角形中长度最短的两条连线的夹角值和长度最短的两条连线的长度差值;根据上述夹角值、上述长度差值和上述均差,确定符合上述二维码的定位规则的图形。
可选地,上述第二图形确定单元,具体通过以下过程确定符合二维码的定位规则的图形:
根据上述夹角值、上述长度差值和均差,通过如下公式计算每组疑似位置探测图形的得分;分别将每组疑似位置探测图形的得分与预设分值进行比较,根据比较结果确定符合上述二维码的定位规则的图形;
其中,在上述公式中,a、b、c、d均为常量,xi表示的是第i组疑似位置探测图形的中心点的连线构成的三角形中长度最短的两条连线的夹角值,yi表示的是第i组疑似位置探测图形的中心点的连线构成的三角形中长度最短的两条连线的长度差值,zi表示的是第i组疑似位置探测图形中的三个疑似位置探测图形的面积的均差,fi表示的是第i组疑似位置探测图形的得分。
对应上述的二维码定位方法,基于相同的思路,上述图9所示的二维码定位装置中的各个模块,还具体如下功能:
上述位置确定模块91,还用于在含有第一类像素和第二类像素的二维码图像中,以预设的行像素探测规则及列像素探测规则,确定上述二维码图像中的疑似位置探测图形的中心位置;其中,上述行像素探测规则包括:连续排布的第一类像素或第二类像素的个数达到第一预设阈值,列像素探测规则包括:连续排布的第一类像素或第二类像素的个数达到第二预设阈值;
上述识别模块92,还用于根据确定的疑似位置探测图形的中心位置识别出相应的疑似位置探测图形;
上述图形确定模块93,还用于从识别出的疑似位置探测图形中,确定符合上述二维码图像的定位规则的图形,作为二维码图像的位置探测图形。
可选地,上述第一预设阈值与第二预设阈值相等。
对应上述的二维码定位方法,基于相同的思路,上述图9所示的二维码定位装置中的各个模块,还具体如下功能:
上述位置确定模块91,还用于在含有第一类像素和第二类像素的二维码图像中,以预设的像素探测规则,确定上述二维码图像中的疑似位置探测图形的中心位置;其中,上述像素探测规则包括第一类像素、第二类像素、第一类像素的顺序排布比例满足预设比例;
上述识别模块92,还用于根据确定的疑似位置探测图形的中心位置识别出相应的疑似位置探测图形;
上述图形确定模块93,还用于从识别出的疑似位置探测图形中,确定符合二维码图像的定位规则的图形,作为二维码图像的位置探测图形。
可选地,上述预设比例为1:5:1。
可选地,上述第一类像素为黑色像素或蓝色像素,第二类像素为与所述第一类像素的色差值超过设定阈值的像素。
通过本申请实施例中的二维码定位装置,首先根据第一类像素、第二类像素、第一类像素的排布比例或者连续排布的第一类像素的个数或者连续排布的第二类像素的个数,确定二维码的疑似位置探测图形,具有一定的容错性,这样即使在二维码的位置探测图形存在污损或者亮度较弱的情况下,也能识别出疑似位置探测图形,提高了疑似位置探测图形识别的有效性;另外,当通过上述方式识别出疑似位置探测图形后,再从识别出的疑似位置探测图形中确定出二维码的位置探测图形,准确性较高。
进一步地,基于上述图1至图8所示的方法,本申请实施例还提供了一种二维码定位设备,如图10所示。
二维码定位设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器901和存储器902,存储器902中可以存储有一个或一个以上存储应用程序或数据。其中,存储器902可以是短暂存储或持久存储。存储在存储器902的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对二维码定位设备中的一系列计算机可执行指令。更进一步地,处理器901可以设置为与存储器902通信,在二维码定位设备上执行存储器902中的一系列计算机可执行指令。二维码定位设备还可以包括一个或一个以上电源903,一个或一个以上有线或无线网络接口904,一个或一个以上输入输出接口905,一个或一个以上键盘906等。
在一个具体的实施例中,二维码定位设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对二维码定位设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
在含有第一类像素和第二类像素的二维码图像中,以预设的行像素探测规则及列像素探测规则,确定二维码图像中的疑似位置探测图形的中心位置;其中,上述行像素探测规则包括:第一类像素、第二类像素、第一类像素的顺序排布比例满足第一预设比例,上述列像素探测规则包括:第一类像素、第二类像素、第一类像素的顺序排布比例满足第二预设比例;
根据确定的疑似位置探测图形的中心位置识别出相应的疑似位置探测图形;
从识别出的疑似位置探测图形中,确定符合上述二维码的定位规则的图形,作为二维码的位置探测图形。
可选地,计算机可执行指令在被执行时,第一预设比例为1:n:1,且n大于1;第二预设比例为1:m:1,且m大于1。
可选地,计算机可执行指令在被执行时,确定二维码图像中疑似位置探测图形的中心位置,包括:确定行像素中第一类像素、第二类像素、第一类像素的顺序排布比例满足第一预设比例的第一像素排布;及确定列像素中第一类像素、第二类像素、第一类像素的顺序排布比例满足第二预设比例的第二像素排布;根据第一像素排布的中心点及第二像素排布的中心点,确定疑似位置探测图形的中心位置。
可选地,计算机可执行指令在被执行时,从识别出的疑似位置探测图形中,确定符合二维码图像的定位规则的图形,包括:从识别出的疑似位置探测图形中,确定符合第一筛选条件和/或第二筛选条件的疑似位置探测图形;其中,第一筛选条件包括在上述中心位置相邻的预设区域内,第一类像素和/或第二类像素的个数符合预设的阈值范围;第二筛选条件包括穿过中心位置的第三像素排布中的第一类像素、第二类像素、第一类像素、第二类像素、第一类像素的顺序排布比例满足第三预设比例;从符合第一筛选条件和/或第二筛选条件的疑似位置探测图形中,确定符合二维码的定位规则的图形。
可选地,上述定位规则包括:三个位置探测图形的中心点的连线中,长度最短的两条连线垂直且长度相等,计算机可执行指令在被执行时,从符合第一筛选条件和/或第二筛选条件的疑似位置探测图形中,确定符合上述二维码的定位规则的图形,包括:从符合第一筛选条件和/或第二筛选条件的疑似位置探测图形中,按照每三个一组的方式形成多组疑似位置探测图形;分别判断每组疑似位置探测图形是否满足上述定位规则;将满足上述定位规则的至少一组疑似位置探测图形作为二维码图像的位置探测图形。
可选地,计算机可执行指令在被执行时,上述从符合第一筛选条件和/或第二筛选条件的疑似位置探测图形中,确定符合上述二维码的定位规则的图形,包括:从符合第一筛选条件和/或第二筛选条件的疑似位置探测图形中,按照每三个一组的方式形成多组疑似位置探测图形;确定每组疑似位置探测图形中的三个疑似位置探测图形的中心点的连线构成的三角形的几何参数和三个疑似位置探测图形的面积的均差,其中,上述几何参数包括三角形中长度最短的两条连线的夹角值和长度最短的两条连线的长度差值;根据夹角值、长度差值和均差,确定符合二维码的定位规则的图形。
可选地,计算机可执行指令在被执行时,上述根据夹角值、长度差值和均差,确定符合上述二维码的定位规则的图形,包括:根据夹角值、长度差值和均差,通过如下公式计算每组疑似位置探测图形的得分;分别将每组疑似位置探测图形的得分与预设分值进行比较,根据比较结果确定符合二维码的定位规则的图形;
其中,在上述公式中,a、b、c、d均为常量,xi表示的是第i组疑似位置探测图形的中心点的连线构成的三角形中长度最短的两条连线的夹角值,yi表示的是第i组疑似位置探测图形的中心点的连线构成的三角形中长度最短的两条连线的长度差值,zi表示的是第i组疑似位置探测图形中的三个疑似位置探测图形的面积的均差,fi表示的是第i组疑似位置探测图形的得分。
在一个具体的实施例中,二维码定位设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对二维码定位设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
在含有第一类像素和第二类像素的二维码图像中,以预设的行像素探测规则及列像素探测规则,确定上述二维码图像中的疑似位置探测图形的中心位置;其中,上述行像素探测规则包括:连续排布的第一类像素或第二类像素的个数达到第一预设阈值,上述列像素探测规则包括:连续排布的第一类像素或第二类像素的个数达到第二预设阈值;根据确定的上述疑似位置探测图形的中心位置识别出相应的疑似位置探测图形;从识别出的疑似位置探测图形中,确定符合上述二维码图像的定位规则的图形,作为上述二维码图像的位置探测图形。
可选地,计算机可执行指令在被执行时,上述第一预设阈值与第二预设阈值相等。
在一个具体的实施例中,二维码定位设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对二维码定位设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
在含有第一类像素和第二类像素的二维码图像中,以预设的像素探测规则,确定上述二维码图像中的疑似位置探测图形的中心位置;其中,上述像素探测规则包括第一类像素、第二类像素、第一类像素的顺序排布比例满足预设比例;根据确定的疑似位置探测图形的中心位置识别出相应的疑似位置探测图形;从识别出的疑似位置探测图形中,确定符合二维码图像的定位规则的图形,作为二维码图像的位置探测图形。
可选地,计算机可执行指令在被执行时,上述预设比例为1:5:1。
可选地,计算机可执行指令在被执行时,上述第一类像素为黑色像素或蓝色像素,第二类像素为与所述第一类像素的色差值超过设定阈值的像素。
本申请实施例中的存储介质存储的计算机指令在被执行后,首先根据第一类像素、第二类像素、第一类像素的排布比例或者连续排布的第一类像素的个数或者连续排布的第二类像素的个数,确定二维码的疑似位置探测图形,具有一定的容错性,这样即使在二维码的位置探测图形存在污损或者亮度较弱的情况下,也能识别出疑似位置探测图形,提高了疑似位置探测图形识别的有效性;另外,当通过上述方式识别出疑似位置探测图形后,再从识别出的疑似位置探测图形中确定出二维码的位置探测图形,准确性较高。
进一步地,本申请实施例还提供了一种存储介质,用于存储计算机可执行指令,一种具体的实施例中,该存储介质可以为U盘、光盘、硬盘等,该存储介质存储的计算机可执行指令在被处理器执行时,能实现以下流程:
在含有第一类像素和第二类像素的二维码图像中,以预设的行像素探测规则及列像素探测规则,确定二维码图像中的疑似位置探测图形的中心位置;其中,上述行像素探测规则包括:第一类像素、第二类像素、第一类像素的顺序排布比例满足第一预设比例,上述列像素探测规则包括:第一类像素、第二类像素、第一类像素的顺序排布比例满足第二预设比例;
根据确定的疑似位置探测图形的中心位置识别出相应的疑似位置探测图形;
从识别出的疑似位置探测图形中,确定符合上述二维码的定位规则的图形,作为二维码的位置探测图形。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,第一预设比例为1:n:1,且n大于1;第二预设比例为1:m:1,且m大于1。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,确定二维码图像中疑似位置探测图形的中心位置,包括:确定行像素中第一类像素、第二类像素、第一类像素的顺序排布比例满足第一预设比例的第一像素排布;及确定列像素中第一类像素、第二类像素、第一类像素的顺序排布比例满足第二预设比例的第二像素排布;根据第一像素排布的中心点及第二像素排布的中心点,确定疑似位置探测图形的中心位置。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,从识别出的疑似位置探测图形中,确定符合二维码图像的定位规则的图形,包括:从识别出的疑似位置探测图形中,确定符合第一筛选条件和/或第二筛选条件的疑似位置探测图形;其中,第一筛选条件包括在上述中心位置相邻的预设区域内,第一类像素和/或第二类像素的个数符合预设的阈值范围;第二筛选条件包括穿过中心位置的第三像素排布中的第一类像素、第二类像素、第一类像素、第二类像素、第一类像素的顺序排布比例满足第三预设比例;从符合第一筛选条件和/或第二筛选条件的疑似位置探测图形中,确定符合二维码的定位规则的图形。
可选地,上述定位规则包括:三个位置探测图形的中心点的连线中,长度最短的两条连线垂直且长度相等,该存储介质存储的计算机可执行指令在被处理器执行时,从符合第一筛选条件和/或第二筛选条件的疑似位置探测图形中,确定符合上述二维码的定位规则的图形,包括:从符合第一筛选条件和/或第二筛选条件的疑似位置探测图形中,按照每三个一组的方式形成多组疑似位置探测图形;分别判断每组疑似位置探测图形是否满足上述定位规则;将满足上述定位规则的至少一组疑似位置探测图形作为二维码图像的位置探测图形。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,上述从符合第一筛选条件和/或第二筛选条件的疑似位置探测图形中,确定符合上述二维码的定位规则的图形,包括:从符合第一筛选条件和/或第二筛选条件的疑似位置探测图形中,按照每三个一组的方式形成多组疑似位置探测图形;确定每组疑似位置探测图形中的三个疑似位置探测图形的中心点的连线构成的三角形的几何参数和三个疑似位置探测图形的面积的均差,其中,上述几何参数包括三角形中长度最短的两条连线的夹角值和长度最短的两条连线的长度差值;根据夹角值、长度差值和均差,确定符合二维码的定位规则的图形。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,上述根据夹角值、长度差值和均差,确定符合上述二维码的定位规则的图形,包括:根据夹角值、长度差值和均差,通过如下公式计算每组疑似位置探测图形的得分;分别将每组疑似位置探测图形的得分与预设分值进行比较,根据比较结果确定符合二维码的定位规则的图形;
其中,在上述公式中,a、b、c、d均为常量,xi表示的是第i组疑似位置探测图形的中心点的连线构成的三角形中长度最短的两条连线的夹角值,yi表示的是第i组疑似位置探测图形构成的三角形中长度最短的两条连线的长度差值,zi表示的是第i组疑似位置探测图形中的三个疑似位置探测图形的面积的均差,fi表示的是第i组疑似位置探测图形的得分。
进一步地,本申请实施例还提供了一种存储介质,用于存储计算机可执行指令,一种具体的实施例中,该存储介质可以为U盘、光盘、硬盘等,该存储介质存储的计算机可执行指令在被处理器执行时,能实现以下流程:
在含有第一类像素和第二类像素的二维码图像中,以预设的行像素探测规则及列像素探测规则,确定上述二维码图像中的疑似位置探测图形的中心位置;其中,上述行像素探测规则包括:连续排布的第一类像素或第二类像素的个数达到第一预设阈值,上述列像素探测规则包括:连续排布的第一类像素或第二类像素的个数达到第二预设阈值;根据确定的上述疑似位置探测图形的中心位置识别出相应的疑似位置探测图形;从识别出的疑似位置探测图形中,确定符合上述二维码图像的定位规则的图形,作为上述二维码图像的位置探测图形。
可选的,该存储介质存储的计算机可执行指令在被处理器执行时,上述第一预设阈值与第二预设阈值相等。
进一步地,本申请实施例还提供了一种存储介质,用于存储计算机可执行指令,一种具体的实施例中,该存储介质可以为U盘、光盘、硬盘等,该存储介质存储的计算机可执行指令在被处理器执行时,能实现以下流程:
在含有第一类像素和第二类像素的二维码图像中,以预设的像素探测规则,确定上述二维码图像中的疑似位置探测图形的中心位置;其中,上述像素探测规则包括第一类像素、第二类像素、第一类像素的顺序排布比例满足预设比例;根据确定的疑似位置探测图形的中心位置识别出相应的疑似位置探测图形;从识别出的疑似位置探测图形中,确定符合二维码图像的定位规则的图形,作为二维码图像的位置探测图形。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,上述预设比例为1:5:1。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,上述第一类像素为黑色像素或蓝色像素,第二类像素为与所述第一类像素的色差值超过设定阈值的像素。
本申请实施例中的存储介质存储的计算机指令在被执行后,首先根据第一类像素、第二类像素、第一类像素的排布比例或者连续排布的第一类像素的个数或者连续排布的第二类像素的个数,确定二维码的疑似位置探测图形,具有一定的容错性,这样即使在二维码的位置探测图形存在污损或者亮度较弱的情况下,也能识别出疑似位置探测图形,提高了疑似位置探测图形识别的有效性;另外,当通过上述方式识别出疑似位置探测图形后,再从识别出的疑似位置探测图形中确定出二维码的位置探测图形,准确性较高。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。