CN106919883A - 一种快速反应qr码的定位方法及装置 - Google Patents
一种快速反应qr码的定位方法及装置 Download PDFInfo
- Publication number
- CN106919883A CN106919883A CN201710114707.9A CN201710114707A CN106919883A CN 106919883 A CN106919883 A CN 106919883A CN 201710114707 A CN201710114707 A CN 201710114707A CN 106919883 A CN106919883 A CN 106919883A
- Authority
- CN
- China
- Prior art keywords
- pixel
- value
- yards
- setting
- filtration treatment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1408—Methods for optical code recognition the method being specifically adapted for the type of code
- G06K7/1417—2D bar codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1439—Methods for optical code recognition including a method step for retrieval of the optical code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/146—Methods for optical code recognition the method including quality enhancement steps
- G06K7/1486—Setting the threshold-width for bar codes to be decoded
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Toxicology (AREA)
- Electromagnetism (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种快速反应QR码的定位方法及装置,所述方法包括:根据每个像素点及与其相邻的像素点的灰度值,判断该像素点满足预设的过滤条件时,进行第一过滤处理;确定像素点所在的邻域范围内的像素点旋转角度并进行旋转;确定该图像中的每行或每列的像素点的灰度值的和,根据相邻两行或两列的灰度值的和的差,进行第二过滤处理;采用定位顺序组合算法定位原图像中的QR码。由于在本发明实施例中,当像素点满足预设的过滤条件时,对该像素点进行第一过滤处理,确定该像素点对应的旋转角度,根据相邻两列或两行的灰度值的和的差,进行第二过滤处理,采用定位顺序组合算法定位原图像中的QR码,使得在极端环境下,可以准确的定位QR码。
Description
技术领域
本发明涉及图像处理技术领域,尤其涉及一种快速反应(Quick Response、QR)码的定位方法及装置。
背景技术
随着科学技术的快速发展,QR码的出现方便了用户的生活,用户可以通过电子设备扫码,获取包含所述QR码在内的图像,电子设备在图像中定位QR码的位置,对该QR码进行解码即可进入购物付款界面,或者进入添加好友界面等。因此,准确的在图像中定位QR码的位置,在QR码的应用过程中至关重要。
现有技术在图像中定位QR码时,将图像进行二值化处理得到一个二值化图像,通过形态学的方法检测该二值化图像,识别二值化图像中的QR码所在的区域,然后通过二值化图像中的QR码所在的区域中的扫描线以及黑白比特征进行QR码的定位。现有技术定位QR码的方法对图像要求较高,要求QR码所在的区域的对比度均衡,即图像中的QR码区域中有着明显的黑白轮廓线。但是在复杂场景中,即对比度低、噪声较多的图像中,二值化处理的效果会非常差,另外,如果图像中存在大透视的情况,通过现有技术中的形态学的方法很难定位QR码。
发明内容
本发明实施例提供了一种QR码的定位方法及装置,用以解决因图像中噪声存在,造成的无法准确定位QR码的问题。
本发明实施例提供了一种QR码的定位方法,该方法包括:
针对原图像中的每个像素点,根据该像素点及与该像素点相邻的像素点的灰度值,判断该像素点是否满足预设的过滤条件,如果是,对像素点进行第一过滤处理;
针对第一过滤处理后的像素点,对原图像中该像素点所在的设定第一邻域范围内的各像素点在每个角度进行投影,根据每个角度投影的方差,确定原图像中该第一邻域范围对应的各像素点的旋转角度并进行旋转;
根据旋转后的图像中的每个像素点的灰度值,确定该图像中每行或每列的像素点的灰度值的第一和值,根据相邻两行或两列的灰度值的第一和值的差,对像素点进行第二过滤处理;
针对第二过滤处理后的每个像素点,采用定位顺序组合算法将第二过滤处理后的像素点组合,定位原图像中的QR码。
进一步地,所述根据该像素点及与该像素点相邻的像素点的灰度值,判断该像素点是否满足预设的过滤条件包括以下至少一种:
确定该像素点与其相邻的每个像素点的灰度值的差的绝对值,根据每个所述差的绝对值是否大于设定的第一阈值,确定该像素点在该相邻像素点的对应方向上是否具有极性,并判断所述像素点具有极性的方向数量是否大于第一设定数量;
确定该像素点对应的每个方向的邻域范围内像素点灰度值的平均值,根据每个方向的平均值是否大于设定的第二阈值,确定该像素点是否存在对应的每个方向,如果该像素点存在的方向数量大于第二设定数量,判断任意两个平均值的差的绝对值的平均值是否大于设定的第三阈值;
确定包含该像素点的不同大小的多个第二邻域范围,判断每两个第二邻域范围中像素点平均值的差是否大于设定的第四阈值;和
根据该像素点所在的设定的第三邻域范围内的每个像素点,确定每一行和每一列像素点的灰度值的第二和值,根据相邻两行和两列的灰度值的第二和值的差,确定所述灰度值的第二和值的差为极值的数量,判断所述极值的数量是否大于第三设定数量。
进一步地,所述对该像素点的设定第一邻域范围对应的图像在每个角度进行投影之前,所述方法还包括:
针对第一过滤后的像素点,根据该像素点所在的设定的第四邻域范围内的像素点,将该第四邻域范围内的第一过滤处理后的像素点相连;将像素点连接后的对应区域内的像素点合并,在该合并后构成的区域内确定标准点,采用该标准点对该像素点进行更新。
进一步地,所述标准点为合并后构成的区域的中心点。
进一步地,所述方法还包括:
针对更新后的像素点,根据该像素点确定第五邻域范围,在所述第五邻域范围内选择多个像素点,将选择的多个像素点作为对该像素点的扩充像素点。
进一步地,所述对像素点进行第二过滤处理之后,所述定位原图像中的QR码之前,所述方法还包括:
针对第二过滤之后的每个像素点,根据该像素点所在的第六邻域范围,确定所述第六邻域范围内每一行或每一列像素点的灰度值的第三和值,根据相邻两行或两列的灰度值的第三和值的差,确定所述第三和值的差为极值对应的每一目标行或每一目标列,确定相邻的目标行或目标列的宽度,根据中间的宽度是否大于两边的宽度,对像素点进行过滤处理;
针对过滤处理后的像素点,确定包含该像素点的不同大小的两个邻域范围,根据所述两个邻域范围内像素点的灰度值的平均值的比值是否大于设定的第五阈值,对像素点进行过滤处理。
进一步地,所述对像素点进行第一过滤处理之前,所述方法还包括:
获取所述原图像的金字塔图像;
将所述金字塔图像中的每一层图像作为所述原图像,进行后续处理;
所述方法还包括:
将在金字塔图像中定位的每个QR码映射到所述原图像中,针对每个QR码采用包围盒算法确定该QR码的边缘,针对每个QR码的每条边缘,按照设定的规则选取至少一个边缘像素点,以该边缘像素点为中心,确定矩形区域,对每个矩形区域中的像素点进行投影,根据投影的峰值,确定每个矩形区域的投影边缘点,通过预设的算法将得到的每个矩形区域的边缘点拟合为一个矩形框,将该矩形框确定为该QR码精确的边缘。
另一方面,本发明实施例提供了一种QR码的定位装置,该装置包括:
判断过滤模块,用于针对原图像中的每个像素点,根据该像素点及与该像素点相邻的像素点的灰度值,判断该像素点是否满足预设的过滤条件,如果是,对像素点进行第一过滤处理;
确定旋转模块,用于针对第一过滤处理后的像素点,对原图像中该像素点所在的设定第一邻域范围内的各像素点在每个角度进行投影,根据每个角度投影的方差,确定原图像中该第一邻域范围对应的各像素点的旋转角度并进行旋转;
第一过滤模块,用于根据旋转后的图像中的每个像素点的灰度值,确定该图像中每行或每列的像素点的灰度值的第一和值,根据相邻两行或两列的灰度值的第一和值的差,对像素点进行第二过滤处理;
定位模块,用于针对第二过滤处理后的每个像素点,采用定位顺序组合算法将第二过滤处理后的像素点组合,定位原图像中的QR码。
进一步地,所述判断过滤模块,具体用于采用以下至少一种判断该像素点是否满足预设的过滤条件:确定该像素点与其相邻的每个像素点的灰度值的差的绝对值,根据每个所述差的绝对值是否大于设定的第一阈值,确定该像素点在该相邻像素点的对应方向上是否具有极性,并判断所述像素点具有极性的方向数量是否大于第一设定数量;确定该像素点对应的每个方向的邻域范围内像素点灰度值的平均值,根据每个方向的平均值是否大于设定的第二阈值,确定该像素点是否存在对应的每个方向,如果该像素点存在的方向数量大于第二设定数量,判断任意两个平均值的差的绝对值的平均值是否大于设定的第三阈值;确定包含该像素点的不同大小的多个第二邻域范围,判断每两个第二邻域范围中像素点平均值的差是否大于设定的第四阈值;和根据该像素点所在的设定的第三邻域范围内的每个像素点,确定每一行和每一列像素点的灰度值的第二和值,根据相邻两行和两列的灰度值的第二和值的差,确定所述灰度值的第二和值的差为极值的数量,判断所述极值的数量是否大于第三设定数量。
进一步地,所述装置还包括:
更新模块,用于针对第一过滤后的像素点,根据该像素点所在的设定的第四邻域范围内的像素点,将该第四邻域范围内的第一过滤处理后的像素点相连;将像素点连接后的对应区域内的像素点合并,在该合并后构成的区域内确定标准点,采用该标准点对该像素点进行更新。
进一步地,所述更新模块,具体用于将该合并后构成的区域的中心点确定为标准点。
进一步地,所述装置还包括:
扩充模块,用于针对更新后的像素点,根据该像素点确定第五邻域范围,在所述第五邻域范围内选择多个像素点,将选择的多个像素点作为对该像素点的扩充像素点。
进一步地,所述装置还包括:
第二过滤模块,用于针对第二过滤之后的每个像素点,根据该像素点所在的第六邻域范围,确定所述第六邻域范围内每一行或每一列像素点的灰度值的第三和值,根据相邻两行或两列的灰度值的第三和值的差,确定所述第三和值的差为极值对应的每一目标行或每一目标列,确定相邻的目标行或目标列的宽度,根据中间的宽度是否大于两边的宽度,对像素点进行过滤处理;
第三过滤模块,用于针对过滤处理后的像素点,确定包含该像素点的不同大小的两个邻域范围,根据所述两个邻域范围内像素点的灰度值的平均值的比值是否大于设定的第五阈值,对像素点进行过滤处理。
进一步地,所述装置还包括:
获取模块,用于获取所述原图像的金字塔图像,将所述金字塔图像中的每一层图像作为所述原图像,触发判断过滤模块;
映射确定模块,用于将在金字塔图像中定位的每个QR码映射到所述原图像中,针对每个QR码采用包围盒算法确定该QR码的边缘,针对每个QR码的每条边缘,按照设定的规则选取至少一个边缘像素点,以该边缘像素点为中心,确定矩形区域,对每个矩形区域中的像素点进行投影,根据投影的峰值,确定每个矩形区域的投影边缘点,通过预设的算法将得到的每个矩形区域的边缘点拟合为一个矩形框,将该矩形框确定为该QR码精确的边缘。
本发明实施例提供了一种QR码的定位方法及装置,所述方法包括:针对原图像中的每个像素点,根据该像素点及与该像素点相邻的像素点的灰度值,判断该像素点是否满足预设的过滤条件,如果是,对像素点进行第一过滤处理;针对第一过滤处理后的像素点,对原图像中该像素点所在的设定第一邻域范围内的各像素点在每个角度进行投影,根据每个角度投影的方差,确定原图像中该第一邻域范围对应的各像素点的旋转角度并进行旋转;根据旋转后的图像中的每个像素点的灰度值,确定该图像中每行或每列的像素点的灰度值的第一和值,根据相邻两行或两列的灰度值的第一和值的差,对像素点进行第二过滤处理;针对第二过滤处理后的每个像素点,采用定位顺序组合算法将第二过滤处理后的像素点组合,定位原图像中的QR码。由于在本发明实施例中,针对原图像中的每个像素点,当该像素点满足预设的过滤条件时,对该像素点进行第一过滤处理,确定QR定位符的中心点,确定原图像中该像素点的设定第一邻域范围对应的图像的旋转角度并进行旋转,针对旋转后的图像,根据相邻两列或两行的灰度值的第一和值的差,对像素点进行第二过滤处理,从而定位出QR码中QR定位符,采用定位顺序组合算法将原图像中的像素点组合,定位原图像中的QR码,使得在过曝,低对比度,高噪声的环境下,可以更准确的定位QR码。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1提供的一种QR码的定位过程示意图;
图2A-2B为发明实施例1提供的一种像素点过滤过程示意图;
图3为本发明实施例2提供的一种像素点过滤过程示意图;
图4为本发明实施例2提供的另一种像素点过滤过程示意图;
图5为本发明实施例2提供的一种QR码的定位过程示意图;
图6为本发明实施例3提供的一种合并像素点过程示意图;
图7为本发明实施例4提供的一种像素点过滤过程示意图;
图8为本发明实施例4提供的一种QR码的定位过程示意图;
图9为本发明实施例5提供的一种QR码的定位过程示意图;
图10为本发明实施例提供的一种QR码的定位装置结构示意图。
具体实施方式
下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例1:
图1为本发明实施例提供的一种QR码的定位过程示意图,该过程包括以下步骤:
S101:针对原图像中的每个像素点,根据该像素点及与该像素点相邻的像素点的灰度值,判断该像素点是否满足预设的过滤条件,如果是,对像素点进行第一过滤处理。
本发明实施例提供的QR码的定位方法应用于电子设备。所述电子设备包括PC、智能电视、相机及手机等。
所述电子设备针对获取的原图像中的每个像素点,可以识别该像素点的灰度值,以及与该像素点相邻的像素点的灰度值,电子设备中预先设定有过滤像素点的条件,根据该像素点及与该像素点相邻的像素点的灰度值,判断该像素点是否满足预设的过滤条件,如果满足,对该像素点进行过滤,否则,保留该像素点。
通过该第一过滤处理的过程,可以确定原图像中QR码的QR定位符的中心点对应的像素点,即经过第一过滤处理后,留下的像素点即为可能为QR码的QR定位符的中心点的像素点。
S102:针对第一过滤处理后的像素点,对原图像中该像素点的设定第一邻域范围内的各像素点在每个角度进行投影,根据每个角度投影的方差,确定原图像中该第一邻域范围对应的各像素点的旋转角度并进行旋转。
电子设备将原图像中满足预设的过滤条件的像素点进行过滤,针对第一过滤处理后剩余的每个像素点,对原图像中该像素点所在的设定第一邻域范围内的各像素点在每个角度进行旋转,可以将该第一邻域范围内的各像素点组成的图像称为一个小图像,对每次旋转后的该小图像进行x方向和y方向的投影,并计算每个角度投影的方差,将最大的投影的方差对应的旋转角确定为该小图像的旋转角度,并以该旋转角度在该原图像中对该小图像进行旋转。
因为经过上述第一过滤处理后,剩余的像素点会比较少,因此确定的小图像的数量也会比较少,因此确定的每个小图像之间应该没有重叠,而且一般情况下,对每个小图像的旋转角度应该差不多。
具体的,QR码中的QR定位符对应的邻域范围为7×7,电子设备设定的第一邻域范围为能够包含QR码中的QR定位符对应的邻域范围,所述第一邻域范围可以为预先设定的根据经验确定的邻域范围,例如,所述第一邻域范围可以为以该像素点为中心的9×9、10×10的邻域范围。确定该像素点的设定的第一邻域范围对应的小图像,针对该小图像在每个角度进行旋转,具体的,可以从1度到90度依次以1度的间隔对该小图像进行旋转,对每次旋转后的小图像进行x方向和y方向的投影,并计算每个角度投影的方差,例如旋转角度为40度时,对应的投影的方差最大,则该像素点的第一邻域范围对应的小图像的旋转角度为40度,并将该像素点的第一邻域范围对应的小图像旋转40度。其中在旋转时可以按照设定的度数间隔进行旋转,例如可以是1度,也可以是0.5度,当然还可以是更小或更大的度数等。
在本发明实施例中,计算每个角度投影的方差的过程属于现有技术,在此不再对此过程进行赘述。
S103:根据旋转后的图像中的每个像素点的灰度值,确定该图像中每行或每列的像素点的灰度值的第一和值,根据相邻两行或两列的灰度值的第一和值的差,对像素点进行第二过滤处理。
在原图像中将每个小图像进行相应旋转后,根据旋转后的图像中的每个像素点的灰度值,确定该图像中的每行或每列的像素点的灰度值的第一和值,具体的,所述设定第一邻域范围可以为以该像素点为中心的9×9、10×10的邻域范围,根据相邻两行或两列的灰度值的第一和值的差,对像素点进行第二过滤处理。具体的,针对于每列的像素点的灰度值的第一和值,可以用相邻的两列中左侧的灰度值的第一和值减去右侧的灰度值的第一和值,也可以用相邻的两列中右侧的灰度值的第一和值减去左侧的灰度值的第一和值,针对于每列,只要保证相邻两列的相减顺序一致即可,得到多个正极值和负极值,根据预设的由左到右或由右到左的极值顺序,对像素点进行过滤处理。
如图2A所示,以9×9的邻域范围进行说明,确定该邻域范围内每列像素点的灰度值的第一和值,并且用相邻的右侧的灰度值的第一和值减去左侧的灰度值的第一和值,得到多个正极值和负极值,根据得到的极值顺序,判断对该像素点是否进行再次过滤,即,如图2A所示,当满足由右到左的极值顺序为正极值到负极值到正极值,由左到右的极值顺序为负极值到正极值到负极值时,保留该像素点,否则,对该像素点进行过滤。
当然,针对于每行的像素点的灰度值的第一和值,可以用相邻的两行中上侧的灰度值的第一和值减去下侧的灰度值的第一和值,也可以用相邻的两行中下侧的灰度值的第一和值减去上侧的灰度值的第一和值,针对于每行,只要保证相邻两行的相减顺序一致即可,得到多个正极值和负极值,根据预设的由上到下或由下到上的极值顺序,对像素点进行过滤处理。
如图2B所示,还以9×9的邻域范围进行说明,确定该邻域范围内每列像素点的灰度值的第一和值,并且用相邻的上测的灰度值的第一和值减去下侧的灰度值的第一和值,得到多个正极值和负极值,根据得到的极值顺序,判断对该像素点是否进行过滤,即,如图2B所示,当满足由上到下的极值顺序为正极值到负极值到正极值,由下到上的极值顺序为负极值到正极值到负极值时,保留该像素点,否则,对该像素点进行过滤。
S104:针对第二过滤处理后的每个像素点,采用定位顺序组合算法将第二过滤处理后的像素点组合,定位原图像中的QR码。
电子设备针对再次过滤处理后的像素点,采用定位顺序组合算法将第二过滤处理后的像素点组合,所述定位顺序组合算法为根据角度大致相同,距离相近的原则将所述再次过滤处理后的像素点连接起来,进而定位原图像中的QR码。采用定位顺序组合算法将原图像中的像素点组合的过程属于现有技术,在本发明实施例中,不再对此过程进行赘述。
由于在本发明实施例中,针对原图像中的每个像素点,当该像素点满足预设的过滤条件时,对该像素点进行第一过滤处理,确定QR定位符的中心点,确定原图像中该像素点的设定第一邻域范围对应的图像的旋转角度并进行旋转,针对旋转后的图像,根据相邻两列或两行的灰度值的第一和值的差,对像素点进行第二过滤处理,从而定位出QR码中QR定位符,采用定位顺序组合算法将原图像中的像素点组合,定位原图像中的QR码,使得在过曝,低对比度,高噪声的环境下,可以更准确的定位QR码。
实施例2:
在上述实施例的基础上,为了使电子设备能够准确判断该像素点是否满足预设的过滤条件,从而准确的确定QR码的QR定位符的中心点对应的像素点,在本发明实施例中,所述根据该像素点及与该像素点相邻的像素点的灰度值,判断该像素点是否满足预设的过滤条件包括以下至少一种:
确定该像素点与其相邻的每个像素点的灰度值的差的绝对值,根据每个所述差的绝对值是否大于设定的第一阈值,确定该像素点在该相邻像素点的对应方向上是否具有极性,并判断所述像素点具有极性的方向数量是否大于第一设定数量;
确定该像素点对应的每个方向的邻域范围内像素点灰度值的平均值,根据每个方向的平均值是否大于设定的第二阈值,确定该像素点是否存在对应的每个方向,如果该像素点存在的方向数量大于第二设定数量,判断任意两个平均值的差的绝对值的平均值是否大于设定的第三阈值;
确定包含该像素点的不同大小的多个第二邻域范围,判断每两个第二邻域范围中像素点平均值的差是否大于设定的第四阈值;和
根据该像素点所在的设定的第三邻域范围内的每个像素点,确定每一行和每一列像素点的灰度值的第二和值,根据相邻两行和两列的灰度值的第二和值的差,确定所述灰度值的第二和值的差为极值的数量,判断所述极值的数量是否大于第三设定数量。
当该像素点满足预设的过滤条件,则对该像素点进行过滤,否则,对该像素点进行保留,从而完成第一过滤处理。因此第一过滤处理可以采用上述任一一种过滤条件来判断,也可以是上述任意两种或多种的组合,当然如果该过滤条件是上述四种的组合时,过滤效果最好。
下面以包含四种过滤条件为例,对本发明实施例提供的第一过滤处理过程进行说明:
针对原图像中的每个像素点,根据该像素点和与其相邻的像素点的灰度值,确定该像素点与其相邻的每个像素点的灰度值的差的绝对值,根据每个所述差的绝对值是否大于设定的第一阈值,确定该像素点在该相邻像素点的对应方向上是否具有极性,其中,所述设定的第一阈值可以为根据经验确定的值。为了提高对像素点过滤的准确性,在本发明实施例中,确定该像素点与其相邻的上下左右四个像素点的灰度值的差的绝对值,将所述四个绝对值中的最小值作为设定的第一阈值。确定该像素点与其相邻的上、下、左、右、左上、左下、右上、右下八个像素点的灰度值的差的绝对值,针对所述确定的八个绝对值,如果与某一相邻像素点的差的绝对值大于设定的第一阈值,确定该像素点在该相邻像素点对应方向上具有极性。根据所述像素点具有极性的方向数量是否大于第一设定数量,判断该像素点是否满足预设的过滤条件。当该像素点具有极性的方向数量大于第一设定数量时,判断该像素点不满足预设的过滤条件,保留该像素点,否则,对该像素点进行过滤处理。
针对上述采用极性的方向数量过滤后的像素点,确定该像素点对应的每个方向的邻域范围内像素点灰度值的平均值,针对该像素点,确定该像素点对应的每个方向的邻域范围,该邻域范围可以根据经验确定,为了使对像素点的过滤处理更加准确,如图3所示,针对该像素点(图3中的黑色圆点),确定以该像素点为中心的3×3的邻域范围,在该邻域范围的上下左右四个方向,分别确定与该邻域范围的边缘相邻的3×2的邻域范围,确定每个3×2的邻域范围内的像素点的灰度值的平均值。电子设备中预先设定有第二阈值,针对上下左右四个方向,根据该方向的3×2的邻域范围内的像素点的灰度值的平均值是否大于设定的第二阈值,确定该像素点是否存在该方向。
例如,当上方3×2的邻域范围内的像素点的灰度值的平均值大于设定的第二阈值时,确定该像素点存在上方。判断该像素点存在的方向数量是否大于第二设定数量,所述第二设定数量为预先设定的值,例如,可以是2,当判断该像素点存在的方向数量大于2时,判断任意两个平均值的差的绝对值的平均值是否大于设定的第三阈值,所述设定的第三阈值为预先设定的值,例如,可以是4,当判断任意两个平均值的差的绝对值的平均值大于4时,保留该像素点,否则,判断该像素点满足预设的过滤条件,对该像素点进行过滤处理。
另外,为了提高确定设定的邻域范围内的像素点的灰度值的平均值的效率,可以根据原图像中的每个像素点的灰度值,计算得到该原图像对应的积分图图像,利用积分图图像可以快速的确定设定的邻域范围内的像素点的灰度值的平均值。其中,计算原图像的积分图,得到积分图图像的过程以及利用积分图图像确定设定的邻域范围内的像素点的灰度值的平均值的过程属于现有技术,在本发明实施例中不再对此过程进行赘述。
经过上述过滤处理后的每个像素点,确定包含该像素点的不同大小的多个第二邻域范围,例如,电子设备确定包含该像素点的不同大小的四个第二邻域范围,分别为以该像素点为中心的3×3,5×5,7×7,9×9的四个第二邻域范围,分别确定每个第二邻域范围内的像素点的灰度值的平均值,计算每两个第二邻域范围中像素点平均值的差,根据所述每两个第二邻域范围中像素点平均值的差是否大于设定的第四阈值,判断是否对该像素点进行过滤处理。
为了使得对像素点的过滤处理更加准确,如图4所示,确定包含该像素点的不同大小的四个第二邻域范围,分别为以该像素点为中心的3×3,5×5,7×7,9×9的四个第二邻域范围,得到了四个区域,第一区域为3×3的第二邻域范围对应的区域,第二区域为5×5第二邻域范围中除去3×3第二邻域范围对应的区域,第三区域为7×7第二邻域范围中除去5×5第二邻域范围对应的区域,第四区域为9×9第二邻域范围中除去7×7第二邻域范围对应的区域,分别确定每个区域内的像素点的灰度值的平均值。识别第二区域、第三区域和第四区域内的像素点的灰度值的平均值中的最大值,计算所述最大值与第一区域内的像素点的灰度值的平均值的差值,判断所述差值是否大于预设的第四阈值,如果是,保留该像素点,否则,判断该像素点满足预设的过滤条件,对该像素点进行过滤处理。
针对上述过滤处理后的像素点,根据该像素点所在的设定的第三邻域范围,确定每一行和每一列像素点的灰度值的第二和值,并计算相邻两行和两列的灰度值的第二和值的差,在计算所述差时,针对于每列,可以用相邻的两列中左侧的灰度值的第二和值减去右侧的灰度值的第二和值,也可以用相邻的两列中右侧的灰度值的第二和值减去左侧的灰度值的第二和值,针对于每列,只要保证相邻两列的相减顺序一致即可;针对于每行的像素点的灰度值的第二和值,可以用相邻的两行中上侧的灰度值的第二和值减去下侧的灰度值的第二和值,也可以用相邻的两行中下侧的灰度值的第二和值减去上侧的灰度值的第二和值,针对于每行,只要保证相邻两行的相减顺序一致即可。
根据相减计算得到的第二和值的差,确定多个正极值和负极值,针对得到的多个正极值,判断大于预设的正极值阈值的正极值的第一数量,针对得到的多个负极值,判断小于预设的负极值阈值的负极值的第二数量,电子设备中预先设定有第三设定数量,判断所述第一数量与第二数量的和是否大于第三设定数量,如果是,保留该像素点,否则,判断该像素点满足预设的过滤条件,对该像素点进行过滤处理。
在本发明实施例中,判断该像素点是否满足预设的过滤条件时,可以采用上述任一方法进行判断,或者还可以采用上述两种、三种或四种方法的结合来判断,采用上述四种方法来进行判断的过程如图5所示。
图5为本发明实施例提供的一种QR码的定位过程示意图,该过程包括以下步骤:
S501:针对原图像中的每个像素点,确定该像素点与其相邻的每个像素点的灰度值的差的绝对值,根据每个所述差的绝对值是否大于设定的第一阈值,确定该像素点在该相邻像素点的对应方向上是否具有极性,并判断所述像素点具有极性的方向数量是否大于第一设定数量,如果是,保留该像素点,否则,对该像素点进行第一次过滤处理。
S502:针对过滤后的像素点,确定该像素点对应的每个方向的邻域范围内像素点灰度值的平均值,根据每个方向的平均值是否大于设定的第二阈值,确定该像素点是否存在对应的每个方向,如果该像素点存在的方向数量大于第二设定数量,判断任意两个平均值的差的绝对值的平均值是否大于设定的第三阈值,如果是,保留该像素点,否则,对该像素点进行第二次过滤处理。
S503:针对过滤后的像素点,确定包含该像素点的不同大小的多个第二邻域范围,判断每两个第二邻域范围中像素点平均值的差是否大于设定的第四阈值,如果是,保留该像素点,否则,对该像素点进行第三次过滤处理。
S504:针对过滤后的像素点,根据该像素点所在的设定的第三邻域范围,确定每一行和每一列像素点的灰度值的第二和值,根据相邻两行和两列的灰度值的第二和值的差,确定所述灰度值的第二和值的差为极值的数量,判断所述极值的数量是否大于第三设定数量,如果是,保留该像素点,否则,对该像素点进行第四次过滤处理。
S505:针对第四次过滤处理后的像素点,对原图像中该像素点所在的设定第一邻域范围内的各像素点在每个角度进行投影,根据每个角度投影的方差,确定原图像中该第一邻域范围对应的各像素点的旋转角度并进行旋转。
S506:根据旋转后的图像中的每个像素点的灰度值,确定该图像中的每行或每列的像素点的灰度值的第一和值,根据相邻两行或两列的灰度值的第一和值的差,对像素点进行第五次过滤处理。
S507:针对第五次过滤处理后的每个像素点,采用定位顺序组合算法将经过第五次过滤处理后的像素点组合,定位原图像中的QR码。
实施例3:
在上述实施例的基础上,为了提高在原图像中定位的QR码的准确性,在本发明实施例中,所述对该像素点的设定第一邻域范围对应的图像在每个角度进行投影之前,所述方法还包括:
针对第一过滤后的像素点,根据该像素点所在的设定的第四邻域范围内的像素点,将该第四邻域范围内的第一过滤处理后的像素点相连;将像素点连接后的对应区域内的像素点合并,在该合并后构成的区域内确定标准点,采用该标准点对该像素点进行更新。
电子设备针对第一过滤后的每个像素点,确定该像素点的设定的第四邻域范围,如图6所示,所述设定的第四邻域范围可以为以该像素点为中心的3×3的第四邻域范围,图6中的黑色圆点为第一过滤后的像素点,针对第一过滤处理后的每个像素点,确定以该像素点为中心的3×3的第四邻域范围,将第四邻域范围内的像素点(黑色圆点)依次相连。
将依次连接的像素点合并,在进行合并时,在依次连接的像素点组成的区域中选择一个标准点作为合并后的像素点,为了使确定的合并后的像素点更准确,将标准点选为依次连接的像素点组成的区域的中心点,如图6中黑色三角形即为标准点,采用该标准点对该像素点进行更新。
为了防止有像素点遗漏,在本发明实施例中,所述方法还包括:
针对更新后的像素点,根据该像素点确定第五邻域范围,在所述第五邻域范围内选择多个像素点,将选择的多个像素点作为对该像素点的扩充像素点。
电子设备预先设定有第五邻域范围,针对每个合并后的像素点,确定以该像素点为中心的第五邻域范围,所述第五预设范围可以为3×3的第五邻域范围,在所述第五邻域范围内选择多个像素点,可以选择3个、4个、6个等像素点,作为对该像素点的扩充像素点,在本发明实施例中,针对每个合并后的像素点,确定以该像素点为中心的3×3的第五邻域范围,将该邻域范围内与该像素点相邻的上下左右四个像素点作为对该像素点的扩充像素点。
实施例4:
在上述实施例的基础上,为了进一步提高在原图像中定位的QR码的准确性,在本发明实施例中,所述对像素点进行第二过滤处理之后,所述定位原图像中的QR码之前,所述方法还包括:
针对第二过滤之后的每个像素点,根据该像素点所在的第六邻域范围,确定所述第六邻域范围内每一行或每一列像素点的灰度值的第三和值,根据相邻两行或两列的灰度值的第三和值的差,确定所述第三和值的差为极值对应的每一目标行或每一目标列,确定相邻的目标行或目标列的宽度,根据中间的宽度是否大于两边的宽度,对像素点进行过滤处理;
针对过滤处理后的像素点,确定包含该像素点的不同大小的两个邻域范围,根据所述两个邻域范围内像素点的灰度值的平均值的比值是否大于设定的第五阈值,对像素点进行过滤处理。
具体的,电子设备针对再次过滤之后的每个像素点,根据该像素点所在的第六邻域范围,确定所述第六邻域范围内每一行或每一列像素点的灰度值的第三和值,并计算相邻两行或两列的灰度值的第三和值的差,在计算所述第三和值的差时,针对于每列,可以用相邻的两列中左侧的灰度值的第三和值减去右侧的灰度值的第三和值,也可以用相邻的两列中右侧的灰度值的第三和值减去左侧的灰度值的第三和值,针对于每列,只要保证相邻两列的相减顺序一致即可;针对于每行的像素点的灰度值的第三和值,可以用相邻的两行中上侧的灰度值的第三和值减去下侧的灰度值的第三和值,也可以用相邻的两行中下侧的灰度值的第三和值减去上侧的灰度值的第三和值,针对于每行,只要保证相邻两行的相减顺序一致即可,根据所述第三和值的差确定多个正极值和负极值,根据所述正极值和负极值对应的每一目标行或每一目标列,确定相邻的目标行或目标列的宽度,当中间的宽度大于两边的宽度时,保留该像素点,否则,对像素点进行过滤处理。
电子设备针对第二过滤处理之后的每个像素点,根据该像素点所在的第六邻域范围,确定所述第六邻域范围内每一行或每一列像素点的灰度值的第三和值,所述第六邻域范围为能够包含QR码中的QR定位符对应的邻域范围,QR码中的QR定位符对应的邻域范围为7×7,因此,所述第六邻域范围可以为以该像素点为中心的9×9、10×10的邻域范围。为了使得对像素点的过滤处理更加准确。如图7所示,该像素点的第六邻域范围为以该像素点为中心的9×9的第六邻域范围,根据该像素点的9×9的第六邻域范围中的每一列像素点的灰度值,确定出了六个极值,六个极值分别对应六个目标列,其中相邻两个目标列之间的宽度由左到右依次为1,1,3,1,1,显然,中间的宽度大于两边的宽度,因此,该像素点保留。
根据采用上述方法过滤处理后的像素点,确定包含该像素点的不同大小的两个邻域范围,所述包含该像素点的不同大小的两个邻域范围可以为根据经验确定的两个邻域范围,分别确定两个邻域范围中每个邻域范围内的像素点的灰度值的平均值,计算所述两个邻域范围内像素点的灰度值的平均值的比值,根据所述两个平均值的比值是否大于设定的第五阈值,对像素点进行过滤处理。
为了使得对像素点的过滤处理更加准确,可以确定以该像素点为中心的3×3的邻域范围和以该像素点为中心的5×5的邻域范围中除去3×3的邻域范围,确定所述两个邻域范围内的像素点的灰度值的平均值,根据两个邻域范围内像素点的灰度值的平均值的比值是否大于设定的第五阈值,对像素点进行过滤处理。其中,电子设备预先设定有第五阈值,所述设定的第五阈值可以为0.9,即当以该像素点为中心的5×5的邻域范围中除去3×3的邻域范围内的像素点的灰度值的平均值与以该像素点为中心的3×3的邻域范围内的像素点的灰度值的平均值的比值大于0.9时,保留该像素点,否则,对该像素点进行过滤处理。
图8为本发明实施例提供的一种QR码的定位过程示意图,该过程包括以下步骤:
S801:针对原图像中的每个像素点,根据该像素点及与该像素点相邻的像素点的灰度值,判断该像素点是否满足预设的过滤条件,如果是,对像素点进行第一次过滤处理。
S802:针对第一次过滤处理后的像素点,对原图像中该像素点的设定第一邻域范围内的各像素点在每个角度进行投影,根据每个角度投影的方差,确定该第一邻域范围对应的各像素点的旋转角度并进行旋转。
S803:根据旋转后的图像中的每个像素点的灰度值,确定该图像中的每行或每列的像素点的灰度值的第一和值,根据相邻两行或两列的灰度值的第一和值的差,对像素点进行第二次过滤处理。
S804:针对第二次过滤处理之后的每个像素点,根据该像素点所在的第六邻域范围,确定所述第六邻域范围内每一行或每一列像素点的灰度值的第三和值,根据相邻两行或两列的灰度值的第三和值的差,确定所述第三和值的差为极值对应的每一目标行或每一目标列,确定相邻的目标行或目标列的宽度,根据中间的宽度是否大于两边的宽度,对像素点进行第三次过滤处理。
S805:针对第三次过滤处理后的像素点,确定包含该像素点的不同大小的两个邻域范围,根据两个邻域范围内像素点的灰度值的平均值的比值是否大于设定的第五阈值,对像素点进行第四次过滤处理。
S806:针对第四次过滤处理后的每个像素点,采用定位顺序组合算法将第四次过滤处理后的像素点组合,定位原图像中的QR码。
实施例5:
在上述实施例的基础上,由于按照预设的尺度对图像中的像素点进行过滤处理,因此,在原图像中可能出现未定位出QR码的情况,为了保证能够定位出QR码,在本发明实施例中,所述对像素点进行第一过滤处理之前,所述方法还包括:
获取所述原图像的金字塔图像;
将所述金字塔图像中的每一层图像作为所述原图像,进行后续处理;
所述方法还包括:
将在金字塔图像中定位的每个QR码映射到所述原图像中,针对每个QR码采用包围盒算法确定该QR码的边缘,针对每个QR码的每条边缘,按照设定的规则选取至少一个边缘像素点,以该边缘像素点为中心,确定矩形区域,对每个矩形区域中的像素点进行投影,根据投影的峰值,确定每个矩形区域的投影边缘点,通过预设的算法将得到的每个矩形区域的边缘点拟合为一个矩形框,将该矩形框确定为该QR码精确的边缘。
电子设备获取原图像,将所述原图像生成金字塔图像,在生成金字塔图像时,可以将原图像按比例放大或缩小,在本发明实施例中,为了提高定位原图像中的QR码的效率,将原图像按比例缩小,例如,可以按0.5的比例依次缩小三次,得到四层的金字塔图像,四层金字塔图像中包含大小不同的QR码,将所述四层金字塔图像中的每一层图像作为所述原图像,按照预设的尺度对金字塔图像中的每一层图像中的像素点进行过滤处理,可以保证在金字塔图像中定位至少一个QR码。
在金字塔图像中定位出QR码之后,为了保证之后对QR码进行解码的准确性,将在金字塔图像中定位的每个QR码映射到所述原图像中,映射到原图像之后,针对每个QR码采用包围盒算法确定该QR码的边缘,针对每个QR码的每条边缘,按照设定的规则选取至少一个边缘像素点,以该边缘像素点为中心,按照预设的长和宽确定矩形区域,针对每个矩形区域中的像素点,按照直线方向进行投影,计算该矩形区域中与所述直线方向平行的每一列像素点的灰度值的第四和值,针对每一列,将该列右侧的灰度值的第四和值与该列左侧的灰度值的第四和值的差作为该列的梯度值,当然,也可以将该列左侧的灰度值的第四和值与该列右侧的灰度值的第四和值的差作为该列的梯度值,根据每个矩形区域得到的梯度值的峰值,确定每个矩形区域的投影边缘点,通过预设的算法将得到的每个矩形区域的边缘点拟合为一个矩形框,将该矩形框确定为该QR码精确的边缘。
通过预设的算法将得到的所有小矩形的边缘点拟合为一个矩形框的过程属于现有技术,在本发明实施例中不再进行赘述。
由于在本发明实施例中,根据原图像生成金字塔图像,针对金字塔图像中的每一层图像进行QR码定位操作过程,可以保证在金字塔图像中定位至少一个QR码,将定位的每个QR码映射到所述原图像中,通过包围盒算法和预设的算法在原图像中精确定位该QR码,因此提高了之后对QR码进行解码的准确性。
图9为本发明实施例提供的一种QR码的定位过程示意图,该过程包括以下步骤:
S901:获取所述原图像的金字塔图像,将所述金字塔图像中的每一层图像作为所述原图像。
S902:针对原图像中的每个像素点,根据该像素点及与该像素点相邻的像素点的灰度值,判断该像素点是否满足预设的过滤条件,如果是,对像素点进行第一过滤处理。
S903:针对第一过滤处理后的像素点,对原图像中该像素点所在的设定第一邻域范围内的各像素点在每个角度进行投影,根据每个角度投影的方差,确定原图像中该第一邻域范围对应的各像素点的旋转角度并进行旋转。
S904:根据旋转后的图像中的每个像素点的灰度值,确定该图像中每行或每列的像素点的灰度值的第一和值,根据相邻两行或两列的灰度值的第一和值的差,对像素点进行第二过滤处理。
S905:针对第二过滤处理后的每个像素点,采用定位顺序组合算法将第二过滤处理后的像素点组合,定位原图像中的QR码。
S906:将在金字塔图像中定位的每个QR码映射到所述原图像中,针对每个QR码采用包围盒算法确定该QR码的边缘,针对每个QR码的每条边缘,按照设定的规则选取至少一个边缘像素点,以该边缘像素点为中心,确定矩形区域,对每个矩形区域中的像素点进行投影,根据投影的峰值,确定每个矩形区域的投影边缘点,通过预设的算法将得到的每个矩形区域的边缘点拟合为一个矩形框,将该矩形框确定为该QR码精确的边缘。
图10为本发明实施例提供的一种QR码的定位装置结构示意图,该装置包括:
判断过滤模块101,用于针对原图像中的每个像素点,根据该像素点及与该像素点相邻的像素点的灰度值,判断该像素点是否满足预设的过滤条件,如果是,对像素点进行第一过滤处理;
确定旋转模块102,用于针对第一过滤处理后的像素点,对原图像中该像素点所在的设定第一邻域范围内的各像素点在每个角度进行投影,根据每个角度投影的方差,确定原图像中该第一邻域范围对应的各像素点的旋转角度并进行旋转;
第一过滤模块103,用于根据旋转后的图像中的每个像素点的灰度值,确定该图像中每行或每列的像素点的灰度值的第一和值,根据相邻两行或两列的灰度值的第一和值的差,对像素点进行第二过滤处理;
定位模块104,用于针对第二过滤处理后的每个像素点,采用定位顺序组合算法将第二过滤处理后的像素点组合,定位原图像中的QR码。
所述判断过滤模块101,具体用于采用以下至少一种判断该像素点是否满足预设的过滤条件:确定该像素点与其相邻的每个像素点的灰度值的差的绝对值,根据每个所述差的绝对值是否大于设定的第一阈值,确定该像素点在该相邻像素点的对应方向上是否具有极性,并判断所述像素点具有极性的方向数量是否大于第一设定数量;确定该像素点对应的每个方向的邻域范围内像素点灰度值的平均值,根据每个方向的平均值是否大于设定的第二阈值,确定该像素点是否存在对应的每个方向,如果该像素点存在的方向数量大于第二设定数量,判断任意两个平均值的差的绝对值的平均值是否大于设定的第三阈值;确定包含该像素点的不同大小的多个第二邻域范围,判断每两个第二邻域范围中像素点平均值的差是否大于设定的第四阈值;和根据该像素点所在的设定的第三邻域范围内的每个像素点,确定每一行和每一列像素点的灰度值的第二和值,根据相邻两行和两列的灰度值的第二和值的差,确定所述灰度值的第二和值的差为极值的数量,判断所述极值的数量是否大于第三设定数量。
所述装置还包括:
更新模块105,用于针对第一过滤后的像素点,根据该像素点所在的设定的第四邻域范围内的像素点,将该第四邻域范围内的第一过滤处理后的像素点相连;将像素点连接后的对应区域内的像素点合并,在该合并后构成的区域内确定标准点,采用该标准点对该像素点进行更新。
所述更新模块105,具体用于将该合并后构成的区域的中心点确定为标准点。
所述装置还包括:
扩充模块106,用于针对更新后的像素点,根据该像素点确定第五邻域范围,在所述第五邻域范围内选择多个像素点,将选择的多个像素点作为对该像素点的扩充像素点。
所述装置还包括:
第二过滤模块107,用于针对第二过滤之后的每个像素点,根据该像素点所在的第六邻域范围,确定所述第六邻域范围内每一行或每一列像素点的灰度值的第三和值,根据相邻两行或两列的灰度值的第三和值的差,确定所述第三和值的差为极值对应的每一目标行或每一目标列,确定相邻的目标行或目标列的宽度,根据中间的宽度是否大于两边的宽度,对像素点进行过滤处理;
第三过滤模块108,用于针对过滤处理后的像素点,确定包含该像素点的不同大小的两个邻域范围,根据所述两个邻域范围内像素点的灰度值的平均值的比值是否大于设定的第五阈值,对像素点进行过滤处理。
所述装置还包括:
获取模块109,用于获取所述原图像的金字塔图像,将所述金字塔图像中的每一层图像作为所述原图像,触发判断过滤模块;
映射确定模块110,用于将在金字塔图像中定位的每个QR码映射到所述原图像中,针对每个QR码采用包围盒算法确定该QR码的边缘,针对每个QR码的每条边缘,按照设定的规则选取至少一个边缘像素点,以该边缘像素点为中心,确定矩形区域,对每个矩形区域中的像素点进行投影,根据投影的峰值,确定每个矩形区域的投影边缘点,通过预设的算法将得到的每个矩形区域的边缘点拟合为一个矩形框,将该矩形框确定为该QR码精确的边缘。
本发明实施例提供了一种QR码的定位方法及装置,所述方法包括:针对原图像中的每个像素点,根据该像素点及与该像素点相邻的像素点的灰度值,判断该像素点是否满足预设的过滤条件,如果是,对像素点进行第一过滤处理;针对第一过滤处理后的像素点,对原图像中该像素点所在的设定第一邻域范围内的各像素点在每个角度进行投影,根据每个角度投影的方差,确定原图像中该第一邻域范围对应的各像素点的旋转角度并进行旋转;根据旋转后的图像中的每个像素点的灰度值,确定该图像中每行或每列的像素点的灰度值的第一和值,根据相邻两行或两列的灰度值的第一和值的差,对像素点进行第二过滤处理;针对第二过滤处理后的每个像素点,采用定位顺序组合算法将第二过滤处理后的像素点组合,定位原图像中的QR码。由于在本发明实施例中,针对原图像中的每个像素点,当该像素点满足预设的过滤条件时,对该像素点进行第一过滤处理,确定QR定位符的中心点,确定原图像中该像素点的设定第一邻域范围对应的图像的旋转角度并进行旋转,针对旋转后的图像,根据相邻两列或两行的灰度值的第一和值的差,对像素点进行第二过滤处理,从而定位出QR码中QR定位符,采用定位顺序组合算法将原图像中的像素点组合,定位原图像中的QR码,使得在过曝,低对比度,高噪声的环境下,可以更准确的定位QR码。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (14)
1.一种快速反应QR码的定位方法,其特征在于,所述方法包括:
针对原图像中的每个像素点,根据该像素点及与该像素点相邻的像素点的灰度值,判断该像素点是否满足预设的过滤条件,如果是,对像素点进行第一过滤处理;
针对第一过滤处理后的像素点,对原图像中该像素点所在的设定第一邻域范围内的各像素点在每个角度进行投影,根据每个角度投影的方差,确定原图像中该第一邻域范围对应的各像素点的旋转角度并进行旋转;
根据旋转后的图像中的每个像素点的灰度值,确定该图像中每行或每列的像素点的灰度值的第一和值,根据相邻两行或两列的灰度值的第一和值的差,对像素点进行第二过滤处理;
针对第二过滤处理后的每个像素点,采用定位顺序组合算法将第二过滤处理后的像素点组合,定位原图像中的QR码。
2.如权利要求1所述的方法,其特征在于,所述根据该像素点及与该像素点相邻的像素点的灰度值,判断该像素点是否满足预设的过滤条件包括以下至少一种:
确定该像素点与其相邻的每个像素点的灰度值的差的绝对值,根据每个所述差的绝对值是否大于设定的第一阈值,确定该像素点在该相邻像素点的对应方向上是否具有极性,并判断所述像素点具有极性的方向数量是否大于第一设定数量;
确定该像素点对应的每个方向的邻域范围内像素点灰度值的平均值,根据每个方向的平均值是否大于设定的第二阈值,确定该像素点是否存在对应的每个方向,如果该像素点存在的方向数量大于第二设定数量,判断任意两个平均值的差的绝对值的平均值是否大于设定的第三阈值;
确定包含该像素点的不同大小的多个第二邻域范围,判断每两个第二邻域范围中像素点平均值的差是否大于设定的第四阈值;和
根据该像素点所在的设定的第三邻域范围内的每个像素点,确定每一行和每一列像素点的灰度值的第二和值,根据相邻两行和两列的灰度值的第二和值的差,确定所述灰度值的第二和值的差为极值的数量,判断所述极值的数量是否大于第三设定数量。
3.如权利要求1所述的方法,其特征在于,所述对该像素点的设定第一邻域范围对应的图像在每个角度进行投影之前,所述方法还包括:
针对第一过滤后的像素点,根据该像素点所在的设定的第四邻域范围内的像素点,将该第四邻域范围内的第一过滤处理后的像素点相连;将像素点连接后的对应区域内的像素点合并,在该合并后构成的区域内确定标准点,采用该标准点对该像素点进行更新。
4.如权利要求3所述的方法,其特征在于,所述标准点为合并后构成的区域的中心点。
5.如权利要求3所述的方法,其特征在于,所述方法还包括:
针对更新后的像素点,根据该像素点确定第五邻域范围,在所述第五邻域范围内选择多个像素点,将选择的多个像素点作为对该像素点的扩充像素点。
6.如权利要求1所述的方法,其特征在于,所述对像素点进行第二过滤处理之后,所述定位原图像中的QR码之前,所述方法还包括:
针对第二过滤之后的每个像素点,根据该像素点所在的第六邻域范围,确定所述第六邻域范围内每一行或每一列像素点的灰度值的第三和值,根据相邻两行或两列的灰度值的第三和值的差,确定所述第三和值的差为极值对应的每一目标行或每一目标列,确定相邻的目标行或目标列的宽度,根据中间的宽度是否大于两边的宽度,对像素点进行过滤处理;
针对过滤处理后的像素点,确定包含该像素点的不同大小的两个邻域范围,根据所述两个邻域范围内像素点的灰度值的平均值的比值是否大于设定的第五阈值,对像素点进行过滤处理。
7.如权利要求1所述的方法,其特征在于,所述对像素点进行第一过滤处理之前,所述方法还包括:
获取所述原图像的金字塔图像;
将所述金字塔图像中的每一层图像作为所述原图像,进行后续处理;
所述方法还包括:
将在金字塔图像中定位的每个QR码映射到所述原图像中,针对每个QR码采用包围盒算法确定该QR码的边缘,针对每个QR码的每条边缘,按照设定的规则选取至少一个边缘像素点,以该边缘像素点为中心,确定矩形区域,对每个矩形区域中的像素点进行投影,根据投影的峰值,确定每个矩形区域的投影边缘点,通过预设的算法将得到的每个矩形区域的边缘点拟合为一个矩形框,将该矩形框确定为该QR码精确的边缘。
8.一种快速反应QR码的定位装置,其特征在于,所述装置包括:
判断过滤模块,用于针对原图像中的每个像素点,根据该像素点及与该像素点相邻的像素点的灰度值,判断该像素点是否满足预设的过滤条件,如果是,对像素点进行第一过滤处理;
确定旋转模块,用于针对第一过滤处理后的像素点,对原图像中该像素点所在的设定第一邻域范围内的各像素点在每个角度进行投影,根据每个角度投影的方差,确定原图像中该第一邻域范围对应的各像素点的旋转角度并进行旋转;
第一过滤模块,用于根据旋转后的图像中的每个像素点的灰度值,确定该图像中每行或每列的像素点的灰度值的第一和值,根据相邻两行或两列的灰度值的第一和值的差,对像素点进行第二过滤处理;
定位模块,用于针对第二过滤处理后的每个像素点,采用定位顺序组合算法将第二过滤处理后的像素点组合,定位原图像中的QR码。
9.如权利要求8所述的装置,其特征在于,所述判断过滤模块,具体用于采用以下至少一种判断该像素点是否满足预设的过滤条件:确定该像素点与其相邻的每个像素点的灰度值的差的绝对值,根据每个所述差的绝对值是否大于设定的第一阈值,确定该像素点在该相邻像素点的对应方向上是否具有极性,并判断所述像素点具有极性的方向数量是否大于第一设定数量;确定该像素点对应的每个方向的邻域范围内像素点灰度值的平均值,根据每个方向的平均值是否大于设定的第二阈值,确定该像素点是否存在对应的每个方向,如果该像素点存在的方向数量大于第二设定数量,判断任意两个平均值的差的绝对值的平均值是否大于设定的第三阈值;确定包含该像素点的不同大小的多个第二邻域范围,判断每两个第二邻域范围中像素点平均值的差是否大于设定的第四阈值;和根据该像素点所在的设定的第三邻域范围内的每个像素点,确定每一行和每一列像素点的灰度值的第二和值,根据相邻两行和两列的灰度值的第二和值的差,确定所述灰度值的第二和值的差为极值的数量,判断所述极值的数量是否大于第三设定数量。
10.如权利要求8所述的装置,其特征在于,所述装置还包括:
更新模块,用于针对第一过滤后的像素点,根据该像素点所在的设定的第四邻域范围内的像素点,将该第四邻域范围内的第一过滤处理后的像素点相连;将像素点连接后的对应区域内的像素点合并,在该合并后构成的区域内确定标准点,采用该标准点对该像素点进行更新。
11.如权利要求10所述的装置,其特征在于,所述更新模块,具体用于将该合并后构成的区域的中心点确定为标准点。
12.如权利要求10所述的装置,其特征在于,所述装置还包括:
扩充模块,用于针对更新后的像素点,根据该像素点确定第五邻域范围,在所述第五邻域范围内选择多个像素点,将选择的多个像素点作为对该像素点的扩充像素点。
13.如权利要求8所述的装置,其特征在于,所述装置还包括:
第二过滤模块,用于针对第二过滤之后的每个像素点,根据该像素点所在的第六邻域范围,确定所述第六邻域范围内每一行或每一列像素点的灰度值的第三和值,根据相邻两行或两列的灰度值的第三和值的差,确定所述第三和值的差为极值对应的每一目标行或每一目标列,确定相邻的目标行或目标列的宽度,根据中间的宽度是否大于两边的宽度,对像素点进行过滤处理;
第三过滤模块,用于针对过滤处理后的像素点,确定包含该像素点的不同大小的两个邻域范围,根据所述两个邻域范围内像素点的灰度值的平均值的比值是否大于设定的第五阈值,对像素点进行过滤处理。
14.如权利要求8所述的装置,其特征在于,所述装置还包括:
获取模块,用于获取所述原图像的金字塔图像,将所述金字塔图像中的每一层图像作为所述原图像,触发判断过滤模块;
映射确定模块,用于将在金字塔图像中定位的每个QR码映射到所述原图像中,针对每个QR码采用包围盒算法确定该QR码的边缘,针对每个QR码的每条边缘,按照设定的规则选取至少一个边缘像素点,以该边缘像素点为中心,确定矩形区域,对每个矩形区域中的像素点进行投影,根据投影的峰值,确定每个矩形区域的投影边缘点,通过预设的算法将得到的每个矩形区域的边缘点拟合为一个矩形框,将该矩形框确定为该QR码精确的边缘。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710114707.9A CN106919883B (zh) | 2017-02-28 | 2017-02-28 | 一种qr码的定位方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710114707.9A CN106919883B (zh) | 2017-02-28 | 2017-02-28 | 一种qr码的定位方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106919883A true CN106919883A (zh) | 2017-07-04 |
CN106919883B CN106919883B (zh) | 2020-04-03 |
Family
ID=59454654
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710114707.9A Active CN106919883B (zh) | 2017-02-28 | 2017-02-28 | 一种qr码的定位方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106919883B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108388825A (zh) * | 2018-04-04 | 2018-08-10 | 厦门码灵半导体技术有限公司 | 快速反应码搜寻方法和装置 |
CN111368572A (zh) * | 2018-12-26 | 2020-07-03 | 顺丰科技有限公司 | 一种二维码的识别方法及系统 |
CN112164032A (zh) * | 2020-09-14 | 2021-01-01 | 浙江华睿科技有限公司 | 一种点胶方法、装置、电子设备及存储介质 |
US10929628B2 (en) | 2017-09-27 | 2021-02-23 | Advanced New Technologies Co., Ltd. | QR code positioning method and apparatus |
CN116363390A (zh) * | 2023-05-25 | 2023-06-30 | 之江实验室 | 一种红外弱小目标检测方法、装置、存储介质及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102043975A (zh) * | 2009-10-16 | 2011-05-04 | 致伸科技股份有限公司 | Qr码的处理方法及其相关装置 |
JP2011170882A (ja) * | 2011-04-28 | 2011-09-01 | Toshiba Tec Corp | 2次元コード読取装置及びその方法 |
CN104933387A (zh) * | 2015-06-24 | 2015-09-23 | 上海快仓智能科技有限公司 | 一种基于二维码解码的快速定位识别的方法 |
-
2017
- 2017-02-28 CN CN201710114707.9A patent/CN106919883B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102043975A (zh) * | 2009-10-16 | 2011-05-04 | 致伸科技股份有限公司 | Qr码的处理方法及其相关装置 |
JP2011170882A (ja) * | 2011-04-28 | 2011-09-01 | Toshiba Tec Corp | 2次元コード読取装置及びその方法 |
CN104933387A (zh) * | 2015-06-24 | 2015-09-23 | 上海快仓智能科技有限公司 | 一种基于二维码解码的快速定位识别的方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10929628B2 (en) | 2017-09-27 | 2021-02-23 | Advanced New Technologies Co., Ltd. | QR code positioning method and apparatus |
US11194982B2 (en) | 2017-09-27 | 2021-12-07 | Advanced New Technologies Co., Ltd. | QR code positioning method and apparatus |
CN108388825A (zh) * | 2018-04-04 | 2018-08-10 | 厦门码灵半导体技术有限公司 | 快速反应码搜寻方法和装置 |
CN108388825B (zh) * | 2018-04-04 | 2021-06-08 | 厦门码灵半导体技术有限公司 | 快速反应码搜寻方法和装置 |
CN111368572A (zh) * | 2018-12-26 | 2020-07-03 | 顺丰科技有限公司 | 一种二维码的识别方法及系统 |
CN112164032A (zh) * | 2020-09-14 | 2021-01-01 | 浙江华睿科技有限公司 | 一种点胶方法、装置、电子设备及存储介质 |
CN112164032B (zh) * | 2020-09-14 | 2023-12-29 | 浙江华睿科技股份有限公司 | 一种点胶方法、装置、电子设备及存储介质 |
CN116363390A (zh) * | 2023-05-25 | 2023-06-30 | 之江实验室 | 一种红外弱小目标检测方法、装置、存储介质及电子设备 |
CN116363390B (zh) * | 2023-05-25 | 2023-09-19 | 之江实验室 | 一种红外弱小目标检测方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN106919883B (zh) | 2020-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106919883A (zh) | 一种快速反应qr码的定位方法及装置 | |
Mondéjar-Guerra et al. | Robust identification of fiducial markers in challenging conditions | |
CN101432776B (zh) | 用于从二维图像进行三维物体重建的系统和方法 | |
CN108520247A (zh) | 对图像中的对象节点的识别方法、装置、终端及可读介质 | |
CN105046213A (zh) | 一种增强现实的方法 | |
CN106062824B (zh) | 边缘检测装置和边缘检测方法 | |
CN111220235B (zh) | 水位监测方法及装置 | |
CN110084080A (zh) | 二维码识别和生成的方法、装置、二维码和小车 | |
CN111461070B (zh) | 文本识别方法、装置、电子设备及存储介质 | |
CN107452028B (zh) | 一种确定目标图像位置信息的方法及装置 | |
CN110264523A (zh) | 一种确定测试图像中的目标图像的位置信息的方法与设备 | |
CN106845484A (zh) | 一种一维码区域的定位方法及装置 | |
CN108197596A (zh) | 一种手势识别方法和装置 | |
CN109816721A (zh) | 图像定位方法、装置、设备及存储介质 | |
CN114240981A (zh) | 标记识别方法及装置 | |
CN106407973A (zh) | 标在柱面上的ar码的鲁棒识别方法 | |
CN115761126A (zh) | 基于结构光的三维重建方法、装置、电子设备和存储介质 | |
CN105740874A (zh) | 确定自动化测试脚本回放时的操作坐标的方法及装置 | |
CN110599588A (zh) | 三维流场内粒子重构方法及装置、电子设备及存储介质 | |
JP2018063693A (ja) | 画像処理装置、画像処理方法およびプログラム | |
EP4009275A1 (en) | Golf ball top-view detection method and system, and storage medium | |
CN117952941A (zh) | 电路板缺陷检测方法及装置 | |
CN107615333B (zh) | 图像的斑点处理方法 | |
CN112446895B (zh) | 棋盘格角点自动提取方法、系统、设备及介质 | |
US6985609B2 (en) | Method for identifying an object image |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: C10, No. 1199 Bin'an Road, Binjiang District, Hangzhou City, Zhejiang Province Patentee after: Zhejiang Huarui Technology Co.,Ltd. Address before: C10, No. 1199 Bin'an Road, Binjiang District, Hangzhou City, Zhejiang Province Patentee before: ZHEJIANG HUARAY TECHNOLOGY Co.,Ltd. |