CN109508573A - 二维码的解码方法和装置 - Google Patents

二维码的解码方法和装置 Download PDF

Info

Publication number
CN109508573A
CN109508573A CN201811339423.0A CN201811339423A CN109508573A CN 109508573 A CN109508573 A CN 109508573A CN 201811339423 A CN201811339423 A CN 201811339423A CN 109508573 A CN109508573 A CN 109508573A
Authority
CN
China
Prior art keywords
dimensional code
position sensing
code
vertex
figures
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
Application number
CN201811339423.0A
Other languages
English (en)
Other versions
CN109508573B (zh
Inventor
胡华侨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Traders Technology Co Ltd
Shanghai Sunmi Technology Co Ltd
Original Assignee
Shanghai Traders Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Traders Technology Co Ltd filed Critical Shanghai Traders Technology Co Ltd
Priority to CN201811339423.0A priority Critical patent/CN109508573B/zh
Publication of CN109508573A publication Critical patent/CN109508573A/zh
Application granted granted Critical
Publication of CN109508573B publication Critical patent/CN109508573B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods 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/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14172D bar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods 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/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1443Methods for optical code recognition including a method step for retrieval of the optical code locating of the code in an image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods 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/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1452Methods for optical code recognition including a method step for retrieval of the optical code detecting bar code edges

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (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)
  • Image Analysis (AREA)

Abstract

本发明提供一种二维码的解码方法,包括以下步骤:a.确定二维码的各个顶点;b.检测所述二维码的多个位置探测图形,获得一个或多个位置探测图形;c.当所述一个或多个位置探测图形的数量小于足以确定所述二维码的多个位置探测图形的相对位置的阈值时,假定所述二维码的多个位置探测图形的相对位置;d.根据所述二维码的各个顶点和所述二维码的多个位置探测图形的相对位置来搜寻所述二维码中的校正图形;e.根据所述二维码的多个位置探测图形的相对位置与搜寻到的校正图形的组合来确定映射参考点;f.根据所述映射参考点对所述二维码进行采样;以及g.对采样值进行解码,当解码不成功时,回到所述步骤c重新假定所述二维码的多个位置探测图形的相对位置。

Description

二维码的解码方法和装置
技术领域
本发明主要涉及二维码的识别,尤其涉及二维码的识别过程中,确定二维码的解码方法和装置。
背景技术
QR(Quick Response,快速反应)码是一种典型的二维码,随着移动支付和物联网的发展已经大量应用于不同行业。图1是QR码的组成结构示意图。如图1所示,QR码的组成结构包括功能图形区110、编码区120和空白区130。功能图形区110主要用来检测定位条码和确定内部模块的位置。功能图形区110包括位置探测图形111、定位图形112和校正图形113。位置探测图形111周围有分隔符114。编码区120可具有格式信息121、版本信息122以及数据和纠错码字123。功能图形区110中最重要的是位置探测图形111。一般的解码算法都默认先找到三个位置探测图形,然后按照GB/T18284-2000提供的标准解码算法识读条码内容。由于日常使用或环境影响,位置探测图形可能会出现破损或干扰的情况,增加了识读算法的难度。
针对QR码的一个位置探测图形可能破损或污损的情况,公开号为CN104463059A的中国发明专利申请提供了一种方法,依据另外两个位置探测图形和标准图形最右下角的定位图形(按照标准文件应该是校正图形),对第三个位置探测图形进行恢复重构。公开号为CN105138943B的中国发明专利提供了另一种方法,根据找到的两个位置探测图形的边界线所在的直线方程和顶点坐标等参数来确定QR码的数据网格,从而进行解码。
然而按照编码标准,QR码有40个版本,其中版本1是没有最右下角的校正图形的,版本2到6有一个,版本6以上有不只一个。因此比较依赖右下角校正图形的CN 104463059A的方法并无法适用所有的QR码版本。CN105138943B的方法比较依赖位置探测图形的边界线,一旦位置探测图形的尺寸较小或较难拟合出比较准确的直线时(例如某些位置探测图形设计为圆形),则该方法失效。
发明内容
本发明要解决的技术问题是提供一种确定二维码的解码方法和装置。
为解决上述技术问题,本发明提供了一种二维码的解码方法,包括以下步骤:a.确定二维码的各个顶点;b.检测所述二维码的多个位置探测图形,获得一个或多个位置探测图形;c.当所述一个或多个位置探测图形的数量小于足以确定所述二维码的多个位置探测图形的相对位置的阈值时,假定所述二维码的多个位置探测图形的相对位置;d.根据所述二维码的各个顶点和所述二维码的多个位置探测图形的相对位置来搜寻所述二维码中的校正图形;e.根据所述二维码的多个位置探测图形的相对位置与搜寻到的校正图形的组合来确定映射参考点;f.根据所述映射参考点对所述二维码进行采样;以及g.对采样值进行解码,当解码不成功时,回到所述步骤c重新假定所述二维码的多个位置探测图形的相对位置。
在本发明的一实施例中,确定二维码的各个顶点的方法包括:跟踪所述二维码的边界轮廓,获得所述边界轮廓的外接多边形;根据所述外接四边形确定所述二维码的各个顶点。
在本发明的一实施例中,跟踪所述二维码的边界轮廓之前还包括:对所述二维码的图像进行数学形态学处理以得到所述二维码的封闭连通区域。
在本发明的一实施例中,确定二维码的各个顶点的步骤还包括:将所述二维码校正为正方形;其中所述二维码的各个顶点是所述正方形的各个顶点。
在本发明的一实施例中,确定所述二维码的多个位置探测图形的相对位置时,所述多个位置探测图形包括缺损的位置探测图形。
在本发明的一实施例中,假定所述二维码的位置探测图形的相对位置的步骤包括:当检测到两个位置探测图形时,计算所述两个位置探测图形中心点连线与所述二维码的任一条边界的夹角大小判断所述两个位置探测图形的相对位置,然后根据所述二维码的模块尺寸推算缺损的一个位置探测图形的相对位置;当检测到一个位置探测图形时,假设所述一个位置探测图形的相对位置,推算出缺损的两个位置探测图形的相对位置。
在本发明的一实施例中,上述方法还包括:确定所述二维码的版本;参考所述二维码的版本决定是否搜寻所述二维码中的校正图形。
在本发明的一实施例中,足以确定所述二维码的多个位置探测图形的相对位置的位置探测图形的阈值为三个。
在本发明的一实施例中,在步骤g中,当不能确定足够数量的映射参考点时,根据所述二维码的各个顶点确定所述二维码的映射参考点。
在本发明的一实施例中,判断能否确定足够多的映射参考点的步骤包括:当检测到的位置探测图形和校正图形的数量之和达到三个时,则认为能确定足够多的映射参考点;当检测到的位置探测图形和校正图形的数量之和少于三个时,则认为不能确定足够多的映射参考点。
在本发明的一实施例中,所述二维码为QR码。
本发明还提出一种二维码的解码装置,包括处理器、存储器和存储于所述存储器中的计算机可执行指令,所述处理器适于执行所述指令以实现如上所述的方法。
本发明还提出一种计算机可读存储介质,其上存储有计算机指令,其中当计算机指令被处理器执行时,执行如上所述的方法。
与现有技术相比,本发明除了可以识别正常的二维码,还可以在各种版本下都能有效地解决一个或两个位置探测图形破损时的二维码识别,极大地弥补了现有技术的不足,提升了QR码的识读性能。
附图说明
图1是QR码的组成结构示意图。
图2是本发明一实施例的确定二维码的解码方法流程图。
图3是本发明另一实施例的确定二维码的解码方法流程图。
图4A-4D是本发明一实施例的确定二维码的边界的方法的过程示意图。
图5是根据本发明一实施例的二维码的解码方法的找到2个位置探测图形的示例。
图6是根据本发明一实施例的二维码的解码方法的找到1个位置探测图形的示例。
图7是根据本发明一实施例的具有2个位置探测图形的QR码示例。
图8是根据本发明一实施例的具有1个位置探测图形的QR码示例。
图9是根据本发明一实施例的版本6以上的QR码示例。
具体实施方式
为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其它不同于在此描述的其它方式来实施,因此本发明不受下面公开的具体实施例的限制。
如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。
本发明的实施例描述二维码的解码方法和装置,尤其是描述确定二维码的映射参考点的方法和装置。在确定了二维码的映射参考点后,可以容易地对二维码进行采样和解码。在本发明的上下文中,二维码可以是QR(Quick Response,快速反应)码。QR码例如是图1所示的结构。QR码可具有功能图形区,其包括位置探测图形、定位图形和校正图形。可以理解,本发明中的二维码也可以是其他具有位置探测图形和校正图形的二维码。下面为简化起见,为QR码为例进行描述。
根据数学原理,三个不在同一条直线的点可以确定一个平行四边形。进一步,利用仿射变换原理可以将平行四边形区域内的点映射为一个方形区域的点。这种方法可以解决正常情况下QR码的识别问题。实际中可能因为拍摄角度多变而导致透视畸变,扫描得到的QR码会是一个不规则的四边形。这时就需要四个参考点(比如位置探测图形及校正图形)确定一个映射关系来对QR码区域内的数据模块采样及解码。所以,关键是要尽可能多的找到能够确定位置关系的参考点。在后文中,将这类参考点称为映射参考点。
QR码具有3个位置探测图形,可以满足最低数量的映射参考点要求。但是,QR码中的位置探测图形可能破损(如图7或8所示),导致映射参考点数量不足。本发明所描述的实施例针对QR图像的位置探测图形破损一个或两个的情况提供了一种确定映射参考点的方法,及由此产生的解码方法。
实施例一
图2是本发明一实施例的确定二维码的解码方法流程图。参考图2所示,本实施例的一种确定二维码的解码方法,可包括以下步骤。
在步骤202,确定二维码的各个顶点。
在此步骤中,可以确定二维码的4个顶点。有很多手段可以得到二维码的4个顶点,例如可以先得到二维码的4条边,再利用4条边来获得4个顶点。
如果二维码图像的边界受到的干扰比较大时,会影响二维码外围边界的定位二导致识别失败。此时可以通过其他方法的处理可以得到二维码外围的4个顶点,这里不作举例说明。
在步骤204,检测二维码的多个位置探测图形,获得一个或多个位置探测图形。
在此步骤中,可以在二维码的区域检测位置探测图形。检测位置探测图形可以是各种已知的方法。举例来说,可以在二值化处理后的二维码图像中的水平和垂直方向搜索同时满足黑:白:黑:白:黑模块宽度比为1:1:3:1:1的位置。二值化处理有助于降低二维码图像的处理难度,然而可以理解,二值化处理并非必须的,可以基于灰度或者彩色图像来检测位置探测图形。在此,如果二维码的图像完整,则可以找到3个满足条件的位置,如图1所示。图7所示为缺损了1个位置探测图形的示意图,找到的两个位置探测图形分别为P1和P2。图8所示为缺损了2个位置探测图形的示意图,找到的1个位置探测图形为P1。二维码的图像完整的情况可以参考已有的方法,本申请不进行讨论。下面的步骤探讨二维码的图像有破损的情况。
在步骤206,假定二维码的多个位置探测图形的相对位置。
在此步骤中,根据检测到的一个或多个位置探测图形(少于3个)来假定各个位置探测图形的相对位置。在此,需要假定位置的位置探测图形并不限于所检测到的多个位置探测图形,也包括破损的位置探测图形。
在此,如果位置探测图形有缺损,需要假定完好的位置探测图形对于标准QR码的相对位置是左上角,左下角还是右上角。具体地说,如果只找到两个位置探测图形,可以计算两个位置探测图形的中心点连线与QR码的任一条边界的夹角大小,然后判断此夹角的大小。如果夹角为非0度也非90度,则两个位置探测图形为对角关系;反之夹角为0度或90度,则两个位置探测图形为相邻关系。可以据此进一步推算出缺损的位置探测图形的位置。例如以图7为例,当找到相邻的2个位置探测图形P1和P2时,缺损的位置探测图形的位置可能会在P3或者P4。后续处理需要假定缺损的位置探测图形的相对位置的情况下,来尝试寻找校正图形和解码。
在一个实施例中,可以借助QR码的最小模块大小来推算出缺损的位置探测图形的位置。以图7为例,记P1的长度和宽度分别为W1和H1,则可计算P1的最小模块大小为M1=(W1+H1)/14。同理可以计算P2的最小模块大小M2,两者平均作为QR码的最小模块大小,即M=(M1+M2)/2。在其他情况下,如果位置探测图形为1个,则M=M1。若位置探测图形为3个,则M=(M1+M2+M3)/3。
另外,如果只找到1个位置探测图形,其相对位置暂时无法确定。以图7为例,当找到位置探测图形P1,而未找到P2和P4位置的位置探测图形,此时无法确定位置探测图形P1的相对位置。后续需要在假定其相对位置的情况下,推算出缺损的两个位置探测图形的位置,从而尝试寻找校正图形和解码。具体地说,依次假定找到的位置探测图形是标准QR图形的左上角、右上角和左下角,然后推算另外两个位置探测图形的位置,如图8所示,这样会有三种组合,最终只有一种组合能解码成功,即最多尝试解码次数为三次,最少为一次。每次组合后按照前面的方法尝试寻找校正图形。
在步骤208,根据二维码的各个顶点和二维码的多个位置探测图形的相对位置来搜寻二维码中的校正图形。
在此步骤中,可以搜寻二维码中的校正图形。校正图形的特征是一个水平和垂直方向模块宽度满足白:黑:白的比例为1:1:1的回字形区域,因此可以通过识别这一特征来搜寻校正图形。对于版本1的QR码将找不到校正图形;对于版本2到6的QR码将能找到一个校正图形;版本7以上的QR码将能找到不止一个校正图形。
在此,如果QR码的版本为7以上,有不止一个校正图形,还可以根据各校正图形和位置探测图形的位置组成的子区域进行分块采样,这样可以提高采样精度。如图9所示,可以组成四个子区域,即P1R1R2R3,R1P2R3R4。
可以理解,此步骤的实施并非本发明的重点,在此不再展开。
在步骤210,根据多个位置探测图形的相对位置和校正图形确定二维码的映射参考点。
在此步骤中,可以依据多个位置探测图形的相对位置以及校正图形作为采样映射参考点。在此映射参考点的数量可为4个或更多。
例如当找到QR码的3个位置探测图形时,如果QR码的版本为2-6,可以根据QR码的3个位置探测图形和1个校正图形,来确定二维码的4个映射参考点;如果QR码的版本为7以上,有不止一个校正图形,还可以根据各校正图形和位置探测图形的位置组成的子区域进行分块采样,这样可以提高采样精度。如图9所示,可以组成四个子区域,即P1R1R2R3,R1P2R3R4。
又如当找到QR码的2个位置探测图形时,如果QR码的版本为7以上,有不止一个校正图形,可以根据QR码的2个位置探测图形和2个校正图形,来确定二维码的4个映射参考点。在此,需要假定缺损的位置探测图形相对标准QR码的位置,分别尝试寻找对应位置的校正图形。这样会有两种组合,最终只有一种组合能解码成功,即最多尝试次数为两次,最少一次。如果QR码的版本为7以上,由于版本较高,模块数也会较多,单纯根据位置探测图形的位置确定条码模块位置误差较大,特别是单个模块较小的情况,这时可以根据各校正图形和位置探测图形的位置组成的子区域进行分块采样,这样可以提高采样精度。如图9所示,可以组成四个子区域,即P1R1R2R3,R1P2R3R4,R2R3P3R5,R3R4R5R6。
又如当找到QR码的1个位置探测图形时,如果QR码的版本为7以上,有不止一个校正图形,可以根据QR码的1个位置探测图形和2个校正图形,来确定二维码的4个映射参考点。
在步骤212,对二维码进行采样。
在此,可以对QR码内部各模块进行采样,即获取对应位置模块的像素(黑为1,白为0)作为采样值。
在步骤214,对采样值进行解码,按照解码标准的处理得到标准比特流数据,然后按照编码规则译出条码内容信息。
在步骤216,判断解码是否成功,如果成功则结束流程,否则回到步骤206,重新假定位置探测图形的相对位置,然后执行步骤208-214。
上述的流程可以循环执行,直到解码成功,或者尝试次数达到阈值。
在本发明的一实施例中,在步骤202可以采取跟踪QR码的边界轮廓的方式,获得边界轮廓的外接多边形;再根据外接四边形的各条边确定二维码的各个顶点。进一步,跟踪二维码的边界轮廓之前,可以对QR码的图像进行数学形态学处理以得到QR码的封闭连通区域。数学形态学处理,例如包括膨胀和腐蚀。
图4A-4D是本发明一实施例的确定二维码的边界的方法的过程示意图。如图4A所示,对得到的图像二值化形成黑白图像41;如图4B所示,利用数学形态学的方法将图像41的二维码区域42聚集为封闭连通的黑块;如图4C所示,进行边界轮廓跟踪,然后寻找各连通区域的轮廓,舍弃不符合一定条件的轮廓,最终筛选出的轮廓示意图见图4D;这里可以根据轮廓围成的区域的外接矩形面积和长宽比来筛选候选QR码区域,排除轮廓外接矩形面积小于80x80(依据是一般二维码能识别的最小模块大小为3个像素,最小QR模块数为21x21,加上条码外围需要静态区)以及长宽比大于1.5或小于0.6的轮廓。最后可以根据QR码轮廓的边界点进行最小二乘法拟合,得到QR码外围四条边界,两两直线相交得到QR码的四个顶点,如图4D所示的A、B、C和D。
在一个实施例中,可在步骤208之前,加入确定二维码的版本的步骤。这样,在步骤208中,可以参考二维码的版本决定是否搜寻二维码中的校正图形。例如针对QR码的版本1,由于其不存在校正图形,因此在步骤208可以不必搜寻校正图形;针对QR码的版本2以上的版本,由于其存在校正图形,因此在步骤208可以搜寻校正图形。当然,也可以直接在步骤208中直接决定要搜寻校正图形,等未搜寻校正图形再做相应的处理。
进一步,在步骤208中,还可以根据QR码的版本来决定搜寻几个校正图形。例如针对QR码的版本2-6,可以决定搜寻1个校正图形;针对QR码的版本7-40,可以决定搜寻多个校正图形。
更进一步,在步骤208中,还可以结合QR码的版本、位置探测图形的相对位置关系,对照标准QR码规定的个数和位置,搜索满足条件的校正图形。如果根据QR版本和位置探测图形的位置关系找到了对应位置的校正图形,即个数和位置坐标都相对一致,则匹配成功。例如图7和8中的QR码的版本为4,有一个校正图形,如图中的R1。图9所示的QR码版本号为9,有六个校正图形,即图中的R1、R2、R3、R4、R5和R6。
本实施例的方法可以在各种版本下都能有效地解决一个或两个位置探测图形破损时的二维码识别,极大地弥补了现有技术的不足,提升了QR码的识读性能。
另外,得益于通过边界追踪得到QR码的外接多边形,本发明的方法受位置探测图形的几何形状变化和QR码形变的影响较小。位置探测图形可以是圆形或其他非正方形,只要其模块宽度比满足编码标准规定的1:1:3:1:1,QR码定位并校正有效的避免了QR码变形的影响。
实施例二
图3是本发明另一实施例的确定二维码的解码方法流程图。参考图3所示,本实施例的一种确定二维码的解码方法,可包括以下步骤。
在步骤302,确定二维码的各个顶点。
在此步骤中,可以确定二维码的4个顶点。有很多手段可以得到二维码的4个顶点,例如可以先得到二维码的4条边,再利用4条边来获得4个顶点。
如果二维码图像的边界受到的干扰比较大时,会影响二维码外围边界的定位二导致识别失败。此时可以通过其他方法的处理可以得到二维码外围的4个顶点,这里不作举例说明。
在步骤303,将二维码校正为正方形。
在此步骤中,可以对二维码区域进行校正,得到正方形的QR码区域,然后在校正后的区域寻找位置探测图形。在一个实施例中,可以利用双线性插值进行校正。在其他实施例中,双线性插值可以替换为双立方、近邻插值、双三次插值等方式。
经过校正后,步骤302中QR码的各个顶点是正方形的各个顶点。
为了便于后续处理,记校正后的条码四个顶点分别为V1、V2、V3和V4。
在步骤304,检测二维码的多个位置探测图形,获得一个或多个位置探测图形。
在此步骤中,可以在二维码的区域检测位置探测图形。检测位置探测图形可以是各种已知的方法。举例来说,可以在二值化处理后的二维码图像中的水平和垂直方向搜索同时满足黑:白:黑:白:黑模块宽度比为1:1:3:1:1的位置。二值化处理有助于降低二维码图像的处理难度,然而可以理解,二值化处理并非必须的,可以基于灰度或者彩色图像来检测位置探测图形。在此,如果二维码的图像完整,则可以找到3个满足条件的位置,如图1所示。图7所示为缺损了1个位置探测图形的示意图,找到的两个位置探测图形分别为P1和P2。图8所示为缺损了2个位置探测图形的示意图,找到的1个位置探测图形为P1。二维码的图像完整的情况可以参考已有的方法,本申请不进行讨论。下面的步骤探讨二维码的图像有破损的情况。
在步骤306,假定二维码的多个位置探测图形的相对位置。
在此步骤中,根据检测到的一个或多个位置探测图形来确定各个位置探测图形的相对位置。在此,需要确定位置的位置探测图形并不限于所检测到的多个位置探测图形,也包括破损的位置探测图形。
在此,如果位置探测图形有缺损,需要假定完好的位置探测图形对于标准QR码的相对位置是左上角,左下角还是右上角。具体地说,如果只找到两个位置探测图形,可以计算两个位置探测图形的中心点连线与QR码的任一条边界的夹角大小,然后判断此夹角的大小。如果夹角为非0度也非90度,则两个位置探测图形为对角关系;反之夹角为0度或90度,则两个位置探测图形为相邻关系。可以据此进一步推算出缺损的位置探测图形的位置。例如以图7为例,当找到相邻的2个位置探测图形P1和P2时,缺损的位置探测图形的位置可能会在P3或者P4。后续处理需要假定缺损的位置探测图形的相对位置的情况下,来尝试寻找校正图形和解码。
在一个实施例中,可以借助QR码的最小模块大小来推算出缺损的位置探测图形的位置。以图7为例,记P1的长度和宽度分别为W1和H1,则可计算P1的最小模块大小为M1=(W1+H1)/14。同理可以计算P2的最小模块大小M2,两者平均作为QR码的最小模块大小,即M=(M1+M2)/2。在其他情况下,如果位置探测图形为1个,则M=M1。若位置探测图形为3个,则M=(M1+M2+M3)/3。
另外,如果只找到1个位置探测图形,其相对位置暂时无法确定。以图7为例,当找到位置探测图形P1,而未找到P2和P4位置的位置探测图形,此时无法确定位置探测图形P1相对位置。后续需要在假定其相对位置的情况下,推算出缺损的两个位置探测图形的位置,从而尝试寻找校正图形和解码。具体地说,依次假定找到的位置探测图形是标准QR图形的左上角、右上角和左下角,然后推算另外两个位置探测图形的位置,如图8所示,这样会有三种组合,最终只有一种组合能解码成功,即最多尝试解码次数为三次,最少为一次。每次组合后按照前面的方法尝试寻找校正图形。
在步骤308,根据二维码的各个顶点和二维码的多个位置探测图形的相对位置来搜寻二维码中的校正图形。
在此步骤中,可以搜寻二维码中的校正图形。校正图形的特征是一个水平和垂直方向模块宽度满足白:黑:白的比例为1:1:1的回字形区域,因此可以通过识别这一特征来搜寻校正图形。对于版本1的QR码将找不到校正图形;对于版本2到6的QR码将能找到一个校正图形;版本7以上的QR码将能找到不止一个校正图形。
在此,如果QR码的版本为7以上,有不止一个校正图形,还可以根据各校正图形和位置探测图形的位置组成的子区域进行分块采样,这样可以提高采样精度。如图9所示,可以组成四个子区域,即P1R1R2R3,R1P2R3R4。
在步骤310,判断能否根据二维码的多个位置探测图形的相对位置与搜寻到的校正图形的组合来确定足够多的映射参考点。当能确定足够的映射参考点时,进入步骤314;当不能确定足够的映射参考点时,进入步骤312。
在此步骤中,可以根据步骤308的检测结果来进行判断。当检测到的位置探测图形和校正图形的数量之和达到3个(例如2个位置探测图形,1个校正图形(QR码的版本2-6);或者1个位置探测图形,2个校正图形(QR码的版本7以上))时,则认为能确定足够多的映射参考点。当检测到的位置探测图形和校正图形的数量之和少于3个(例如2个位置探测图形,0个校正图形;或者1个位置探测图形,1个校正图形;或者1个位置探测图形,0或1个校正图形)时,则认为不能确定足够多的映射参考点。
在步骤312,根据多个位置探测图形的相对位置和校正图形确定二维码的映射参考点。
在此步骤中,可以依据多个位置探测图形的相对位置以及校正图形作为采样映射参考点。在此映射参考点的数量可为3个或更多。
例如当找到QR码的2个位置探测图形时,如果QR码的版本为2-6,可以根据QR码的2个位置探测图形和1个校正图形,来确定二维码的4个映射参考点;如果QR码的版本为7以上,有不止一个校正图形,还可以根据各校正图形和位置探测图形的位置组成的子区域进行分块采样,这样可以提高采样精度。如图9所示,可以组成四个子区域,即P1R1R2R3,R1P2R3R4。
又如当找到QR码的1个位置探测图形时,如果QR码的版本为7以上,有不止一个校正图形,可以根据QR码的1个位置探测图形和2个校正图形,来确定二维码的3个映射参考点。在此,需要假定缺损的位置探测图形相对标准QR码的位置,分别尝试寻找对应位置的校正图形。这样会有两种组合,最终只有一种组合能解码成功,即最多尝试次数为两次,最少一次。如果QR码的版本为7以上,由于版本较高,模块数也会较多,单纯根据位置探测图形的位置确定条码模块位置误差较大,特别是单个模块较小的情况,这时可以根据各校正图形和位置探测图形的位置组成的子区域进行分块采样,这样可以提高采样精度。如图9所示,可以组成四个子区域,即P1R1R2R3,R1P2R3R4,R2R3P3R5,R3R4R5R6。
在步骤314,根据二维码的各个顶点确定二维码的映射参考点。
在此步骤中,由于无法仅仅根据二维码的位置探测图形,或者根据二维码的位置探测图形和校正图形的组合来确定二维码的映射参考点,因此根据二维码的各个顶点确定二维码的映射参考点。
例如,如果找到QR码的2个位置探测图形,找不到校正图形,可以按照QR码的四个顶点的坐标作为采样映射的参考点进行粗采样。
例如,如果找到QR码的1个位置探测图形,如果没有找到或只找到1个校正图形则不足3个参考点,可以按照原始条码的四个顶点的坐标作为采样映射的参考点进行粗采样。
在本发明的一实施例中,在步骤302可以采取跟踪QR码的边界轮廓的方式,获得边界轮廓的外接多边形;再根据外接四边形的各条边确定二维码的各个顶点。进一步,跟踪二维码的边界轮廓之前,可以对QR码的图像进行数学形态学处理以得到QR码的封闭连通区域。数学形态学处理,例如包括膨胀和腐蚀。具体细节可参考图4A-4D所示,在此不再展开。
在一个实施例中,可在步骤310之前,加入确定二维码的版本的步骤。这样,在步骤310中,可以参考二维码的版本决定是否搜寻二维码中的校正图形。例如针对QR码的版本1,由于其不存在校正图形,因此在步骤310可以不必搜寻校正图形;针对QR码的版本2以上的版本,由于其存在校正图形,因此在步骤310可以搜寻校正图形。当然,也可以直接在步骤310中直接决定要搜寻校正图形,等未搜寻校正图形再做相应的处理。
进一步,在步骤310中,还可以根据QR码的版本来决定搜寻几个校正图形。例如针对QR码的版本2-6,可以决定搜寻1个校正图形;针对QR码的版本7-40,可以决定搜寻多个校正图形。
更进一步,在步骤310中,还可以结合QR码的版本、位置探测图形的相对位置关系,对照标准QR码规定的个数和位置,搜索满足条件的校正图形。如果根据QR版本和位置探测图形的位置关系找到了对应位置的校正图形,即个数和位置坐标都相对一致,则匹配成功。例如图7和8中的QR码的版本为4,有一个校正图形,如图中的R1。图1所示的QR码版本号为9,有六个校正图形,即图中的R1、R2、R3、R4、R5和R6。
在步骤316,对二维码进行采样。
在此,可以对QR码内部各模块进行采样,即获取对应位置模块的像素(黑为1,白为0)作为采样值。
在步骤318,对采样值进行解码,按照解码标准的处理得到标准比特流数据,然后按照编码规则译出条码内容信息。
在步骤320,判断解码是否成功,如果成功则结束流程,否则回到步骤306,重新假定位置探测图形的相对位置,然后执行步骤308-318。
示例
为帮助更好地理解上述的实施例,下面列举一些找到不同位置探测图形的示例。需要指出的是,为避免混淆示例的重点,这些示例中并未包含上述实施例中的所有步骤。
图5是根据本发明一实施例的确定二维码的映射参考点的方法的找到2个位置探测图形的示例。参考图5所示,当在步骤502找到2个位置探测图形时,可以在步骤504假定位置探测图形的相对位置。在步骤506可以判断依照当前的假定尝试的次数。如果未达到2次,则进入步骤508,寻找校正图形并进行匹配。在步骤510,判断校正图形是否匹配成功。当匹配成功时,可以在步骤512,根据映射参考点确定QR码中各模块的采样映射关系,然后在步骤514进行采样和解码。当在步骤510判断匹配不成功时,可以在步骤516,利用QR码4个顶点确定的映射关系进行粗采样和解码。在步骤518可以判断解码是否成功,如果成功则结束流程,否则返回步骤502。另一方面,如果在步骤506判断尝试的次数达到2次,则直接结束流程。
图6是根据本发明一实施例的确定二维码的映射参考点的方法的找到1个位置探测图形的示例。参考图6所示,当在步骤602找到1个位置探测图形时,可以在步骤604假定位置探测图形的相对位置。在步骤606可以判断依照当前的假定尝试的次数。如果未达到3次,则进入步骤608,寻找校正图形并进行匹配。在步骤610,判断校正图形是否匹配成功。当匹配成功时,可以在步骤612,根据映射参考点确定QR码中各模块的采样映射关系,然后在步骤614进行采样和解码。当在步骤610判断匹配不成功时,可以在步骤616,利用QR码4个顶点确定的映射关系进行粗采样和解码。在步骤618可以判断解码是否成功,如果成功则结束流程,否则返回步骤602。另一方面,如果在步骤606判断尝试的次数达到3次,则直接结束流程。
本发明的上述方法可以在各种解码设备中实施,解码设备可具有一扫描器以获得包括二维码区域的图像。在解码设备中可包括处理器、存储器和存储于存储器中的计算机可执行指令。处理器适于执行指令以实现如上面实施例所描述的确定映射参考点的方法和解码方法。
本发明的上述方法也可以实施为计算机程序,保存在计算机可读存储介质中,并可被例如解码设备的计算机加载到其处理器中执行,以实施本发明的方法。例如,计算机可读存储介质可以包括但不限于磁存储设备(例如,硬盘、软盘、磁条)、光盘(例如,压缩盘(CD)、数字多功能盘(DVD))、智能卡和闪存设备(例如,电可擦除可编程只读存储器(EPROM)、卡、棒、键驱动)。此外,本文描述的各种存储介质能代表用于存储信息的一个或多个设备和/或其它机器可读介质。术语“机器可读介质”可以包括但不限于能存储、包含和/或承载代码和/或指令和/或数据的无线信道和各种其它介质(和/或存储介质)。
虽然本发明已参照当前的具体实施例来描述,但是本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本发明,在没有脱离本发明精神的情况下还可作出各种等效的变化或替换,因此,只要在本发明的实质精神范围内对上述实施例的变化、变型都将落在本申请的权利要求书的范围内。

Claims (13)

1.一种二维码的解码方法,包括以下步骤:
a.确定二维码的各个顶点;
b.检测所述二维码的多个位置探测图形,获得一个或多个位置探测图形;
c.当所述一个或多个位置探测图形的数量小于足以确定所述二维码的多个位置探测图形的相对位置的阈值时,假定所述二维码的多个位置探测图形的相对位置;
d.根据所述二维码的各个顶点和所述二维码的多个位置探测图形的相对位置来搜寻所述二维码中的校正图形;
e.根据所述二维码的多个位置探测图形的相对位置与搜寻到的校正图形的组合来确定映射参考点;
f.根据所述映射参考点对所述二维码进行采样;以及
g.对采样值进行解码,当解码不成功时,回到所述步骤c重新假定所述二维码的多个位置探测图形的相对位置。
2.根据权利要求1所述的方法,其特征在于,确定二维码的各个顶点的方法包括:
跟踪所述二维码的边界轮廓,获得所述边界轮廓的外接多边形;
根据所述外接四边形确定所述二维码的各个顶点。
3.根据权利要求2所述的方法,其特征在于,跟踪所述二维码的边界轮廓之前还包括:
对所述二维码的图像进行数学形态学处理以得到所述二维码的封闭连通区域。
4.根据权利要求1或2所述的方法,其特征在于,确定二维码的各个顶点的步骤还包括:
将所述二维码校正为正方形;
其中所述二维码的各个顶点是所述正方形的各个顶点。
5.根据权利要求1所述的方法,其特征在于,确定所述二维码的多个位置探测图形的相对位置时,所述多个位置探测图形包括缺损的位置探测图形。
6.根据权利要求1所述的方法,其特征在于,假定所述二维码的位置探测图形的相对位置的步骤包括:
当检测到两个位置探测图形时,计算所述两个位置探测图形中心点连线与所述二维码的任一条边界的夹角大小判断所述两个位置探测图形的相对位置,然后根据所述二维码的模块尺寸推算缺损的一个位置探测图形的相对位置;
当检测到一个位置探测图形时,假设所述一个位置探测图形的相对位置,推算出缺损的两个位置探测图形的相对位置。
7.根据权利要求1所述的方法,其特征在于,还包括:
确定所述二维码的版本;
参考所述二维码的版本决定是否搜寻所述二维码中的校正图形。
8.根据权利要求1所述的方法,其特征在于,足以确定所述二维码的多个位置探测图形的相对位置的位置探测图形的阈值为三个。
9.根据权利要求1所述的方法,其特征在于,在步骤g中,当不能确定足够数量的映射参考点时,根据所述二维码的各个顶点确定所述二维码的映射参考点。
10.根据权利要求9所述的方法,其特征在于,判断能否确定足够多的映射参考点的步骤包括:
当检测到的位置探测图形和校正图形的数量之和达到三个时,则认为能确定足够多的映射参考点;
当检测到的位置探测图形和校正图形的数量之和少于三个时,则认为不能确定足够多的映射参考点。
11.根据权利要求1所述的方法,其特征在于,所述二维码为QR码。
12.一种二维码的解码装置,包括处理器、存储器和存储于所述存储器中的计算机可执行指令,所述处理器适于执行所述指令以实现如权利要求1-11任一项所述的方法。
13.一种计算机可读存储介质,其上存储有计算机指令,其中当计算机指令被处理器执行时,执行如权利要求1-11任一项所述的方法。
CN201811339423.0A 2018-11-12 2018-11-12 二维码的解码方法和装置 Active CN109508573B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811339423.0A CN109508573B (zh) 2018-11-12 2018-11-12 二维码的解码方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811339423.0A CN109508573B (zh) 2018-11-12 2018-11-12 二维码的解码方法和装置

Publications (2)

Publication Number Publication Date
CN109508573A true CN109508573A (zh) 2019-03-22
CN109508573B CN109508573B (zh) 2020-10-30

Family

ID=65748098

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811339423.0A Active CN109508573B (zh) 2018-11-12 2018-11-12 二维码的解码方法和装置

Country Status (1)

Country Link
CN (1) CN109508573B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110969612A (zh) * 2019-12-04 2020-04-07 常州大学 二维码印刷缺陷检测方法
CN111222613A (zh) * 2020-04-16 2020-06-02 上海商魁信息科技有限公司 一种处理二维码的方法、装置和计算机存储介质
CN112215319A (zh) * 2020-08-09 2021-01-12 向天鸽 颜色标记特征图形的二维码及其识别方法
CN114662519A (zh) * 2022-05-24 2022-06-24 武汉朗修科技有限公司 基于位置探测图形梯度和强度先验的qr码盲去模糊方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070187512A1 (en) * 2006-02-10 2007-08-16 Fuji Xerox Co., Ltd. Two-dimensional code detection system and two-dimensional code detection program
CN101908144A (zh) * 2010-06-01 2010-12-08 福建新大陆电脑股份有限公司 一种条码图像校正方法及校正点获取方法
CN104424457A (zh) * 2013-08-20 2015-03-18 复旦大学 一种非线性扭曲情况下的二维码识别方法
CN105138943A (zh) * 2015-09-02 2015-12-09 福建联迪商用设备有限公司 Qr码位置探测图形破损时的解码方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070187512A1 (en) * 2006-02-10 2007-08-16 Fuji Xerox Co., Ltd. Two-dimensional code detection system and two-dimensional code detection program
CN101908144A (zh) * 2010-06-01 2010-12-08 福建新大陆电脑股份有限公司 一种条码图像校正方法及校正点获取方法
CN104424457A (zh) * 2013-08-20 2015-03-18 复旦大学 一种非线性扭曲情况下的二维码识别方法
CN105138943A (zh) * 2015-09-02 2015-12-09 福建联迪商用设备有限公司 Qr码位置探测图形破损时的解码方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
祁慧: "基于Android系统的QR码识别技术研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110969612A (zh) * 2019-12-04 2020-04-07 常州大学 二维码印刷缺陷检测方法
CN111222613A (zh) * 2020-04-16 2020-06-02 上海商魁信息科技有限公司 一种处理二维码的方法、装置和计算机存储介质
CN111222613B (zh) * 2020-04-16 2020-07-28 上海商魁信息科技有限公司 一种处理二维码的方法、装置和计算机存储介质
CN112215319A (zh) * 2020-08-09 2021-01-12 向天鸽 颜色标记特征图形的二维码及其识别方法
CN112215319B (zh) * 2020-08-09 2023-09-15 向天鸽 颜色标记特征图形的二维码及其识别方法
CN114662519A (zh) * 2022-05-24 2022-06-24 武汉朗修科技有限公司 基于位置探测图形梯度和强度先验的qr码盲去模糊方法

Also Published As

Publication number Publication date
CN109508573B (zh) 2020-10-30

Similar Documents

Publication Publication Date Title
CN109508573A (zh) 二维码的解码方法和装置
EP1678659B1 (en) Method and image processing device for analyzing an object contour image, method and image processing device for detecting an object, industrial vision apparatus, smart camera, image display, security system, and computer program product
CN109993019A (zh) 基于连通域分析的二维码识别方法、系统及设备和介质
US6929183B2 (en) Reconstruction of virtual raster
US20150339508A1 (en) Two-dimensional code
CN105513038A (zh) 图像匹配方法及手机应用测试平台
KR101612054B1 (ko) 영상 기반 원거리 2차원 바코드 검출 시스템
CN113158895A (zh) 票据识别方法、装置、电子设备及存储介质
CN113111674A (zh) Aztec码定位与解码方法、系统、设备及存储介质
CN112733855B (zh) 表格结构化方法、表格恢复设备及具有存储功能的装置
CN104268550A (zh) 特征提取方法及装置
CN110033065B (zh) 窄条二维码、窄条二维码的生成、识别方法、装置及设备
CN111523331B (zh) 一种二维码识别方法及装置
CN109191489B (zh) 一种飞行器着陆标志的检测跟踪方法与系统
CN110647821A (zh) 通过图像识别进行物体标识的方法和装置
CN113033233B (zh) 一种几何变形qr码的定位方法、装置及存储介质
CN114937023A (zh) 一种承压设备的缺陷识别方法及装置
CN111428565B (zh) 一种基于深度学习的点云标识点定位方法及装置
CN108388825B (zh) 快速反应码搜寻方法和装置
CN110516641B (zh) 一种环境地图的构建方法及相关装置
Dai et al. The realization of identification method for datamatrix code
CN111428530A (zh) 一种二维码图像检测识别设备、装置及方法
US10043081B2 (en) Image processing device and image processing program
CN117115275B (zh) 畸变参数的确定方法、装置和计算机设备
Liu et al. The multi-QR codes extraction method in illegible image based on contour tracing

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 200433 Shanghai city Yangpu District Songhu Road No. 388 building 7, KIC 605

Applicant after: SHANGHAI SHANGMI SCIENCE AND TECHNOLOGY GROUP CO., LTD.

Address before: 200433 Shanghai city Yangpu District Songhu Road No. 388 building 7, KIC 605

Applicant before: Shanghai traders Technology Co., Ltd.

GR01 Patent grant
GR01 Patent grant