CN113536822B - 二维码校正方法、装置及计算机可读存储介质 - Google Patents
二维码校正方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN113536822B CN113536822B CN202110860644.8A CN202110860644A CN113536822B CN 113536822 B CN113536822 B CN 113536822B CN 202110860644 A CN202110860644 A CN 202110860644A CN 113536822 B CN113536822 B CN 113536822B
- Authority
- CN
- China
- Prior art keywords
- position detection
- dimensional code
- point
- reference line
- detection pattern
- 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.)
- Active
Links
- 238000012937 correction Methods 0.000 title claims abstract description 134
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000001514 detection method Methods 0.000 claims abstract description 281
- 230000009466 transformation Effects 0.000 claims description 15
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 13
- 238000006243 chemical reaction Methods 0.000 description 6
- 239000003086 colorant Substances 0.000 description 6
- 238000004891 communication Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
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/146—Methods for optical code recognition the method including quality enhancement steps
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Electromagnetism (AREA)
- General Health & Medical Sciences (AREA)
- Toxicology (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种二维码校正方法、装置及计算机可读存储介质,所述二维码校正方法包括:根据待校正二维码的位置探测图形中的参考点位置以及预设距离,确定位置探测图形对应的目标参考线,根据每个位置探测图形对应的目标参考线扫描待校正二维码得到每个位置探测图形对应的拟合点组,对每个拟合点组中的多个拟合点进行拟合得到每个位置探测图形对应的边界线,左下角位置探测图形对应的边界线为待校正二维码的底部边界线,右上角位置探测图形对应的边界线为待校正二维码的右部边界线,根据底部边界线与右部边界线的相交点,校正待校正二维码的形状。本发明能够提升校正二维码的形状的准确率。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种二维码校正方法、装置及计算机可读存储介质。
背景技术
在移动终端识别二维码过程中,由于二维码会产生形变,需要对二维码进行校正,在处理二维码时,首先识别二维码的三个位置探测图形,并确定二维码左上角、右上角以及左下角的边缘点,基于边缘点结合平行四边形原理,确定右下角的边缘点,并基于该边缘点校正二维码,然而,在相机倾斜、条码畸变等因素影响下,基于该方式所确定的右下角边缘点距离实际边缘点相差较大,从而导致进一步基于该右下角边缘点校正二维码的形状时的准确率较低,基于此,本申请至少解决以下技术问题:如何提升校正二维码的形状的准确率。
发明内容
本发明的主要目的在于提供一种二维码校正方法、装置及计算机可读存储介质,旨在解决如何提升校正二维码的形状的准确率的技术问题。
为实现上述目的,本发明提供一种二维码校正方法,所述二维码校正方法包括:
根据待校正二维码的位置探测图形中的参考点位置以及预设距离,确定所述位置探测图形对应的目标参考线,所述位置探测图形包括左下角位置探测图形以及右上角位置探测图形,所述左下角位置探测图形对应的所述目标参考线沿水平方向,所述右上角位置探测图形对应的所述目标参考线沿竖直方向;
根据每个所述位置探测图形对应的所述目标参考线扫描所述待校正二维码得到每个所述位置探测图形对应的拟合点组;
对每个所述拟合点组中的多个拟合点进行拟合得到每个所述位置探测图形对应的边界线,所述左下角位置探测图形对应的所述边界线为所述待校正二维码的底部边界线,所述右上角位置探测图形对应的所述边界线为所述待校正二维码的右部边界线;
根据所述底部边界线与所述右部边界线的相交点,校正所述待校正二维码的形状。
可选地,所述根据每个所述位置探测图形对应的目标参考线扫描所述待校正二维码得到每个所述位置探测图形对应的拟合点组的步骤包括:
将每个所述位置探测图形对应的第一参考线的像素点以及第二参考线上的像素点分别作为起始点,依次扫描所述第一参考线和所述第二参考线之间的像素点,所述目标参考线包括所述第一参考线以及所述第二参考线,所述第一参考线与所述参考点位置之间的距离小于所述第二参考线与所述参考点位置之间的距离;
在有像素点的颜色变化时,记录颜色变化的像素点;
根据记录的每个所述位置探测图形对应的像素点生成每个所述位置探测图形对应的拟合点组。
可选地,所述根据记录的每个所述位置探测图形对应的像素点生成每个所述位置探测图形对应的拟合点组的步骤包括:
根据记录的每个所述位置探测图形对应的像素点,确定每个所述位置探测图形对应的拟合点;
在每个所述位置探测图形对应的拟合点的数量均大于预设阈值时,根据每个所述位置探测图形对应的拟合点,生成每个所述位置探测图形对应的拟合点组,并停止扫描。
可选地,所述在有像素点的颜色变化时,记录颜色变化的像素点的步骤之后,还包括:
确定记录的所述像素点所在的每个目标行以及每个目标列;
分别在每个所述目标行以及每个所述目标列中,查询记录的两个所述像素点之间所有像素点的长度以及颜色;
在所述长度大于第一预设长度且小于第二预设长度,且所述颜色为预设颜色时,执行所述根据记录的每个所述位置探测图形对应的像素点生成每个位置探测图形对应的拟合点组的步骤;
在所述长度小于或者等于所述第一预设长度,或者所述长度大于或者等于所述第二预设长度,或者所述颜色不为所述预设颜色时,累加扫描失败的次数;
在所述扫描失败的次数大于预设次数时,停止扫描。
可选地,所述将每个所述位置探测图形对应的第一参考线的像素点以及第二参考线上的像素点分别作为起始点,依次扫描所述第一参考线和所述第二参考线之间的像素点的步骤之前,还包括:
根据左上角位置探测图形、所述右上角位置探测图形以及所述左下角位置探测图形,确定所述待校正二维码的上部边界线以及左部边界线;
根据所述上部边界线以及所述左部边界线确定所述待校正二维码的右下角边缘点;
根据所述右下角边缘点,确定扫描终止点;
以及,所述将每个所述位置探测图形对应的第一参考线的像素点以及第二参考线上的像素点分别作为起始点,依次扫描所述第一参考线和所述第二参考线之间的像素点的步骤之后,所述二维码校正方法还包括:
在检测到扫描的像素点超过所述扫描终止点时,停止扫描所述第一参考线和所述第二参考线之间的像素点。
可选地,所述根据所述底部边界线与所述右部边界线的相交点,校正所述待校正二维码的形状的步骤包括:
识别所述待校正二维码的版本;
在所述版本与预设版本匹配时,根据所述位置探测图形以及所述相交点,对所述待校正二维码进行仿射变换,以校正所述待校正二维码的形状,所述位置探测图形包括左上角位置探测图形、所述左下角位置探测图形以及所述右上角位置探测图形;
在所述版本与所述预设版本不匹配时,根据所述相交点的位置,确定所述待校正二维码的校正图形对应的校正点,并根据所述相交点以及所述校正点对所述待校正二维码进行图形透视变换,以校正所述待校正二维码的形状。
可选地,所述在所述版本与所述预设版本不匹配时,根据所述相交点的位置,确定所述待校正二维码的校正图形对应的校正点的步骤包括:
在所述版本与所述预设版本不匹配时,搜索所述相交点的预设半径内的待识别图形;
确定所述待识别图形与标准校正图形的汉明距离;
在所述汉明距离小于预设汉明距离时,确定所述待识别图形为所述校正图形;
在所述校正图形的预设区域查询符合预设颜色比例的多个像素点;
根据符合预设颜色比例的多个像素点,确定所述校正图形的校正点;
在所述汉明距离大于或者等于预设汉明距离时,重新搜索所述待识别图形,并返回执行所述确定所述待识别图形与标准校正图形的汉明距离的步骤。
此外,为实现上述目的,本发明还提供一种二维码校正装置,所述二维码校正装置包括确定模块、扫描模块、拟合模块以及校正模块,其中:
所述确定模块,用于根据待校正二维码的位置探测图形中的参考点位置以及预设距离,确定所述位置探测图形对应的目标参考线,所述位置探测图形包括左下角位置探测图形以及右上角位置探测图形,所述左下角位置探测图形对应的所述目标参考线沿水平方向,所述右上角位置探测图形对应的所述目标参考线沿竖直方向;
所述扫描模块,用于根据每个所述位置探测图形对应的所述目标参考线扫描所述待校正二维码得到每个所述位置探测图形对应的拟合点组;
所述拟合模块,用于对每个所述拟合点组中的多个拟合点进行拟合得到每个所述位置探测图形对应的边界线,所述左下角位置探测图形对应的所述边界线为所述待校正二维码的底部边界线,所述右上角位置探测图形对应的所述边界线为所述待校正二维码的右部边界线;
所述校正模块,用于根据所述底部边界线与所述右部边界线的相交点,校正所述待校正二维码的形状。
此外,为实现上述目的,本发明还提供一种二维码校正装置,所述二维码校正装置包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的二维码校正程序,所述二维码校正程序被所述处理器执行时实现上述任一项所述的二维码校正方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有二维码校正程序,所述二维码校正程序被处理器执行时实现上述任一项所述的二维码校正方法的步骤。
本发明实施例提出的一种二维码校正方法、装置及计算机可读存储介质,通过根据待校正二维码的位置探测图形中的参考点位置以及预设距离,确定位置探测图形对应的目标参考线,位置探测图形包括左下角位置探测图形以及右上角位置探测图形,左下角位置探测图形对应的目标参考线沿水平方向,右上角位置探测图形对应的目标参考线沿竖直方向,根据每个位置探测图形对应的目标参考线扫描待校正二维码得到每个位置探测图形对应的拟合点组,对每个拟合点组中的多个拟合点进行拟合得到每个位置探测图形对应的边界线,左下角位置探测图形对应的边界线为待校正二维码的右部边界线,根据底部边界线与右部边界线的相交点,校正待校正二维码的形状,从而能够基于目标参考线扫描得到拟合点组,并基于拟合点组得到底部边界线以及右部边界线,此时的底部边界线以及右部边界线较为准确,从而使得底部边界线与右部边界线的相交点较为准确,从而在基于该相交点校正待校正二维码的形状时,能够提升校正的准确率。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的装置结构示意图;
图2为本发明二维码校正方法第一实施例的流程示意图;
图3为本发明二维码校正方法第二实施例的流程示意图;
图4为本发明二维码校正方法第三实施例的流程示意图;
图5为本发明实施例涉及的二维码校正装置的模块示意图;
图6为本发明实施例涉及的产生形变的待校正二维码的预览示意图;
图7为本发明实施例涉及的待校正二维码的目标参考线的示意图;
图8为本发明实施例涉及的版本为6的二维码的示意图;
图9为本发明实施例涉及的校正图形的示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的装置结构示意图。
本发明实施例装置可以是智能手机、平板电脑、便携计算机以及PC等终端设备。
如图1所示,该装置可以包括:处理器1001,例如CPU,存储器1002,通信总线1003。其中,通信总线1003用于实现这些组件之间的连接通信。存储器1002可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1002可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的装置结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1002中可以包括二维码校正程序。
在图1所示的装置中,处理器1001可以用于调用存储器1002中存储的二维码校正程序,并执行以下操作:
根据待校正二维码的位置探测图形中的参考点位置以及预设距离,确定所述位置探测图形对应的目标参考线,所述位置探测图形包括左下角位置探测图形以及右上角位置探测图形,所述左下角位置探测图形对应的所述目标参考线沿水平方向,所述右上角位置探测图形对应的所述目标参考线沿竖直方向;
根据每个所述位置探测图形对应的所述目标参考线扫描所述待校正二维码得到每个所述位置探测图形对应的拟合点组;
对每个所述拟合点组中的多个拟合点进行拟合得到每个所述位置探测图形对应的边界线,所述左下角位置探测图形对应的所述边界线为所述待校正二维码的底部边界线,所述右上角位置探测图形对应的所述边界线为所述待校正二维码的右部边界线;
根据所述底部边界线与所述右部边界线的相交点,校正所述待校正二维码的形状。
进一步地,处理器1001可以调用存储器1002中存储的二维码校正程序,还执行以下操作:
将每个所述位置探测图形对应的第一参考线的像素点以及第二参考线上的像素点分别作为起始点,依次扫描所述第一参考线和所述第二参考线之间的像素点,所述目标参考线包括所述第一参考线以及所述第二参考线,所述第一参考线与所述参考点位置之间的距离小于所述第二参考线与所述参考点位置之间的距离;
在有像素点的颜色变化时,记录颜色变化的像素点;
根据记录的每个所述位置探测图形对应的像素点生成每个位置探测图形对应的拟合点组。
进一步地,处理器1001可以调用存储器1002中存储的二维码校正程序,还执行以下操作:
根据记录的每个所述位置探测图形对应的像素点,确定每个所述位置探测图形对应的拟合点;
在每个所述位置探测图形对应的拟合点的数量均大于预设阈值时,根据每个所述位置探测图形对应的拟合点,生成每个所述位置探测图形对应的拟合点组,并停止扫描。
进一步地,处理器1001可以调用存储器1002中存储的二维码校正程序,还执行以下操作:
确定记录的所述像素点所在的每个目标行以及每个目标列;
分别在每个所述目标行以及每个所述目标列中,查询记录的两个所述像素点之间所有像素点的长度以及颜色;
在所述长度大于第一预设长度且小于第二预设长度,且所述颜色为预设颜色时,执行所述根据记录的每个所述位置探测图形对应的像素点生成每个位置探测图形对应的拟合点组的步骤;
在所述长度小于或者等于所述第一预设长度,或者所述长度大于或者等于所述第二预设长度,或者所述颜色不为所述预设颜色时,累加扫描失败的次数;
在所述扫描失败的次数大于预设次数时,停止扫描。
进一步地,处理器1001可以调用存储器1002中存储的二维码校正程序,还执行以下操作:
根据左上角位置探测图形、所述右上角位置探测图形以及所述左下角位置探测图形,确定所述待校正二维码的上部边界线以及左部边界线;
根据所述上部边界线以及所述左部边界线确定所述待校正二维码的右下角边缘点;
根据所述右下角边缘点,确定扫描终止点;
在检测到扫描的像素点超过所述扫描终止点时,停止扫描所述第一参考线和所述第二参考线之间的像素点。
进一步地,处理器1001可以调用存储器1002中存储的二维码校正程序,还执行以下操作:
识别所述待校正二维码的版本;
在所述版本与预设版本匹配时,根据所述位置探测图形以及所述相交点,对所述待校正二维码进行仿射变换,以校正所述待校正二维码的形状,所述位置探测图形包括左上角位置探测图形、所述左下角位置探测图形以及所述右上角位置探测图形;
在所述版本与所述预设版本不匹配时,根据所述相交点的位置,确定所述待校正二维码的校正图形对应的校正点,并根据所述相交点以及所述校正点对所述待校正二维码进行图形透视变换,以校正所述待校正二维码的形状。
进一步地,处理器1001可以调用存储器1002中存储的二维码校正程序,还执行以下操作:
在所述版本与所述预设版本不匹配时,搜索所述相交点的预设半径内的待识别图形;
确定所述待识别图形与标准校正图形的汉明距离;
在所述汉明距离小于预设汉明距离时,确定所述待识别图形为所述校正图形;
在所述校正图形的预设区域查询符合预设颜色比例的多个像素点;
根据符合预设颜色比例的多个像素点,确定所述校正图形的校正点;
在所述汉明距离大于或者等于预设汉明距离时,重新搜索所述待识别图形,并返回执行所述确定所述待识别图形与标准校正图形的汉明距离的步骤。
参照图2,本发明第一实施例提供一种二维码校正方法,所述二维码校正方法包括:
步骤S10,根据待校正二维码的位置探测图形中的参考点位置以及预设距离,确定所述位置探测图形对应的目标参考线,所述位置探测图形包括左下角位置探测图形以及右上角位置探测图形,所述左下角位置探测图形对应的所述目标参考线沿水平方向,所述右上角位置探测图形对应的所述目标参考线沿竖直方向;
待校正二维码是需要进行校正的二维码,待校正二维码的数据格式是图像格式,参考点位置是在位置探测图形中选取的用于确定目标参考线的位置,参考点位置可以选取位置探测图形的中心位置,也可以选取位置探测图形的其他位置,参考点位置具体可以是位置探测图形的某个像素点的坐标,预设距离是预先设定的参考点位置到目标参考线的距离,位置探测图形包括左下角位置探测图形以及右上角位置探测图形,左下角位置探测图形对应的目标参考线沿水平方向,右上角位置探测图形对应的目标参考线沿竖直方向,每个位置探测图形对应的目标参考线所包括的参考线的数量为两个,在扫描时基于每个位置探测图形对应的两个参考线扫描该每个位置探测图形对应的拟合点组,所属领域技术人员可以理解,为了提高扫描的效率,也可以每个位置探测图形对应的目标参考线中仅包括一条参考线,比如仅包括最右侧的参考线,从最右侧向左扫描,扫描的第一个颜色变化的像素点作为拟合点,并根据拟合点得到拟合点组。
参照图6,图6为本发明实施例涉及的产生形变的待校正二维码的预览示意图,其中,A、B、C、D分别为二维码的左上角顶点、右上角顶点、左下角顶点以及右下角顶点,图示中包含三个位置探测图形,分别是位于A点附件的左上角位置探测图形、位于B点附近的右上角位置探测图形以及位于C点附近的左下角位置探测图形,示例性技术在采用平行四边形确定待校正二维码的右下角边缘点时,是采用平行四边形原理确定E点,并将E点粗略的作为右下角边缘点,具体的方式是,先根据三个位置探测图形确定出A、B、C三个顶点,继而确定直线AB以及直线AC,并根据平行四边形原理得到AB平行的CE,以及AC平行的BE,将AB、AC、CE以及BE构成平行四边形,从而可以得到点E,并将点E作为右下角边缘点,可以看出点E距离真正的右下角边缘点D误差较大,从而确定的右下角边缘点并不准确,进一步基于该点校正二维码的形状的准确率较低。
本实施例则采用了与示例性技术不同的方式,查找右下角边缘点,具体而言,本实施例直接基于左下角位置探测图形以及右上角位置探测图形,确定目标参考线,结合目标参考线并采用扫描和拟合的方式,直接得到待校正二维码的边缘线,即底部边缘线CD以及右部边缘线BD,并得到底部边缘线与右部边缘线的相交点作为右下角边缘点。
请参照图7所示,图7为待校正二维码的目标参考线的示意图,右上角位置探测图形对应的目标参考线包括直线b1以及直线b2,直线b1以及直线b2均沿竖直方向,左下角位置探测图形对应的目标参考线包括直线c1以及直线c2,直线b1、直线b2、直线c1以及直线c2均用虚线示意,其中,选取右上角位置探测图形的中心位置作为右上角位置探测图形的参考点位置,预设距离分别为2个模块宽度以及4个模块宽度,则根据右上角位置探测图形的参考点位置以及2个模块宽度,可以得到直线b1,根据右上角位置探测图形的参考点位置以及4个模块宽度,可以得到直线b2,选取左下角位置探测图形的中心位置作为参考点位置,预设距离分别为2个模块宽度以及4个模块宽度,则根据左下角位置探测图形的参考点位置以及2个模块宽度,可以得到直线c1,根据左下角位置探测图形的参考点位置以及4个模块宽度,可以得到直线c2,此外,预设距离还可以设置为其他距离,比如预设距离分别设置为1.9个模块宽度以及3.9个模块宽度,不同位置探测图形对应的预设距离可以相同也可以不同。
步骤S20,根据每个所述位置探测图形对应的所述目标参考线扫描所述待校正二维码得到每个所述位置探测图形对应的拟合点组;
在确定了目标参考线之后,分别根据右上角位置探测图形对应的目标参考线扫描右上角位置探测图形对应的拟合点组,以及根据左下角位置探测图形对应的目标参考线扫描左下角位置探测图形对应的拟合点组。
参照图7,通过在直线b1以及直线b2之间扫描像素点,以及在直线c1与直线c2之间扫描像素点,可以得到各个像素点的颜色,其中,由于待校正二维码的边界线上的像素点的颜色为预设颜色,预设比如为黑色,因此在扫描过程中,可以记录预设颜色的像素点,或者,也可以记录扫描过程中颜色变化的像素点,并进一步基于预设颜色的像素点或者颜色变化的像素点得到拟合点,比如,在直线b1与直线b2之间进行扫描时,分别从b1向b2扫描,并得到共计10个黑色像素点,以及从b2向b1扫描,并得到共计10个黑色像素点,相同行的黑色像素点的数量为2个,在相同行的两个黑色像素点之间查找拟合点,其中可以先确定相同行的两个黑色像素点的中点,并将该中点右侧半个模块宽度所在的像素点作为拟合点,或者,也可以在检测到两个黑色像素点满足预设的校验条件时,直接将距离右上角位置探测图形较远的黑色像素点作为拟合点,校验条件用于指示扫描的预设颜色的像素点能够被用于确定拟合点的条件,此外,也可以仅从b2向b1扫描,将颜色变化的像素点作为拟合点,对于c1与c2之间的拟合点,可以采用上述相同原理的方式进行扫描得到。
每个拟合点组中包括至少两个拟合点,为了提升拟合的边界线的准确率,可以提高拟合点组中拟合点的数量。
步骤S30,对每个所述拟合点组中的多个拟合点进行拟合得到每个所述位置探测图形对应的边界线,所述左下角位置探测图形对应的所述边界线为所述待校正二维码的底部边界线,所述右上角位置探测图形对应的所述边界线为所述待校正二维码的右部边界线;
在得到每个位置探测图形对应拟合点组之后,可以采用算法对每个拟合点组中的多个拟合点进行拟合得到每个位置探测图形对应的边界线,所采用的算法比如为最小二乘法。
步骤S40,根据所述底部边界线与所述右部边界线的相交点,校正所述待校正二维码的形状。
在拟合得到底部边界线以及右部边界线之后,底部边界线与右部边界线的相交点即为右下角边缘点,根据该相交点进一步校正待校正二维码的形状,由于该相交点的位置接近于右下角边缘点,因此能够提升校正二维码的形状的准确率。
在本实施例中,通过通过根据待校正二维码的位置探测图形中的参考点位置以及预设距离,确定位置探测图形对应的目标参考线,位置探测图形包括左下角位置探测图形以及右上角位置探测图形,左下角位置探测图形对应的目标参考线沿水平方向,右上角位置探测图形对应的目标参考线沿竖直方向,根据每个位置探测图形对应的目标参考线扫描待校正二维码得到每个位置探测图形对应的拟合点组,对每个拟合点组中的多个拟合点进行拟合得到每个位置探测图形对应的边界线,左下角位置探测图形对应的边界线为待校正二维码的右部边界线,根据底部边界线与右部边界线的相交点,校正待校正二维码的形状,从而能够基于目标参考线扫描得到拟合点组,并基于拟合点组得到底部边界线以及右部边界线,此时的底部边界线以及右部边界线较为准确,从而使得底部边界线与右部边界线的相交点较为准确,从而在基于该相交点校正待校正二维码的形状时,能够提升校正的准确率。
,参照图3,本发明第二实施例提供一种二维码校正方法,基于上述图2所示的第一实施例,所述步骤S20包括:
步骤S21,将每个所述位置探测图形对应的第一参考线的像素点以及第二参考线上的像素点分别作为起始点,依次扫描所述第一参考线和所述第二参考线之间的像素点,所述目标参考线包括所述第一参考线以及所述第二参考线,所述第一参考线与所述参考点位置之间的距离小于所述第二参考线与所述参考点位置之间的距离;
参照图7,右上角位置探测图形对应的第一参考线为直线b1、第二参考线为直线b2,将直线b1上的像素点作为起始点,向直线b2的方向依次扫描像素点,并将直线b2上的像素点作为起始点,向直线b1的方向依次扫描像素点,左下角位置探测图形对应的第一参考线为直线c1,、第二参考线为直线c2,将直线c1上的像素点作为起始点,向直线c2的方向依次扫描像素点,并将直线c2上的像素点作为起始点,向直线c1的方向依次扫描像素点。
在第一参考线以及第二参考线之间进行扫描时,为了减少计算量,可以在扫描时,每次扫描仅扫描某一行或者某一列,对于直线b1以及直线b2,每次扫描仅扫描某一行的像素点,并且可以先扫描上部的像素点,在某一行的像素点扫描结束后,间隔预设步长之后,扫描下一行的像素点,比如间隔半个模块宽度的距离,扫描下一行的像素点,对于直线c1以及直线c2,每次扫描仅扫描某一列的像素点,并且可以先扫描左部的某一列的像素点,在某一列的像素点扫描结束后,继续扫描下一列的像素点,从而能够减少计算量,提高扫描的效率;比如,以右上角位置探测图形的中心位置的像素点向右查询预设距离的相同行像素点之后,分别得到直线b1上的像素点(x1,y)以及直线b2上的像素点(x2,y),以(x1,y)为起始点向(x2,y)的方向依次扫描,直到寻找到预设颜色的像素点,或者由像素点的颜色变化时终止,并且以(x2,y)为起始点向(x1,y)依次扫描,直到扫描的预设颜色的像素点,或者,有像素点的颜色变化时,停止扫描。
在第一参考线与第二参考线之间进行扫描的过程中,每次扫描某一行或者某一列,在扫描结束后扫描下一行或者下一列,并在超过扫描的终止点时,终止扫描,其中,扫描的终止点根据位置探测图形得到,具体而言,根据左上角位置探测图形、右上角位置探测图形以及左下角位置探测图形,确定待校正二维码的上部边界线以及左部边界线,根据上部边界线以及左部边界线确定待校正二维码的右下角边缘点,根据右下角边缘点,确定扫描终止点,在检测到扫描的像素点超过扫描终止点时,停止扫描第一参考线和第二参考线之间的像素点,其中根据上部边界线以及左部边界线确定待校正二维码的右下角边缘点比如为图6所示的点E,需要注意的是,该点E是扫描终止点,而不是本实施例中用于校正的相交点,在扫描的行或者列超过该扫描终止点的坐标时,即终止扫描。
此外,对在对某一行像素点或者某一列像素点进行扫描时,可能存在扫描不到预设颜色的像素点,以及扫描不到颜色变化的像素点的情况,为此,在针对某一行以及某一列进行扫描时,还可以预先设定行扫描的终止点以及列扫描的终止点,行扫描的终止点以及列扫描的终止点比如设置在距离起始点4个模块宽度的位置。
步骤S22,在有像素点的颜色变化时,记录颜色变化的像素点;
在有像素点的颜色变化时,表明可能扫描到最外沿的部分码元所在的像素点,以直线b1与直线b2之间进行扫描为例,从最上边开始扫描第一行像素点,第一行像素点的起始点分别为直线b1上的(x1,y)以及直线b2上的(x2,y),从(x1,y)向(x2,y)扫描,并通过x1++进行依次扫描,在扫描过程中检测到颜色变化的像素点的坐标为(x3,y),同时,从(x2,y)向(x1,y)扫描,并通过x2--进行依次扫描,在扫描过程中,检测到颜色变化的像素点为(x4,y),从而得到颜色变化的像素点,并继续扫描下一行,对于c1以及c2之间进行扫描时,可以从最左边开始扫描第一列像素点,第一列像素点的起始点分别为直线c1上的(x,y1)以及直线c2上的(x,y2),分别通过y1++进行依次扫描以及通过y2--进行依次扫描,得到颜色变化的像素点(x,y3)以及(x,y4),此后可以继续扫描下一列直至终止。
为了避免拟合点不准确,在根据记录的像素点确定拟合点时,还需满足一定的条件,具体可以采用下述方式确定拟合点:确定记录的像素点所在的每个目标行以及每个目标列,分别在每个目标行以及每个目标列中,查询记录的两个像素点之间所有像素点的长度以及颜色,在长度大于第一预设长度且小于第二预设长度,且颜色为预设颜色时,执行根据记录的每个位置探测图形对应的像素点生成每个位置探测图形对应的拟合点组的步骤,在长度小于或者等于第一预设长度,或者长度大于或者等于第二预设长度,或者颜色不为预设颜色时,累加扫描失败的次数,在扫描失败的次数大于预设次数时,停止扫描,其中,目标行是记录的像素点所在的行,目标列是记录的像素点所在的列,第一预设长度是允许的长度的下限值,第二预设长度是允许的长度的上限值,第一预设长度比如为0.5倍模块的长度,第二预设长度比如为2倍模块的长度,预设次数是用于指示停止扫描的扫描次数,预设次数比如为15次,扫描失败的次数过多的情况下结束减少计算量。
步骤S23,根据记录的每个所述位置探测图形对应的像素点生成每个位置探测图形对应的拟合点组。
根据记录的每个位置探测图形对应的像素点,确定每个位置探测图形对应的拟合点,在每个位置探测图形对应的拟合点的数量均大于预设阈值时,根据每个位置探测图形对应的拟合点,生成每个位置探测图形对应的拟合点组,并停止扫描。
为了提升确定拟合点的准确率,在根据记录的每个位置探测图形对应的像素点生成每个位置探测图形对应的拟合点组时,可以采用如下方式,确定每个目标行记录的两个像素点的的坐标,并根据记录的两个像素点的坐标确定记录的两个像素点的中间像素点的坐标,根据中间像素点的坐标以及预设补偿距离,确定拟合点,预设补偿距离为预先设定的拟合点与中间像素点的距离,预设补偿距离比如为半个模块宽度,此外,记录的像素点指从第一参考线向第二参考线扫描时首次记录的像素点,以及从而第二参考线向第一参考线扫描时首次记录的像素点,首次记录的像素点具体可以是首次检测到颜色变化的像素点,或者,可以是首次检测到的预设颜色的像素点,从而使得记录的像素点的数量是两个。
比如,对于图7中,直线b1以及直线b2之间记录的两个像素点分别为(x3,y)以及(x4,y),进一步确定(x3,y)以及(x4,y)中间的像素点的坐标是(x5,y),则将x5加半个模块宽度得到x6,最终确定的拟合点的坐标则为(x6,y),基于此实施方式,所属领域技术人员可以得到所有目标行以及所有目标列的拟合点。
为了提升拟合的边界线的准确率,在获得拟合点之后,还需要在每个位置探测图形对应的拟合点的数量均大于预设阈值的情况下,生成拟合点组,预设阈值是预先设定用于指示拟合点数量足够的数量阈值,比如预设阈值为5,基于图7所示,在直线b1与直线b2之间的拟合点数量为6,且直线c1与直线c2之间的拟合点的数量为6时,则分别根据直线b1与直线b2之间的拟合点得到右上角位置探测图形对应的拟合点组,根据直线c1与直线c2之间的拟合点得到左下角位置探测图形对应的拟合点组。
在本实施例中,通过将每个位置探测图形对应的第一参考线上的像素点以及第二参考线上的像素点分别作为起始点,依次扫描第一参考线和第二参考线之间的像素点,目标参考线包括第一参考线以及第二参考线,第一参考线与参考点位置之间的距离小于第二参考线与参考点位置之间的距离,在有像素点的颜色变化时,记录颜色变化的像素点,根据记录的每个位置探测图形对应的像素点生成每个位置探测图形对应的拟合点组,从而能够分别基于不同扫描方向扫描的颜色变化的像素点,得到拟合点组,能够提升所确定的拟合点组的准确率。
参照图4,本发明第一实施例提供一种二维码校正方法,基于上述图2所示的第一实施例,所述步骤S40包括:
步骤S41,识别所述待校正二维码的版本;
版本,也称作规格,二维码目前有40种版本的矩阵,每一版本比前一版本增加矩阵的模块,比如版本1有21*21的模块,版本40有177*177的模块,版本1中不存在校正图形,从版本2开始有二维码中有校正图形,在有校正图形的情况下,与无校正图形的情况下,校正二维码的形状的方式不同,因此,需要首先识别待校正二维码的版本。
步骤S42,在所述版本与预设版本匹配时,根据所述位置探测图形以及所述相交点,对所述待校正二维码进行仿射变换,以校正所述待校正二维码的形状,所述位置探测图形包括左上角位置探测图形、所述左下角位置探测图形以及所述右上角位置探测图形;
预设版本是预先设定的不存在校正图形的二维码的版本,预设版本比如为版本1,在待校正二维码的版本与预设版本匹配的情况下,选取左上角位置探测图形对应的像素点的坐标、左下角位置探测图形对应的像素点的坐标以及右上角位置探测图形对应的像素点的坐标,其中,可以分别将每个位置探测图形的中心像素点的坐标作为该位置探测图形对应的像素点的坐标,并根据左上角位置探测图形对应的像素点的坐标、左下角位置探测图形对应的像素点的坐标、右上角位置探测图形对应的像素点的坐标以及相交点,进行仿射变换,以校正待校正二维码的形状。
步骤S43,在所述版本与所述预设版本不匹配时,根据所述相交点的位置,确定所述待校正二维码的校正图形对应的校正点,并根据所述相交点以及所述校正点对所述待校正二维码进行图形透视变换,以校正所述待校正二维码的形状。
在版本与预设版本不匹配时,比如版本不为1时,根据相交点确定待校正二维码的校正图形,确定校正图形对应的校正点,根据相交点以及校正点对待校正二维码进行图形透视变化,以校正待校正二维码的形状。
具体而言,在版本与预设版本不匹配时,搜索相交点的预设半径内的待识别图形,确定待识别图形与标准校正图形的汉明距离,在汉明距离小于预设汉明距离时,确定待识别图形为校正图形,在校正图形的预设区域查询符合预设颜色比例的多个像素点,根据符合预设颜色比例的多个像素点,确定校正图形的校正点,在汉明距离大于或者等于预设汉明距离时,重新搜索待识别图形,并返回执行确定待识别图形与标准校正图形的汉明距离的步骤。
此外,在版本与预设版本不匹配时,还需要首先基于左上角位置探测图形、右上角位置探测图形、左下角位置探测图形以及相交点,对待校正二维码进行透视转换,得到转换模块,并在转换模块中搜索所述相交点的预设半径内的待识别图形
比如,参照图8所示,图8示出了版本6的二维码的示意图,其中,图8所示的二维码为对待校正二维码进行透视转换后得到的二维码,即转换模块,该转换模块中包括41*41个模块,在版本确定的情况下,校正图形与相交点的距离是固定的,因此可以搜索预设半径内的待识别图形,待识别图形是按照预设半径搜索到的校正图形,由于待校正二维码存在形变,使得按照预设半径搜索到的校正图形可能并非是标准的校正图形,因此,需要检测待识别图形是否为标准校正图形,图8示出了版本6的二维码的校正图形的位置,该校正图形的中心位置距离相交点的长度为7个模块长度,据此可以搜索待校正二维码中的待识别图形,并确定待识别图形与标准校正图形的汉明距离,比如,参照图9,图9为校正图形的示意图,其中,左侧三个为待识别图形的码元分布,其中,通过椭圆形圆圈标注的位置“0”为噪点,标准模块为标准校正图形的码元分布,其中1表示黑色码元的位置,0表示白色码元的位置,其中,标准模板示出了标准校正图形对应的黑色码元以及白色码元的位置,左侧三个待识别图形与标准校正图形的汉明距离均为1,预设汉明距离是用于指示符合准确率要求的汉明距离阈值,预设汉明距离比如为6,在汉明距离小于预设汉明距离的情况下,将待识别图形作为校正图像;预设颜色比例即黑白比例,比如为11111,即五个像素点都是黑色像素点,由于所查找的校正图形的校正点是校正图形中间码元的像素点,而中间码元的像素点都是黑色像素点,因此,在中间码元所在的区域查找横向、纵向以及对角线均为预设颜色比例的像素点,比如,横向、纵向以及对角线的像素点的数量均为5个,并且5个像素点均为黑色像素点,即黑白比例11111,则表明符合预设颜色比例,并根据预设颜色比例的像素点确定校正点,可以选取符合预设颜色比例的像素点中的一个像素点作为校正图形的校正点。
在汉明距离大于或者等于预设汉明距离时,重新搜索待识别图形,并返回执行确定待识别图形与标准校正图形的汉明距离的步骤,在重新搜索的次数大于预设次数时,停止搜索。
若存在多个不同汉明距离的待识别图形,则选取汉明距离最小的待识别图形,检测到汉明距离小于预设汉明距离时,作为校正图形。
基于汉明距离检测校正图形能够提升检测校正图形的准确率。
在本实施例中,通过识别待校正二维码的版本,在版本与预设版本匹配时,根据位置探测图形以及相交点,对待校正二维码进行仿射变换,以校正待校正二维码的形状,位置探测图形包括左上角位置探测图形、左下角位置探测图形以及右上角位置探测图形,在版本与预设版本不匹配时,根据相交点的位置,确定待校正二维码的校正图形对应的校正点,并根据相交点以及校正点对待校正二维码进行图形透视变换,以校正待校正二维码的形状,从而能够基于不同的版本,采用不同的方式进行校正,提升二维码校正的准确率。
参照图5,图5为本发明二维码校正装置一实施的模块示意图,所述二维码校正装置包括确定模块10、扫描模块20、拟合模块30以及校正模块40,其中:
所述确定模块10,用于根据待校正二维码的位置探测图形中的参考点位置以及预设距离,确定所述位置探测图形对应的目标参考线,所述位置探测图形包括左下角位置探测图形以及右上角位置探测图形,所述左下角位置探测图形对应的所述目标参考线沿水平方向,所述右上角位置探测图形对应的所述目标参考线沿竖直方向;
所述扫描模块20,用于根据每个所述位置探测图形对应的所述目标参考线扫描所述待校正二维码得到每个所述位置探测图形对应的拟合点组;
所述拟合模块30,用于对每个所述拟合点组中的多个拟合点进行拟合得到每个所述位置探测图形对应的边界线,所述左下角位置探测图形对应的所述边界线为所述待校正二维码的底部边界线,所述右上角位置探测图形对应的所述边界线为所述待校正二维码的右部边界线;
所述校正模块40,用于根据所述底部边界线与所述右部边界线的相交点,校正所述待校正二维码的形状。
在一实施例中,所述二维码校正装置还包括记录模块以及生成模块,其中:
所述扫描模块20,还用于将每个所述位置探测图形对应的第一参考线的像素点以及第二参考线上的像素点分别作为起始点,依次扫描所述第一参考线和所述第二参考线之间的像素点,所述目标参考线包括所述第一参考线以及所述第二参考线,所述第一参考线与所述参考点位置之间的距离小于所述第二参考线与所述参考点位置之间的距离;
所述记录模块,用于在有像素点的颜色变化时,记录颜色变化的像素点;
所述生成模块,用于根据记录的每个所述位置探测图形对应的像素点生成每个所述位置探测图形对应的拟合点组。
在一实施例中,所述生成模块还用于执行以下步骤:
根据记录的每个所述位置探测图形对应的像素点,确定每个所述位置探测图形对应的拟合点;
在每个所述位置探测图形对应的拟合点的数量均大于预设阈值时,根据每个所述位置探测图形对应的拟合点,生成每个所述位置探测图形对应的拟合点组,并停止扫描。
在一实施例中,所述二维码的校正装置还包括查询模块以及判断模块,其中:
所述确定模块10,用于确定记录的所述像素点所在的每个目标行以及每个目标列;
所述查询模块,用于分别在每个所述目标行以及每个所述目标列中,查询记录的两个所述像素点之间所有像素点的长度以及颜色;
所述判断模块,用于在所述长度大于第一预设长度且小于第二预设长度,且所述颜色为预设颜色时,执行所述根据记录的每个所述位置探测图形对应的像素点生成每个位置探测图形对应的拟合点组的步骤;在所述长度小于或者等于所述第一预设长度,或者所述长度大于或者等于所述第二预设长度,或者所述颜色不为所述预设颜色时,累加扫描失败的次数;在所述扫描失败的次数大于预设次数时,停止扫描。
在一实施例中,所述确定模块10还用于根据左上角位置探测图形、所述右上角位置探测图形以及所述左下角位置探测图形,确定所述待校正二维码的上部边界线以及左部边界线;根据所述上部边界线以及所述左部边界线确定所述待校正二维码的右下角边缘点;根据所述右下角边缘点,确定扫描终止点;
所述扫描模块20,还用于在检测到扫描的像素点超过所述扫描终止点时,停止扫描所述第一参考线和所述第二参考线之间的像素点.
在一实施例中,所述二维码校正装置还包括识别模块,其中:
所述识别模块,用于识别所述待校正二维码的版本;
所述校正模块40,还用于在所述版本与预设版本匹配时,根据所述位置探测图形以及所述相交点,对所述待校正二维码进行仿射变换,以校正所述待校正二维码的形状,所述位置探测图形包括左上角位置探测图形、所述左下角位置探测图形以及所述右上角位置探测图形;在所述版本与所述预设版本不匹配时,根据所述相交点的位置,确定所述待校正二维码的校正图形对应的校正点,并根据所述相交点以及所述校正点对所述待校正二维码进行图形透视变换,以校正所述待校正二维码的形状。
在一实施例中,所述二维码校正装置还包括搜索模块,其中:
所述搜索模块,用于在所述版本与所述预设版本不匹配时,搜索所述相交点的预设半径内的待识别图形;在所述汉明距离大于或者等于预设汉明距离时,重新搜索所述待识别图形,并返回执行所述确定所述待识别图形与标准校正图形的汉明距离的步骤;
所述确定模块10,还用于确定所述待识别图形与标准校正图形的汉明距离;在所述汉明距离小于预设汉明距离时,确定所述待识别图形为所述校正图形;根据符合预设颜色比例的多个像素点,确定所述校正图形的校正点;
所述查询模块,还用于在所述校正图形的预设区域查询符合预设颜色比例的多个像素点。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机、平板电脑、可穿戴设备、计算机等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种二维码校正方法,其特征在于,所述二维码校正方法包括:
根据待校正二维码的位置探测图形中的参考点位置以及预设距离,确定所述位置探测图形对应的目标参考线,所述目标参考线包括第一参考线以及第二参考线,所述位置探测图形包括左下角位置探测图形以及右上角位置探测图形,所述左下角位置探测图形对应的所述目标参考线沿水平方向,所述右上角位置探测图形对应的所述目标参考线沿竖直方向;
将每个所述位置探测图形对应的所述第一参考线的像素点以及所述第二参考线上的像素点分别作为起始点,依次扫描所述第一参考线和所述第二参考线之间的像素点,所述第一参考线与所述参考点位置之间的距离小于所述第二参考线与所述参考点位置之间的距离;
在有像素点的颜色变化时,记录颜色变化的像素点;
根据记录的每个所述位置探测图形对应的像素点生成每个所述位置探测图形对应的拟合点组;
对每个所述拟合点组中的多个拟合点进行拟合得到每个所述位置探测图形对应的边界线,所述左下角位置探测图形对应的所述边界线为所述待校正二维码的底部边界线,所述右上角位置探测图形对应的所述边界线为所述待校正二维码的右部边界线;
识别所述待校正二维码的版本;
在所述版本与预设版本匹配时,根据所述位置探测图形以及所述底部边界线与所述右部边界线的相交点,对所述待校正二维码进行仿射变换,以校正所述待校正二维码的形状,所述位置探测图形包括左上角位置探测图形、所述左下角位置探测图形以及所述右上角位置探测图形;
在所述版本与所述预设版本不匹配时,根据所述底部边界线与所述右部边界线的相交点的位置,确定所述待校正二维码的校正图形对应的校正点,并根据所述相交点以及所述校正点对所述待校正二维码进行图形透视变换,以校正所述待校正二维码的形状。
2.如权利要求1所述的二维码校正方法,其特征在于,所述根据记录的每个所述位置探测图形对应的像素点生成每个所述位置探测图形对应的拟合点组的步骤包括:
根据记录的每个所述位置探测图形对应的像素点,确定每个所述位置探测图形对应的拟合点;
在每个所述位置探测图形对应的拟合点的数量均大于预设阈值时,根据每个所述位置探测图形对应的拟合点,生成每个所述位置探测图形对应的拟合点组,并停止扫描。
3.如权利要求1所述的二维码校正方法,其特征在于,所述在有像素点的颜色变化时,记录颜色变化的像素点的步骤之后,还包括:
确定记录的所述像素点所在的每个目标行以及每个目标列;
分别在每个所述目标行以及每个所述目标列中,查询记录的两个所述像素点之间所有像素点的长度以及颜色;
在所述长度大于第一预设长度且小于第二预设长度,且所述颜色为预设颜色时,执行所述根据记录的每个所述位置探测图形对应的像素点生成每个所述位置探测图形对应的拟合点组的步骤;
在所述长度小于或者等于所述第一预设长度,或者所述长度大于或者等于所述第二预设长度,或者所述颜色不为所述预设颜色时,累加扫描失败的次数;
在所述扫描失败的次数大于预设次数时,停止扫描。
4.如权利要求1所述的二维码校正方法,其特征在于,所述将每个所述位置探测图形对应的所述第一参考线的像素点以及所述第二参考线上的像素点分别作为起始点,依次扫描所述第一参考线和所述第二参考线之间的像素点的步骤之前,还包括:
根据左上角位置探测图形、所述右上角位置探测图形以及所述左下角位置探测图形,确定所述待校正二维码的上部边界线以及左部边界线;
根据所述上部边界线以及所述左部边界线确定所述待校正二维码的右下角边缘点;
根据所述右下角边缘点,确定扫描终止点;
以及,所述将每个所述位置探测图形对应的所述第一参考线的像素点以及所述第二参考线上的像素点分别作为起始点,依次扫描所述第一参考线和所述第二参考线之间的像素点的步骤之后,所述二维码校正方法还包括:
在检测到扫描的像素点超过所述扫描终止点时,停止扫描所述第一参考线和所述第二参考线之间的像素点。
5.如权利要求1所述的二维码校正方法,其特征在于,所述在所述版本与所述预设版本不匹配时,根据所述底部边界线与所述右部边界线的相交点的位置,确定所述待校正二维码的校正图形对应的校正点的步骤包括:
在所述版本与所述预设版本不匹配时,搜索所述底部边界线与所述右部边界线的相交点的预设半径内的待识别图形;
确定所述待识别图形与标准校正图形的汉明距离;
在所述汉明距离小于预设汉明距离时,确定所述待识别图形为所述校正图形;
在所述校正图形的预设区域查询符合预设颜色比例的多个像素点;
根据符合预设颜色比例的多个像素点,确定所述校正图形的校正点;
在所述汉明距离大于或者等于预设汉明距离时,重新搜索所述待识别图形,并返回执行所述确定所述待识别图形与标准校正图形的汉明距离的步骤。
6.一种二维码校正装置,其特征在于,所述二维码校正装置包括确定模块、扫描模块、拟合模块以及校正模块,其中:
所述确定模块,用于根据待校正二维码的位置探测图形中的参考点位置以及预设距离,确定所述位置探测图形对应的目标参考线,所述目标参考线包括第一参考线以及第二参考线,所述位置探测图形包括左下角位置探测图形以及右上角位置探测图形,所述左下角位置探测图形对应的所述目标参考线沿水平方向,所述右上角位置探测图形对应的所述目标参考线沿竖直方向;
所述扫描模块,用于将每个所述位置探测图形对应的所述第一参考线的像素点以及所述第二参考线上的像素点分别作为起始点,依次扫描所述第一参考线和所述第二参考线之间的像素点,所述第一参考线与所述参考点位置之间的距离小于所述第二参考线与所述参考点位置之间的距离;
在有像素点的颜色变化时,记录颜色变化的像素点;
根据记录的每个所述位置探测图形对应的像素点生成每个所述位置探测图形对应的拟合点组;
所述拟合模块,用于对每个所述拟合点组中的多个拟合点进行拟合得到每个所述位置探测图形对应的边界线,所述左下角位置探测图形对应的所述边界线为所述待校正二维码的底部边界线,所述右上角位置探测图形对应的所述边界线为所述待校正二维码的右部边界线;
所述校正模块,用于识别所述待校正二维码的版本;
在所述版本与预设版本匹配时,根据所述位置探测图形以及所述底部边界线与所述右部边界线的相交点,对所述待校正二维码进行仿射变换,以校正所述待校正二维码的形状,所述位置探测图形包括左上角位置探测图形、所述左下角位置探测图形以及所述右上角位置探测图形;
在所述版本与所述预设版本不匹配时,根据所述底部边界线与所述右部边界线的相交点的位置,确定所述待校正二维码的校正图形对应的校正点,并根据所述相交点以及所述校正点对所述待校正二维码进行图形透视变换,以校正所述待校正二维码的形状。
7.一种二维码校正装置,其特征在于,所述二维码校正装置包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的二维码校正程序,所述二维码校正程序被所述处理器执行时实现如权利要求1至5中任一项所述的二维码校正方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有二维码校正程序,所述二维码校正程序被处理器执行时实现如权利要求1至5中任一项所述的二维码校正方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110860644.8A CN113536822B (zh) | 2021-07-28 | 2021-07-28 | 二维码校正方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110860644.8A CN113536822B (zh) | 2021-07-28 | 2021-07-28 | 二维码校正方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113536822A CN113536822A (zh) | 2021-10-22 |
CN113536822B true CN113536822B (zh) | 2024-05-03 |
Family
ID=78089555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110860644.8A Active CN113536822B (zh) | 2021-07-28 | 2021-07-28 | 二维码校正方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113536822B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117237234B (zh) * | 2023-11-09 | 2024-01-30 | 杭州睿影科技有限公司 | 应用于x射线安检设备的图像校正方法、装置及电子设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0672994A1 (en) * | 1994-03-14 | 1995-09-20 | Nippondenso Co., Ltd. | Method and apparatus for reading an optically two-dimensional code |
WO2012124123A1 (ja) * | 2011-03-17 | 2012-09-20 | 富士通株式会社 | 画像処理装置、画像処理方法及び画像処理プログラム |
CN104657737A (zh) * | 2013-11-20 | 2015-05-27 | 航天信息股份有限公司 | 基于聚类对qr二维码图像进行校正的方法和装置 |
CN104966089A (zh) * | 2015-06-24 | 2015-10-07 | 福建联迪商用设备有限公司 | 一种二维码图像边缘检测的方法及装置 |
CN105373793A (zh) * | 2015-11-25 | 2016-03-02 | 暨南大学 | 一种qr码图像几何校正的顶点定位方法 |
WO2017016445A1 (zh) * | 2015-07-27 | 2017-02-02 | 福建联迪商用设备有限公司 | 二维码分块解码方法及系统 |
CN106485183A (zh) * | 2016-07-14 | 2017-03-08 | 深圳市华汉伟业科技有限公司 | 一种二维码定位方法及系统 |
CN108537237A (zh) * | 2018-04-04 | 2018-09-14 | 深圳怡化电脑股份有限公司 | 票据的特征区域提取方法、装置、设备和存储介质 |
CN110309687A (zh) * | 2019-07-05 | 2019-10-08 | 华中科技大学 | 一种二维码图像的校正方法及校正装置 |
JP2019192186A (ja) * | 2017-12-29 | 2019-10-31 | 株式会社I・Pソリューションズ | 複合コードパターン、生成装置、読み取り装置、方法およびプログラム |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104778491B (zh) * | 2014-10-13 | 2017-11-07 | 刘整 | 用于信息处理的图像码及生成与解析其的装置与方法 |
-
2021
- 2021-07-28 CN CN202110860644.8A patent/CN113536822B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0672994A1 (en) * | 1994-03-14 | 1995-09-20 | Nippondenso Co., Ltd. | Method and apparatus for reading an optically two-dimensional code |
WO2012124123A1 (ja) * | 2011-03-17 | 2012-09-20 | 富士通株式会社 | 画像処理装置、画像処理方法及び画像処理プログラム |
CN104657737A (zh) * | 2013-11-20 | 2015-05-27 | 航天信息股份有限公司 | 基于聚类对qr二维码图像进行校正的方法和装置 |
CN104966089A (zh) * | 2015-06-24 | 2015-10-07 | 福建联迪商用设备有限公司 | 一种二维码图像边缘检测的方法及装置 |
WO2017016445A1 (zh) * | 2015-07-27 | 2017-02-02 | 福建联迪商用设备有限公司 | 二维码分块解码方法及系统 |
CN105373793A (zh) * | 2015-11-25 | 2016-03-02 | 暨南大学 | 一种qr码图像几何校正的顶点定位方法 |
CN106485183A (zh) * | 2016-07-14 | 2017-03-08 | 深圳市华汉伟业科技有限公司 | 一种二维码定位方法及系统 |
JP2019192186A (ja) * | 2017-12-29 | 2019-10-31 | 株式会社I・Pソリューションズ | 複合コードパターン、生成装置、読み取り装置、方法およびプログラム |
CN108537237A (zh) * | 2018-04-04 | 2018-09-14 | 深圳怡化电脑股份有限公司 | 票据的特征区域提取方法、装置、设备和存储介质 |
CN110309687A (zh) * | 2019-07-05 | 2019-10-08 | 华中科技大学 | 一种二维码图像的校正方法及校正装置 |
Non-Patent Citations (1)
Title |
---|
QR码图像矫正方法的研究;高洋;张瑞臣;;工业控制计算机(01);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113536822A (zh) | 2021-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110046529B (zh) | 二维码识别方法、装置及设备 | |
US6111984A (en) | Method for matching input image with reference image, apparatus for the same, and storage medium storing program for implementing the method | |
US20180137322A1 (en) | Block decoding method and system for two-dimensional code | |
JP4911340B2 (ja) | 二次元コード検出システムおよび二次元コード検出プログラム | |
JP5082637B2 (ja) | 画像処理プログラム、画像処理方法及び画像処理装置 | |
CN113449536B (zh) | 条码图像修复方法、装置、计算机设备和存储介质 | |
US9070034B2 (en) | Method and system for correcting QR code image | |
JP4395188B2 (ja) | 文書画像認識装置および文書画像認識プログラムの記憶媒体 | |
CN114782970B (zh) | 一种表格提取方法、系统及可读介质 | |
CN110020571B (zh) | 二维码校正方法、装置及设备 | |
CN104517092A (zh) | 一种qr码校正图形的检测方法及系统 | |
CN113536822B (zh) | 二维码校正方法、装置及计算机可读存储介质 | |
CN114693529A (zh) | 一种图像拼接方法、装置、设备及存储介质 | |
CN110610170B (zh) | 一种基于图像精确校正的文档比对方法 | |
JP2017161969A (ja) | 文字認識装置、方法およびプログラム | |
CN111767752A (zh) | 一种二维码识别方法及装置 | |
JP4013060B2 (ja) | 画像補正方法および画像補正装置 | |
CN110543798B (zh) | 二维码的识别方法及装置 | |
CN113139399A (zh) | 一种图像线框识别方法及服务器 | |
CN112766256A (zh) | 光栅相位图处理方法、装置、电子设备及存储介质 | |
CN115205861B (zh) | 一种获取异常文字识别区域的方法、电子设备及存储介质 | |
CN113159031B (zh) | 一种手写文本检测方法、装置及存储介质 | |
CN110263597B (zh) | 一种快速准确的qr码校正方法及系统 | |
JP4760362B2 (ja) | 文字読取装置 | |
CN112529923A (zh) | 一种控件识别方法及装置 |
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 |