CN101882207B - Data Matrix码条码解码芯片及其解码方法 - Google Patents
Data Matrix码条码解码芯片及其解码方法 Download PDFInfo
- Publication number
- CN101882207B CN101882207B CN2010101889749A CN201010188974A CN101882207B CN 101882207 B CN101882207 B CN 101882207B CN 2010101889749 A CN2010101889749 A CN 2010101889749A CN 201010188974 A CN201010188974 A CN 201010188974A CN 101882207 B CN101882207 B CN 101882207B
- Authority
- CN
- China
- Prior art keywords
- module
- bar code
- data matrix
- sign indicating
- indicating number
- 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
Images
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
-
- 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
- G06K7/1456—Methods for optical code recognition including a method step for retrieval of the optical code determining the orientation of the optical code with respect to the reader and correcting therefore
-
- 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/1473—Methods for optical code recognition the method including quality enhancement steps error correction
Abstract
本发明提供一种Data Matrix码条码解码芯片。特征搜索单元在条码图像中搜索位置探测图形来确定位置探测图形的像素坐标。条码参数获取单元根据位置探测图形的像素坐标来获取条码参数,确定条码区域和条码方向。校正特征获取单元在条码图像上搜索校正图形,获取校正图形的像素坐标。模块信息处理单元根据校正图形的像素坐标计算Data Matrix码的模块所对应的灰度值。二值化单元对Data Matrix码的模块进行二值化处理。码字提取单元根据二值化处理的Data Matrix码的模块提取码字。纠错译码单元根据纠错等级对码字进行纠错译码处理。本发明还提供一种通过Data Matrix码解码方法。本发明的DataMatrix码条码解码芯片以及Data Matrix码解码方法能保证Data Matrix码解码过程快速、顺利地进行。
Description
【技术领域】
本发明涉及条码识别技术领域,特别地,涉及一种Data Matrix码条码解码芯片及其解码方法。
【背景技术】
条码技术是在计算机技术与信息技术基础上发展起来的一门集编码、印刷、识别、数据采集和处理于一身的新兴技术。条码技术由于其识别快速、准确、可靠以及成本低等优点,被广泛应用于商业、图书管理、仓储、邮电、交通和工业控制等领域,并且势必在逐渐兴起的“物联网”应用中发挥重大的作用。
目前被广泛使用的条码包括一维条码及二维条码。一维条码又称线形条码是由平行排列的多个“条”和“空”单元组成,条形码信息靠条和空的不同宽度和位置来表达。一维条码只是在一个方向(一般是水平方向)表达信息,而在垂直方向则不表达任何信息,因此信息容量及空间利用率较低,并且在条码污损后即无法识别。
二维条码是由按一定规律在二维方向上分布的黑白相间的特定几何图形组成,其可以在二维方向上表达信息,因此信息容量及空间利用率较低,并具有一定的校验功能。二维条码可以分为堆叠式二维条码和矩阵式二维条码。堆叠式二维条码是由多行短截的一维条码堆叠而成,代表性的堆叠式二维条码包括PDF417、Code 49、Code 16K等。矩阵式二维条码是由按预定规则分布于矩阵中的黑、白模块组成,代表性的矩阵式二维条码包括QR码、Data Matrix码、Maxi Code、Aztec Code、汉信码等。二维条码除具备一维条码也具有的优点外,同时还具有信息容量大、密度高、具有纠错功能、可表示各种多媒体信息以及多种文字信息、保密防伪性强、解码可靠性高的特点。
现有技术在对二维条码进行解码的过程中,通常是利用摄影设备对条码进行拍摄,以获取条码图像,然后对条码图像进行去燥、灰度提取、二值化、码字提取、译码等处理方法。
然而,上述现有技术在对条码图像进行自适应亮度均衡化和二值化处理过程时,是针对每一个像素点进行自适应亮度均衡化和二值化处理,因此要对每一个像素点的灰度进行调节,并与阈值灰度进行比对,数据计算量很大,降低了系统的处理速度。而且由于该系统是在不知晓条码特征信息(即条码的相关参数,包括条码方向、条码区域尺寸和条码版本、条码畸变系数等信息)的情况下进行二值化处理,会造成模块错误,即在二值化过程中,由于噪声、畸变等因素的影响,出现模块的深浅状态和设计状态发生倒置的情况,这大大降低条码的识别能力,增加了条码识别的误码率。尤其在条码版本较高,所含模块数量较多的情况下,或者是条码图像分辨率低,曝光质量不佳的情况下,这种方法较难对二维条码进行识别。
另外,现有技术的Data Matrix码识别系统通常是采用处理器调用程序存储器中的解码程序,对条码图像进行处理来实现识别解码。该系统的问题在于:一、处理速度慢,该系统需要在微处理器中写入实现解码算法的一系列程序,单个处理器只能同时针对一种特定类型的条码格式进行解码处理,处理器在一个时钟周期只能处理一个操作,软件处理也决定了解码流程的单流程特性,较难实现对条码图像的流水线作业和并行处理,处理速度较慢;二、使用成本高,由于解码算法较为复杂,因此需要使用高端的处理器(如32位处理器)实现以上算法,需要处理器以及硬件加速电路相配合,这样会造成系统成本高昂;三、系统复杂,集成难度大,功耗高,不易于便携应用。
因此,针对现有技术存在的以上不足,亟需提供一种Data Matrix码条码解码芯片及其解码方法,使得能保证解码过程快速、顺利地进行。
【发明内容】
针对现有技术存在的处理速度慢、错误发生机率较大等不足,本发明提供一种Data Matrix码条码解码芯片及其解码方法,能保证Data Matrix码解码过程快速、顺利地进行。
本发明提供一种Data Matrix码条码解码芯片,包括特征搜索单元、条码参数获取单元、校正特征获取单元、模块信息处理单元、二值化单元、码字提取单元以及纠错译码单元。特征搜索单元在条码图像中搜索位置探测图形来确定位置探测图形的像素坐标。条码参数获取单元根据位置探测图形的像素坐标来获取条码参数,确定条码区域和条码方向。校正特征获取单元在条码图像上搜索校正图形,获取校正图形的像素坐标。模块信息处理单元根据校正图形的像素坐标计算模块尺寸,获取模块参数和纠错等级,并根据模块参数计算校正图形的模块坐标,然后根据条码参数、模块参数、以及校正图形的像素坐标和模块坐标,计算Data Matrix码的模块所对应的灰度值。二值化单元对Data Matrix码的模块进行二值化处理。码字提取单元根据二值化处理的Data Matrix码的模块提取码字。纠错译码单元根据纠错等级对码字进行纠错译码处理。
本发明还提供一种Data Matrix码解码方法,包括以下步骤:a.获取条码图像;b.搜索位置探测图形,根据位置探测图形的像素坐标来获取条码参数;c.搜索校正特征,获取校正特征的像素坐标;d.根据校正特征的像素坐标计算模块尺寸、模块参数以及校正特征的模块坐标,根据校正特征的像素坐标和模块坐标计算条码图像的像素坐标与模块坐标之间的映射关系;f.根据映射关系和Data Matrix码的模块参数计算模块灰度值;g.对模块灰度值进行二值化处理;i.根据二值化处理的结果提取码字;j.对码字进行译码处理。
本发明另提供一种Data Matrix码解码方法,包括以下步骤:a.获取条码图像;b.在条码图像的预定区域内,提取符合预定长度的多个黑白边界线段;c.基于多个黑白边界线段构建多个直线;d.根据平行线特性对多个直线进行分组并形成行平行线组及列平行线组;e.根据Data Matrix码的特性,通过对行平行线组及列平行线组构建的网格进行判断来确认是否存在Data Matrix码;f.获取行平行线组及列平行线组构建的网格的特征图形的像素坐标,根据位置探测图形的像素坐标获取条码参数;g.搜索校正特征,获取校正特征的像素坐标;h.根据校正特征的像素坐标计算模块尺寸、模块参数以及校正特征的模块坐标,根据校正特征的像素坐标和模块坐标计算条码图像的像素坐标与模块坐标之间的映射关系;i.根据映射关系和DataMatrix码的模块参数计算模块灰度值;j.对模块灰度值进行二值化处理;k.根据二值化处理的结果提取码字;l.对码字进行译码处理。
本发明的Data Matrix码解码方法,通过搜索位置探测图形和校正图形,获取校正图形的像素灰度坐标与模块坐标,计算条码图像的像素坐标与模块坐标之间的映射关系,然后根据该映射关系计算模块灰度值,对模块灰度值进行二值化,进而还原Data Matrix码所对应的条码符号图形。与现有技术相比,本发明的Data Matrix码解码方法是在知晓条码特征信息,并根据条码特征信息对条码图像进行校正后进行的二值化处理,因此降低了噪声、畸变等因素对二值化过程的影响,减少了模块错误的出现,大大增加了条码的识别能力,提升了条码识别的解码成功率。
本发明的Data Matrix码条码解码芯片采用硬件流水线结构,通过硬件逻辑实现对条码图像的识别解码,由于硬件流水线结构适于对条码图像进行流水线作业和并行处理,因此处理速度很快。
相对于现有技术的处理器解码技术而言,本发明的Data Matrix码条码解码芯片采用全硬件结构,无需处理器参与解码,芯片结构相对于处理器而言结构更为简化、面积更小、功耗更低、成本更低、易于集成,容易实现便携应用。可以方便地与物联网技术相结合,为条码技术的应用提供了更为广阔的发展空间。
【附图说明】
图1是Data Matrix码的条码符号图形示意图。
图2是Data Matrix码的条码符号图形的功能示意图。
图3是根据本发明的Data Matrix码条码解码芯片的解码方法的处理流程图。
图4是根据本发明的Data Matrix码条码解码芯片的第一实施方式的结构示意图。
图5是根据本发明的Data Matrix码条码解码芯片的第一实施方式中校正特征获取单元的第一种校正点获取结构的示意图。
图6是根据本发明的Data Matrix码条码解码芯片的第一实施方式中模块信息处理单元的结构示意图。
图7是根据本发明的Data Matrix码条码解码芯片的第一实施方式中模块信息处理单元的转换原理示意图。
【具体实施方式】
有关本发明的特征及技术内容,请参考以下的详细说明与附图,附图仅提供参考与说明,并非用来对本发明加以限制。
为使本领域技术人员更易于理解本发明的技术内容,提供以下条码术语的参考与说明,其中部分条码术语是根据中华人民共和国国家标准GB/T12905-2000而来,并非用于对本发明加以限制。
条码符号:某种条码定义的表示信息的条、空组合形式或模块的组合形式。
码字:码字表示源数据向条码符号转换的中间值。一种符号的码字数决定了该条码符号的所有符号的数量。
数据码字:数据码字表示数据符号的值。
纠错码字:纠错码字表示纠错符号的值。
模块:矩阵式二维条码中的一个最小独立单元,代表一位二进制数据。
功能图形:矩阵式二维条码符号中用于符号定位与特征识别的特定图形。功能图形包括探测图形、定位图形、校正图形等。
探测图形:矩阵式二维条码符号图形中,用于在条码图像中进行符号定位的特殊图形,也称位置探测图形。
定位图形:矩阵式二维条码符号图形中,用于确定符号中模块的像素坐标的图形。
校正图形:矩阵式二维条码符号图形中,用于确定符号位置的一个固定的参照图形。在条码图像有一定程度畸变或污损的情况下,可以通过校正图形对条码图像中模块的像素坐标进行校正。
编码区域:矩阵式二维条码符号图形中,未被功能图形占据,用于对数据和纠错码字进行编码,表示数据符号和纠错符号的区域。
版本:用于表示矩阵式二维条码符号规格的序列,反映了符号尺寸、符号中的模块数量和符号中的模块的排列方式。
版本信息:矩阵式二维条码符号图形中,用于确定矩阵式二维条码符号版本号的功能图形。
格式:用于表示矩阵式二维条码符号所使用的纠错等级以及掩模图形。
格式信息:矩阵式二维条码符号图形中,用于确定矩阵式二维条码符号所使用的纠错等级以及掩模图形信息的功能图形。
掩模图形:在编码区域内用掩模图形对位图进行异或处理,其目的是使符号中深色与浅色模块的比例均衡,并减少影响条码图像处理的图形出现。
二值化条码图像:用整体阈值或局部阈值对灰度条码图像进行处理,从而得到的深浅两色的条码图像。
阈值:分割两个检验等级的边界值,其值本身是上面等级的下限值。
模块错误:在二值化条码图像中,深浅状态和设计状态发生倒置的模块。
像素:光敏阵列(如CCD或CMOS器件)上的单个光敏单元在条码图像上所对应的单位,一个像素通常被视为条码图像的最小的完整单位。数码条码图像的储存方式一般以像素(Pixel)为单位,每个像素是数码条码图像里面积最小的单位。
图1是Data Matrix码的符号图形示意图,图2是Data Matrix码的符号图形功能说明图。为使本领域技术人员更易于理解本发明的技术内容,以下结合图1、图2对Data Matrix码进行简单说明。
Data Matrix码也称数据矩阵码,包括两种类型:ECC000-140和ECC200。ECC000-140采用卷积码纠错,而ECC200则使用Reed-Solomon算法纠错。目前Data Matrix码的研究与应用主要以ECC200为主,ECC000-140应用很少。Data Matrix码的功能图形包括位置探测图形和校正图形。编码区包括表示符号信息的版本信息和格式信息区,以及数据码字和纠错码字区。ECC200Data Matrix码的符号编码不采用掩模图形,其纠错与模块排列方式关联,因此ECC200Data Matrix码的编码区没有表示符号信息的区域,只包括数据码字和纠错码字区,根据检测到的ECC200Data Matrix码的模块像素坐标,即可以确定ECC200Data Matrix码的模块参数(模块尺寸、行数、列数等)和纠错等级。
如图2所示,Data Matrix码的位置探测图形是位于数据区域边缘宽度为1个模块的区域。Data Matrix码的左边和下边相邻的两条边为深色实线,形成了一个L形边界,主要用于确定条码的物理尺寸(即条码区域)、定位和校正失真。L形边界的两条对边由交替的单个模块宽度的深色和浅色模块组成的校正图形,主要用于限定条码的模块坐标和校正失真,但也能辅助确定条码的物理尺寸。
以下对本发明的Data Matrix码解码方法进行详细描述,图3是根据本发明的Data Matrix码解码方法的处理流程图。
如图3所示,在步骤901,在条码图像上进行特征搜索,以确定位置探测图形(L形边界)的像素坐标,根据位置探测图形的像素坐标获取条码参数,条码参数包括条码区域和条码方向。在本发明的一种实施方式中,此步骤可以通过模板匹配检测位置探测图形的方式实现。在本发明的另一种实施方式中,此步骤也可以通过比例检测的方式实现,该方式包括通过扫描方式检测条码图像中的深浅模块边界点,将深浅模块边界点构成的线特征与位置探测图形相比较,根据比较结果确定条码图像中位置探测图形的像素坐标。确定位置探测图形(L形边界)的像素坐标包括模板匹配、十字扫描等多种方法。在条码图像中,由于某些模块组合的图形也具有类似于L形边界的L形图形,特征搜索可能获取多个L形图形的匹配位置,因此需要根据L形边界与空白区之间的相对关系进行判断,排除无效的L形图形。另外,本发明还提供一种通过行列线检测实现对Data Matrix码的识别的实施方式,该方法包括以下步骤:首先在条码图像的预定区域内,提取符合预定长度的多个黑白边界线段;然后基于提取到的多个黑白边界线段构建多个直线;再根据平行线特性对多个直线进行分组并形成行平行线组及列平行线组;最后根据Data Matrix码的特性,通过对行平行线组及列平行线组构建的网格进行判断来确认是否存在Data Matrix码,并获取行平行线组及列平行线组构建的网格的特征图形的像素坐标,根据特征图形的像素坐标获取条码参数。
在步骤902,根据检测到的位置探测图形的像素坐标和条码参数,在条码图像上搜索校正图形,例如为轨道线(也称铁路线),获取校正图形中心点和/或边缘点的像素坐标,即轨道线的像素坐标,获取校正特征。
在步骤903,根据校正特征提取模块参数和校正参数。具体步骤包括根据轨道线中多个模块的中心点的像素坐标来计算Data Matrix码的模块间隔,获取模块尺寸,根据条码参数和模块尺寸获取Data Matrix码的模块行数和列数,获取模块参数。然后根据模块参数计算轨道线的模块坐标。并根据轨道线中多个模块的中心点的像素坐标和模块坐标计算校正参数,该校正参数反映了条码图像的像素点与条码模块之间的映射关系。之后根据模块尺寸和校正参数计算各个模块所对应的像素点,根据各个模块所对应的像素点的坐标和灰度值计算各个模块所对应的灰度值,构造模块图。
由于条码在印刷和成像过程中可能发产生畸变,造成条码上不同区域所对应的模块宽度可能不相等,而Data Matrix码的轨道线是由交替的单个模块宽度的深色和浅色模块组成,而且会贯穿条码的水平方向和垂直方向,轨道线上深色和浅色模块的模块宽度变化就反映了Data Matrix码的畸变情况,因此通过根据轨道线来计算每个模块的宽度,可以有效地抵御条码畸变。
在步骤904,对模块图进行二值化处理以提取位图。
在步骤905,根据Data Matrix码的排列规则进行位流提取并转换为数据码字和纠错码字。
在步骤906,根据纠错等级,重新将数据码字和纠错码字按块排列,进行错误检测和纠错计算,纠正删除错误和未知错误,还原表示Data Matrix码信息的数据位流。
在步骤907,将还原的数据位流进行译码,以获得Data Matrix码信息。
以下对本发明的Data Matrix码条码解码芯片进行详细描述,图4是根据本发明的Data Matrix码条码解码芯片的第一实施方式的结构示意图。
如图4所示,数据存储器11存储条码图像,Data Matrix码条码解码芯片10对数据存储器11存储条码图像进行识别解码。Data Matrix码条码解码芯片10包括控制逻辑单元100、特征搜索单元101、条码参数获取单元102、模块参数获取单元103、校正特征获取单元104、模块信息处理单元105、二值化单元106、码字提取单元107以及纠错译码单元108。
控制逻辑单元100用于控制特征搜索单元101、条码参数获取单元102、模块参数获取单元103、校正特征获取单元104、模块信息处理单元105、二值化单元106、码字提取单元107以及纠错译码单元108的工作状态和处理流程。控制逻辑单元100采用有限状态机(Finite State Machine)形式进行控制。有限状态机又称有限状态自动机或简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的状态逻辑。控制逻辑单元100可以用可编程逻辑设备、可编程逻辑控制器、逻辑门和触发器来构造。优选的实施方式中,控制逻辑单元100包括寄存器、确定状态转移的组合逻辑以及确定状态控制模块输出的组合逻辑。寄存器用于存储状态变量。
特征搜索单元101通过在条码图像中搜索特征图形来确定特征图形在条码图像上的像素坐标。特征图形包括但不限于条码的功能图形,例如位置探测图形、校正图形等。优选的实施方式中,位置特征搜索单元101采用模板匹配的方式搜索位置探测图形,例如是L形边界,其根据L形边界的形状,生成L形边界检测模板,将L形边界检测模板相对条码图像进行平移并进行灰度匹配,以确定L形边界检测模板与条码图像的最佳匹配位置,并根据最佳匹配位置确定条码图像中L形边界的转折点和边界点的像素坐标。在条码图像中,由于某些模块组合的图形也具有类似L形边界的L形图形,特征搜索单元101可能获取多个L形图形的匹配位置,因此需要根据L形边界与空白区之间的相对关系进行判断,排除无效的L形图形。在本发明的另一种实施方式中,特征搜索单元101也可以通过比例检测的方式来确定特征图形在条码图像上的像素坐标,该方式包括通过扫描方式检测条码图像中的深浅模块边界点,将深浅模块边界点构成的线特征与位置探测图形相比较,根据比较结果确定条码图像中位置探测图形的像素坐标。另外,本发明还提供一种通过行列线检测实现对Data Matrix码的识别的实施方式,在该实施方法中,特征搜索单元101首先在条码图像的预定区域内,提取符合预定长度的多个黑白边界线段,然后基于提取到的多个黑白边界线段构建多个直线,再根据平行线特性对多个直线进行分组并形成行平行线组及列平行线组,最后根据Data Matrix码的特性,通过对行平行线组及列平行线组构建的网格进行判断来确认是否存在Data Matrix码,并获取行平行线组及列平行线组构建的网格的特征图形的像素坐标。
条码参数获取单元102根据特征搜索单元101所检测的位置探测图形的像素坐标来计算模块尺寸,通过位置探测图形的L形图形的长度获取条码区域,根据L形图形的两条边在条码图像坐标系的朝向来获取条码方向。更进一步的,条码参数获取单元102还可以根据L形图形的宽度估算模块尺寸的大致范围。
校正特征获取单元103根据特征搜索单元101所检测的位置探测图形的像素坐标以及条码参数获取单元102所获取的条码参数,包括条码区域、条码方向等,在条码图像上搜索校正图形,例如为轨道线(也称铁路线),获取校正图形中多个模块的中心点和/或边缘点的像素坐标,即轨道线的像素坐标,获取校正特征。
图5是根据本发明的Data Matrix码条码解码芯片的第一实施方式中校正特征获取单元的第一种校正点获取结构的示意图。如图5所示,校正特征获取单元103包括校正图形搜索单元1031和校正点获取单元1032。校正图形搜索单元1041根据特征搜索单元101所检测的位置探测图形的像素坐标以及条码参数获取单元102所获取的条码参数,按照轨道线的模块排列方式生成轨道线检测模板,将轨道线检测模板相对条码图像进行平移并进行灰度匹配。校正点获取单元1032对匹配结果进行相似度计算处理,以确定轨道线检测模板与条码图像的最佳匹配位置,根据最佳匹配位置确定条码图像中轨道线中多个模块的中心点的像素坐标和灰度值。
模块信息处理单元104根据轨道线中多个模块的中心点的像素坐标来计算Data Matrix码的模块间隔,获取模块尺寸,根据条码参数和模块尺寸确定Data Matrix码的模块行数和列数,获取模块参数。然后根据模块参数计算轨道线的模块坐标。并根据轨道线中多个模块的中心点的像素坐标和模块坐标计算校正参数,该校正参数反映了条码图像的像素点与Data Matrix码模块之间的映射关系。再根据Data Matrix码的模块参数和校正参数计算各个模块所对应的像素点。之后根据各个模块所对应的像素点的坐标和灰度值计算各个模块所对应的灰度值,构造模块图。
图6是根据本发明的Data Matrix码条码解码芯片的第一实施方式中模块信息处理单元的结构示意图。模块信息处理单元104包括模块参数计算单元1041、校正特征模块坐标计算单元1042、校正参数计算单元1043、模块像素点计算单元1044以及模块灰度值计算单元1045。模块参数计算单元1051根据轨道线中多个模块的中心点的像素坐标来计算Data Matrix码的模块间隔,获取模块尺寸,根据条码参数和模块尺寸确定Data Matrix码的模块行数和列数,获取模块参数。由于Data Matrix码的纠错等级与模块的行数和列数相关联,因此通过获取模块参数还可以确定Data Matrix码的纠错等级。校正特征模块坐标计算单元1042根据校正特征获取单元103提供的轨道线的像素坐标,结合模块参数计算获得轨道线的模块坐标。校正参数计算单元1043根据轨道线的像素坐标和模块坐标计算获得校正参数,该校正参数反映了条码图像的像素点与条码模块之间的映射关系。模块像素点计算单元1044根据模块参数和校正参数计算各个模块所对应的像素点。模块与像素点之间的映射计算可以通过多种方式实现,包括透视变换、二次多项式、三次多项式、三角网格、小波变换或上述计算方式的结合等。模块像素点计算单元1044可以通过模块坐标计算对应的像素点的坐标,也可以通过像素坐标计算对应的模块的坐标。本发明对上述计算过程及其所采取的计算手段并不加以限定。模块灰度值计算单元1045根据各个模块所对应的像素点的坐标和灰度值计算各个模块所对应的灰度值,以构造模块图。模块的灰度值计算可以通过多种方式实现,包括统计计算、插值计算、均值计算、加权计算或上述计算方式的结合等,本发明对上述计算过程及其所采取的计算手段并不加以限定。为便于本领域技术人员理解本发明的模块信息处理单元的处理过程,本发明举例一种计算方法对本发明的模块信息处理单元的转换原理进行说明,但是,该计算方法不应理解为对本发明的模块信息处理单元的限制。
图7是根据本发明的Data Matrix码条码解码芯片的第一实施方式中模块信息处理单元的转换原理示意图。模块81与像素区域82之间具有映射关系,变形区域821对应于模块81在像素区域82上的映射范围。模块81的中心点W在像素区域82所对应的映射点为W′。由图9可知,模块81所对应的像素点包括多个像素点,围绕映射点W′的像素点为A、B、C、D 4个像素点。中心变形区域822对应于模块81的中心区域在像素区域82上的映射范围。对于矩阵条码而言,模块的中心区域所反映的模块值最准确。优选的实施方式中,可以通过A、B、C、D 4个像素点的灰度值来计算与映射点W′相对应的模块中心点W的灰度值。当然,也可以通过像素区域82所对应的所有像素点来计算模块81的灰度值。即,模块81的灰度值可以通过与其对应的若干个像素点的灰度值计算得出。
二值化单元105接收模块信息处理单元104计算获得的模块灰度值,根据阈值对模块图进行二值化处理以提取位图。阈值的获取方式包括预设阈值、整体阈值获取、局部阈值获取等多种方式
码字提取单元106根据Data Matrix码的排列规则进行位流提取并根据模块编码模式转换为数据码字和纠错码字。
纠错译码单元107根据模块信息处理单元104得到的纠错等级,重新将数据码字和纠错码字按块排列,进行错误检测和纠错计算,纠正删除错误和未知错误,还原表示Data Matrix码信息的数据位流,将还原的数据位流根据模块编码模式进行译码,以获得Data Matrix码信息。
本发明的Data Matrix码解码方法,通过搜索位置探测图形和校正图形,获取校正图形的像素灰度坐标与模块坐标,计算条码图像的像素坐标与模块坐标之间的映射关系,然后根据该映射关系计算模块灰度值,对模块灰度值进行二值化,进而还原Data Matrix码所对应的条码符号图形。与现有技术相比,本发明的Data Matrix码解码方法是在知晓条码特征信息,并根据条码特征信息对条码图像进行校正后进行的二值化处理,因此降低了噪声、畸变等因素对二值化过程的影响,减少了模块错误的出现,大大增加了条码的识别能力,提升了条码识别的解码成功率。
本发明的Data Matrix码条码解码芯片采用硬件流水线结构,通过硬件逻辑实现对条码图像的识别解码,由于硬件流水线结构适于对条码图像进行流水线作业和并行处理,因此处理速度很快。
相对于现有技术的处理器解码技术而言,本发明的Data Matrix码条码解码芯片采用全硬件结构,无需处理器参与解码,芯片结构相对于处理器而言结构更为简化、面积更小、功耗更低、成本更低、易于集成,容易实现便携应用。可以方便地与物联网技术相结合,为条码技术的应用提供了更为广阔的发展空间。
以上参照附图说明了本发明的各种优选实施例,但是只要不背离本发明的实质和范围,本领域的技术人员可以对其进行各种形式上的修改和变更,都属于本发明的保护范围。
Claims (13)
1.一种Data Matrix码条码解码芯片,包括:
特征搜索单元,在条码图像中搜索位置探测图形来确定所述位置探测图形的像素坐标;
条码参数获取单元,根据所述位置探测图形的像素坐标来获取条码参数,确定条码区域和条码方向;
校正特征获取单元,在所述条码图像上搜索校正图形,获取所述校正图形的像素坐标;
模块信息处理单元,根据所述校正图形的像素坐标计算模块尺寸,获取模块参数和纠错等级,并根据所述模块参数计算所述校正图形的模块坐标,然后根据所述条码参数、所述模块参数、以及所述校正图形的像素坐标和模块坐标,计算所述Data Matrix码的模块所对应的灰度值;
二值化单元,对所述Data Matrix码的模块进行二值化处理;
码字提取单元,根据二值化处理的所述Data Matrix码的模块提取码字;
纠错译码单元,根据所述纠错等级对所述码字进行纠错译码处理。
2.根据权利要求1所述的Data Matrix码条码解码芯片,其特征在于,所述特征搜索单元根据所述位置探测图形的形状生成位置探测图形检测模板,将所述位置探测图形检测模板相对所述条码图像进行平移并进行灰度匹配,以确定所述位置探测图形检测模板与所述条码图像的最佳匹配位置,并根据所述最佳匹配位置确定所述条码图像中所述位置探测图形的像素坐标。
3.根据权利要求1所述的Data Matrix码条码解码芯片,其特征在于,所述特征搜索单元通过扫描方式检测所述条码图像中的深浅模块边界点,将所述深浅模块边界点构成的线特征与所述位置探测图形相比较,根据比较结果确定所述条码图像中所述位置探测图形的像素坐标。
4.根据权利要求1所述的Data Matrix码条码解码芯片,其特征在于,所述特征搜索单元在所述条码图像的预定区域内,提取符合预定长度的多个黑白边界线段,然后基于提取到的所述多个黑白边界线段构建多个直线,再根据平行线特性对所述多个直线进行分组并形成行平行线组及列平行线组,最后根据Data Matrix码的特性,通过对所述行平行线组及列平行线组构建的网格进行判断来确认是否存在Data Matrix码,并获取所述行平行线组及列平行线组构建的网格的所述位置探测图形的像素坐标。
5.根据权利要求1所述的Data Matrix码条码解码芯片,其特征在于,所述校正图形包括轨道线,所述校正特征获取单元根据所述条码参数,在条码图像上搜索所述轨道线,获取所述轨道线中多个模块的像素坐标。
6.根据权利要求5所述的Data Matrix码条码解码芯片,其特征在于,所述轨道线由交替的单个模块宽度的深色和浅色模块组成,所述模块信息处理单元根据所述轨道线中多个模块的像素坐标计算所述Data Matrix码的模块尺寸。
7.根据权利要求6所述的Data Matrix码条码解码芯片,其特征在于,所述模块信息处理单元根据所述模块尺寸和所述条码参数获取所述模块参数,所述模块参数包括所述Data Matrix码的模块行数和列数。
8.根据权利要求7所述的Data Matrix码条码解码芯片,其特征在于,所述模块信息处理单元根据所述模块参数获取所述Data Matrix码的纠错等级。
9.根据权利要求7所述的Data Matrix码条码解码芯片,其特征在于,所述模块信息处理单元根据所述模块参数和所述轨道线中多个模块的像素坐标,计算所述轨道线中多个模块的模块坐标。
10.根据权利要求9所述的Data Matrix码条码解码芯片,其特征在于,所述模块信息处理单元根据所述轨道线的像素坐标和模块坐标计算获得校正参数,所述校正参数反映了所述条码图像的像素点与所述Data Matrix码模块之间的映射关系。
11.根据权利要求10所述的Data Matrix码条码解码芯片,其特征在于,获得所述校正参数的方法包括透视变换、二次多项式、三次多项式、三角网格、小波变换或上述计算方式的结合。
12.一种Data Matrix码解码方法,其特征在于,包括以下步骤:
a.获取条码图像;
b.搜索位置探测图形,根据所述位置探测图形的像素坐标来获取条码参数;
c.搜索校正特征,获取校正特征的像素坐标;
d.根据所述校正特征的像素坐标计算模块尺寸、模块参数以及所述校正特征的模块坐标,根据所述校正特征的像素坐标和模块坐标计算所述条码图像的像素坐标与模块坐标之间的映射关系;
e.根据所述映射关系和Data Matrix码的模块参数计算模块灰度值;
f.对所述模块灰度值进行二值化处理;
g.根据所述二值化处理的结果提取码字;
h.对所述码字进行译码处理。
13.一种Data Matrix码解码方法,其特征在于,包括以下步骤:
a.获取条码图像;
b.在所述条码图像的预定区域内,提取符合预定长度的多个黑白边界线段;
c.基于所述多个黑白边界线段构建多个直线;
d.根据平行线特性对所述多个直线进行分组并形成行平行线组及列平行线组;
e.根据Data Matrix码的特性,通过对所述行平行线组及列平行线组构建的网格进行判断来确认是否存在Data Matrix码;
f.获取行平行线组及列平行线组构建的网格的特征图形的像素坐标,根据所述特征图形的像素坐标获取条码参数;
g.搜索校正特征,获取校正特征的像素坐标;
h.根据所述校正特征的像素坐标计算模块尺寸、模块参数以及所述校正特征的模块坐标,根据所述校正特征的像素坐标和模块坐标计算所述条码图像的像素坐标与模块坐标之间的映射关系;
i.根据所述映射关系和Data Matrix码的模块参数计算模块灰度值;
j.对所述模块灰度值进行二值化处理;
k.根据所述二值化处理的结果提取码字;
l.对所述码字进行译码处理。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101889749A CN101882207B (zh) | 2010-06-01 | 2010-06-01 | Data Matrix码条码解码芯片及其解码方法 |
EP11168061.7A EP2393037B1 (en) | 2010-06-01 | 2011-05-30 | Data matrix decoding chip and decoding method thereof |
US13/149,846 US8733649B2 (en) | 2010-06-01 | 2011-05-31 | Data matrix decoding chip and decoding method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101889749A CN101882207B (zh) | 2010-06-01 | 2010-06-01 | Data Matrix码条码解码芯片及其解码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101882207A CN101882207A (zh) | 2010-11-10 |
CN101882207B true CN101882207B (zh) | 2012-06-20 |
Family
ID=43054219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101889749A Active CN101882207B (zh) | 2010-06-01 | 2010-06-01 | Data Matrix码条码解码芯片及其解码方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8733649B2 (zh) |
EP (1) | EP2393037B1 (zh) |
CN (1) | CN101882207B (zh) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908125B (zh) * | 2010-06-01 | 2014-07-02 | 福建新大陆电脑股份有限公司 | Qr码条码解码芯片及其解码方法 |
KR101748877B1 (ko) | 2010-12-16 | 2017-06-19 | 엘지이노텍 주식회사 | 바코드 인식 장치 및 방법 |
JP5482963B2 (ja) * | 2011-03-17 | 2014-05-07 | 富士通株式会社 | 画像処理装置、画像処理方法及び画像処理プログラム |
US8413903B1 (en) * | 2011-04-27 | 2013-04-09 | A9.Com, Inc. | Decoding barcodes |
BR112013013425B1 (pt) * | 2011-05-31 | 2021-03-02 | Rakuten, Inc. | dispositivo de processamento de imagem, método de processamento de imagem, e, meio de armazenamento legível por computador |
CN102663337B (zh) * | 2012-03-16 | 2014-07-23 | 江南大学 | 简单工况背景下的Data Matrix二维条码快速识别方法 |
WO2014118956A1 (ja) | 2013-01-31 | 2014-08-07 | 富士機械製造株式会社 | 画像処理システムおよび介助システム |
US9071785B2 (en) * | 2013-02-15 | 2015-06-30 | Gradeable, Inc. | Adjusting perspective distortion of an image |
US9062999B2 (en) * | 2013-03-15 | 2015-06-23 | Catalina Marketing Corporation | System and method of encoding item information from a scale in a self-service scanning solution |
JP2015032213A (ja) * | 2013-08-05 | 2015-02-16 | 株式会社東芝 | 情報処理装置、方法、及びプログラム |
CN104517092B (zh) * | 2013-09-29 | 2018-04-03 | 北大方正集团有限公司 | 一种qr码校正图形的检测方法及系统 |
CN104834839B (zh) * | 2014-02-11 | 2019-08-23 | 阿里巴巴集团控股有限公司 | 一种条码生成方法、基于条码的鉴权方法及相关终端 |
EP3023905B1 (en) * | 2014-11-18 | 2018-08-08 | Cognex Corporation | Systems and methods for decoding two-dimensional matrix symbols |
US9501681B1 (en) | 2015-07-14 | 2016-11-22 | A9.Com, Inc. | Decoding visual codes |
CN105069394B (zh) * | 2015-07-23 | 2017-10-10 | 福建联迪商用设备有限公司 | 二维码加权平均灰度法解码方法及系统 |
US10685317B2 (en) * | 2015-09-22 | 2020-06-16 | United States Postal Service | Trackable postage |
CN107886026B (zh) * | 2016-09-30 | 2019-12-13 | 腾讯科技(深圳)有限公司 | 图形码处理方法及装置 |
CN107016316B (zh) * | 2016-10-24 | 2020-01-31 | 阿里巴巴集团控股有限公司 | 一种条形码的识别方法和装置 |
CN106779745A (zh) * | 2016-12-15 | 2017-05-31 | 上海净意信息科技有限公司 | 一种有机畜牧追溯监测系统及方法 |
CN107729790B (zh) | 2017-09-27 | 2020-12-29 | 创新先进技术有限公司 | 二维码定位方法及装置 |
CN109186762B (zh) * | 2018-09-30 | 2023-09-01 | 中国科学院西安光学精密机械研究所 | 一种确定编码图像数据区域的方法及编码模板 |
CN109934036B (zh) * | 2019-03-22 | 2022-01-04 | 福州符号信息科技有限公司 | 一种通过单一位置探测图形识读qr码的方法和系统 |
CN110659529B (zh) * | 2019-09-03 | 2023-06-02 | 珠海市杰理科技股份有限公司 | 条形码识别方法、装置、计算机设备和存储介质 |
CN110487283B (zh) * | 2019-09-17 | 2023-04-11 | 国微集团(深圳)有限公司 | 可识别的码点块以及基于该码点块的导航方法及系统 |
CN112580380B (zh) * | 2020-12-11 | 2024-04-19 | 北京极智嘉科技股份有限公司 | 基于图形码的定位方法、装置、电子设备和存储介质 |
CN113420580A (zh) * | 2021-07-14 | 2021-09-21 | 北京紫光青藤微系统有限公司 | 用于对二维码进行辅助定位符定位的方法及装置、二维码扫描设备、存储介质 |
CN114004320B (zh) * | 2021-10-15 | 2023-11-28 | 库卡机器人(广东)有限公司 | 图形码的生成方法和装置、识别方法和装置、电子设备 |
CN114139670B (zh) * | 2021-12-03 | 2022-07-01 | 北京中航科电测控技术股份有限公司 | 一种旋转传感器的数据处理系统及方法 |
CN115438682B (zh) * | 2022-10-24 | 2023-01-31 | 北京紫光青藤微系统有限公司 | 用于确定解码方向的方法、装置及解码设备 |
CN115860034B (zh) * | 2023-02-14 | 2023-06-20 | 北京紫光青藤微系统有限公司 | 解码方法、解码装置、解码芯片及扫码设备 |
CN115906898A (zh) * | 2023-02-23 | 2023-04-04 | 青岛创新奇智科技集团股份有限公司 | DataMatrix码的解码方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101093543A (zh) * | 2007-06-13 | 2007-12-26 | 中兴通讯股份有限公司 | 一种快速响应矩阵二维码图像的校正方法 |
CN101197004A (zh) * | 2007-12-25 | 2008-06-11 | 深圳矽感科技有限公司 | 一种二维条码及其编解码方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5726435A (en) * | 1994-03-14 | 1998-03-10 | Nippondenso Co., Ltd. | Optically readable two-dimensional code and method and apparatus using the same |
JP2003248792A (ja) * | 2002-02-22 | 2003-09-05 | Seiko Epson Corp | 2次元コードのデコード方法、2次元コードのデコード装置、コンピュータに2次元コードのデコード方法を実行させるためのプログラム、このプログラムを記録した記録媒体 |
JP3516144B1 (ja) * | 2002-06-18 | 2004-04-05 | オムロン株式会社 | 光学情報コードの読取方法および光学情報コード読取装置 |
US7337970B2 (en) * | 2004-12-03 | 2008-03-04 | Symbol Technologies, Inc. | Barcode scanner decoding |
US7886978B2 (en) * | 2007-09-20 | 2011-02-15 | Microsoft Corporation | Techniques for decoding images of barcodes |
CN101978380B (zh) * | 2008-01-29 | 2015-11-25 | 威泰克公司 | 二维符号及其读取方法 |
-
2010
- 2010-06-01 CN CN2010101889749A patent/CN101882207B/zh active Active
-
2011
- 2011-05-30 EP EP11168061.7A patent/EP2393037B1/en active Active
- 2011-05-31 US US13/149,846 patent/US8733649B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101093543A (zh) * | 2007-06-13 | 2007-12-26 | 中兴通讯股份有限公司 | 一种快速响应矩阵二维码图像的校正方法 |
CN101197004A (zh) * | 2007-12-25 | 2008-06-11 | 深圳矽感科技有限公司 | 一种二维条码及其编解码方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2393037B1 (en) | 2018-01-17 |
US20110290880A1 (en) | 2011-12-01 |
CN101882207A (zh) | 2010-11-10 |
US8733649B2 (en) | 2014-05-27 |
EP2393037A1 (en) | 2011-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101882207B (zh) | Data Matrix码条码解码芯片及其解码方法 | |
CN101882210B (zh) | 矩阵式二维条码解码芯片及其解码方法 | |
CN101908125B (zh) | Qr码条码解码芯片及其解码方法 | |
CN101908128B (zh) | Aztec Code条码解码芯片及其解码方法 | |
KR101612700B1 (ko) | 매트릭스 qr코드 해독방법 | |
CN110516577A (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN101923632B (zh) | Maxi Code条码解码芯片及其解码方法 | |
CN105787897A (zh) | 一种模糊二维码图像的处理方法及装置 | |
CN116311310A (zh) | 一种结合语义分割和序列预测的通用表格识别方法和装置 | |
CN101840499B (zh) | 一种条码解码方法及其二值化方法 | |
CN101882211B (zh) | 汉信码条码解码芯片及其解码方法 | |
CN201946008U (zh) | 矩阵式二维条码解码芯片 | |
CN101908126B (zh) | Pdf417条码解码芯片 | |
CN106204958B (zh) | 一种通过虹膜进行识别的atm机输入装置 | |
US9129171B2 (en) | Code reading device and code reading method | |
CN201936317U (zh) | Data Matrix码条码解码芯片 | |
CN201965627U (zh) | Aztec Code条码解码芯片 | |
CN201936319U (zh) | Qr码条码解码芯片 | |
CN201946009U (zh) | 汉信码条码解码芯片 | |
CN201927029U (zh) | Maxi Code条码解码芯片 | |
Wang et al. | Gabor filtering-based scale and rotation invariance feature for 2D barcode region detection | |
CN101833642B (zh) | MicroPDF417条码解码芯片 | |
Liu et al. | Bar code recognition in complex scenes by camera phones | |
CN201927030U (zh) | 一种条码图像亚分辨率采样装置 | |
Weng et al. | Design and implementation of barcode management information system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 350015 No. 1 Rujiangxi Road, Mawei District, Fuzhou City, Fujian Province Patentee after: New Continent Digital Technology Co., Ltd. Address before: 350015 New Continental Science Park No. 1 Rujiangxi Road, Mawei District, Fuzhou City, Fujian Province Patentee before: Fujian Newland Computer Co., Ltd. |
|
CP03 | Change of name, title or address |