专利名称:一种二维条码及其编解码方法
技术领域:
本发明涉及一种二维条码以及将数据编码生成该二维条码的码图和从该码图解码还原数据的方法。
背景技术:
二维条码一般由三部分组成特征模式区域,格式信息区域,数据码词区域。其中特征模式区域指导图像识别算法识别定位码图,格式信息区域存放描述码图格式与数据纠错相关的参数,数据码词区域存放经过纠错编码算法编码后的数据。如果特征模式区域与格式信息区域被破坏到一定程度就会导致码图不能被识别,因此这两个区域也就成为了码图中的致命区域(vulnerablearea),降低了二维码的可靠性。
如图1所示是PDF417码结构示意图,在码图的左右两端的宽细不等的竖线是其特征模式区域10,在码图的左右两端的特征模式区域10以内的一部分是其格式信息区域20,如果特征模式区域10与格式信息区域20受到一定的破坏,该码图将不能被正确识别。
如图2所示是QR码结构示意图,在码图的上部左右两角和下部左角处的“回”形区域其特征模式区域30,在码图的三个角附近的特征模式区域30以内用虚线框出的部分是其格式信息区域40,如果特征模式区域30与格式信息区域40受到一定的破坏,该码图将不能被正确识别。
发明内容
本发明的目的在于克服现有二维条码的特征模式区域与格式信息区域比较集中、易于被破坏(vulnerable)、抗变形能力(anti-deformation)差的缺点,提出一种二维条码以及将数据编码生成该二维条码的码图和从该码图解码还原数据的方法。
本发明公开了一种二维条码,具有矩形码图,所述码图包括在表面上无间隙排列的,具有不同光学特征的矩形单元模块;所述码图中的单元模块分割成多个矩形的宏模块,所述宏模块包括Num×Num个单元模块,其中Num为大于3的自然数,每个宏模块包括存储具有固定数据长度的数据码词的单元模块和存储代表该宏模块在码图中的位置的簇号的单元模块。
按照本发明的实施例,本发明的二维条码还包括下述从属技术特征所述宏模块包括最外围一周全部为深色单元模块的黑边框宏模块和最外围一周全部为浅色单元模块的白边框宏模块,所述数据码词和簇号存放于边框以内的单元模块之中,所述黑边框宏模块和白边框宏模块在码图中交替排列;所述码图包括Mnum×Mnum个所述宏模块,其中Mnum是大于1的奇数;所述码图中心的所述宏模块的簇号为0,由所述码图的中心往边界的所述宏模块的簇号按层顺序增加;不同的所述宏模块中存放所述簇号信息的簇号单元模块的位置和数量相同,所述簇号单元模块中存放的值是该宏模块位于码图中的层数对所述簇号单元模块的最大存储值进行取模运算所获得的数值。
本发明还公开了一种二维条码的编码方法,通过计算机将二进制数据流编制成码图,包括如下步骤A、首先将所述二进制数据流分割成具有特定比特长度的信息数据码词;B、然后对所述信息数据码词应用纠错算法进行运算,生成纠错码词;C、在内存中生成码图的主框架,包括每一个宏模块的边框和存储的数据表示该宏模块在所述码图中所处的位置的簇号模块;D、从码图中心开始按顺时针螺旋方向将数据码词和纠错码词填充到码图中,从而生成码像文件。
本发明还公开了一种二维条码的解码方法,通过数字照相机和计算机将码图还原成二进制数据流,包括如下步骤
I.通过照相方式获取码图的、包括每一个象素的灰度值的象素矩阵的灰阶数字图像;II.对灰阶数字图像中不同象素的灰度值的分布进行统计,根据所述统计值选择阀值将灰阶图像转化成二值图像;III.检测上述二值图像中的每一个浅色像素,如果与它最临近的上下左右四个像素中有一个或者一个以上深色像素则该像素被标记为边界像素,获得边界图像;检测所述边界图像中的直线获得直线方程并且解所述直线方程求得每个宏模块的四角坐标;IV.根据每个宏模块的四角坐标插值计算宏模块内每个单元模块的坐标;V.对应所述单元模块的坐标到所述二值图像的数字信号中读取该单元模块存储的0或者1的比特值获得码词矩阵;VI.通过下述步骤判断码词矩阵的方向A、对上述数据矩阵分别从四个不同的方向、按照已知的簇号模块的位置和单元取得每一个宏模块的每一个可能的簇号;B、分别对每一个方向,分别计算每个宏模块的可能簇号与它相邻右边、和相邻下边宏模块的相应可能簇号的差的绝对值,并将所得的绝对值累加作为该方向的得分;C、比较四个方向的得分,得分最少的方向为码图的正确方向;VII.按照码词矩阵的对称关系确定中心码词;VIII.按照所述正确方向和中心码词,从中心码词开始按照顺时针方向将所述数据码词矩阵恢复为数据码词序列。
本发明公开的二维条码将单元模块组合成宏模块,在每一个宏模块中都设置了标志其在码图中的位置的簇号单元模块,因为在码图中每个宏模块可以被独立定位,所以一旦图形有破损或者被污染的部分都能够被定位出来,与现有的矩阵式二维码相比识别算法能够有效的探测到擦除错误的存在,从而能提高纠错性能。这是因为在码词流中,对RS纠错算法而言擦除错误(已知位置的错误称为擦除错误)的纠错性能是替代错误(未知位置的错误称为替代错误)的纠错性能的两倍。从而使码图的抗破损、抗污染、抗形变能力得到了有力保证。
由于每一个码词对应于一个宏模块,所以全部码词被分成簇,由中心向外顺时针方向按层排列,同一层码词的簇号相同,簇号到最大后又回到0,这种排列方式能够可靠的指导解码算法定位码图的方向以及确定起始码词。
由于在不同宏模块拼接处、也即在宏模块的四角形成了特殊的图形模式,使得每个宏模块与它周围的其它宏模块之间有明显的边界,通过模板匹配算法可以快速可靠的检测并且定位每一个宏模块,简化解码方法,提高了解码率。由于在边界图像中宏模块的边框处形成显著特征的直线,通过检测直线的参数可以快速确定码图的旋转角度和定位宏模块的四角坐标。
由于将白边框宏模块与黑编框宏模块交叉排列,在码图中白边框宏模块与黑边框宏模块交叉排列,使得码图的深色模块与浅色模块的分布保持均匀,避免了码图识别时的漏斗效应,减少了码词错误的可能。
在编码运算中对已经划分了码词的比特流选用预定的纠错等级进行纠错运算,使得形成的码图不需要格式信息区域,因此与传统二维码相比少了一个容易受伤害的部件,提高了码图的可靠性。
在解码时图像到数据的转换以宏模块为单位(与PDF417相同),而不是以单元模块为单位,识别精度要高于现有任何矩阵式二维码(这是因为在数字图像中当单元模块的形状与方形相差很大时宏模块仍然能够保持较好的方形特征)。
由于码图由深色宏模块与浅色宏模块交替排列,所以图形中不会出现大面积的同种颜色模块,从而省去了在其他二维码中采用的模块掩模(masking)技术。因为码图中深浅模块的分布均匀,热敏打印机(条码的最典型输出设备)在输出图形时,能保证打印头的发热单元工作在冷热均匀交替的状态,从而输出的图像精度有最好的保证。
本发明包括如下附图
图1是PDF417码结构示意图;图2是QR码结构示意图;图3是本发明的二维条码码图;图4是本发明的二维条码码图中白边框宏模块和黑边框宏模块示意图;图5是本发明的二维条码码图中宏模块结构的实施例;图6是本发明的二维条码码图中宏模块排列方式示意图;图7是本发明的二维条码编码流程图;图8是利用本发明解码方法获得的二值图像示意图;图9是利用本发明解码方法对二值图像进行边界检测获得的边界图像示意图;图10是在边界检测后运用霍夫算法获得的直线效果图;图11是解直线方程求得每个宏模块的四角坐标的示意图;图12是本发明的码图在宏模块的四角可能具有的特殊图形模式;图13是用于确定阀值的直方图。
具体实施例方式
被编码的信息是一串二进制数,可以被看成比特流,该比特流被按照某一定长度分割成若干个位数相等的数据码词,再运用Reed-Solomon编码算法生成纠错码词(纠错码词在码图解码还原数据时起到纠正错误的作用),纠错码词被加入数据码词中,形成新的比特流,再一起被编码成为二维条码。
如图3所示是本发明的二维条码码图,码图为矩形,由同样为矩形的多个宏模块组成,如图中的宏模块501和宏模块502。每个宏模块再由Num*Num(Num为自然数,且Num>3)个单元模块按照矩形排列组成,每个单元模块的形状也为矩形,每个单元模块可以是两种颜色中的一种深色或者浅色,因此每个单元模块存储一个比特的信息(深色为1,浅色为0;或者相反)。一个码词(包括数据码词与纠错码词)对应于码图中的一个宏模块。
本发明的二维条码码图由两种宏模块在横向与纵向两个方向交替排列组成,它们分别是白边框宏模块与黑边框宏模块。如图4所示是本发明的二维条码码图中白边框宏模块和黑边框宏模块的结构示意图,可见每个宏模块由单元模块100组成,包括边框部分200、码词存储部分以及簇号部分。宏模块的最外围一圈单元模块是其边框部分200,即边框单元模块200位于宏模块的最外层;每个宏模块可有一个或者多个簇号模块,簇号模块可位于除边框模块之外的任何位置。
下面通过一个具体实施例对本发明的二维条码中的宏模块作进一步说明。如图5所示是本发明的二维条码码图中宏模块结构的实施例,可见其每行具有6个单元模块100,总数为36个单元模块;其最外围一圈的边框模块200共有20个,边框模块以内有数据模块400共计14个,簇号模块300共计2个。如图6所示是本发明的二维条码码图中宏模块排列方式示意图,图中深色模块为黑边框模块,浅色模块为白边框模块,宏模块的排列顺序由图中的序号表示,这也是码词存储的顺序(从中心向外按顺时针螺旋式排列);码图的每一边的宏模块个数为Mnum(Mnum为大于1的奇数),则该码图共有Mnum*Mnum个宏模块。将码图中的宏模块从中心向外分层,1号模块为第一层,2至9号宏模块组成第二层,10至25号宏模块组成第3层,依此类推。图6所示的码图共有3层宏模块。处于同一层的宏模块具有相同的簇号。
定义第一层宏模块为第0簇,第二层宏模块为第1簇,第三层宏模块为第3簇,依此类推。宏模块中的簇号模块300用来存储该簇号,如果簇号超出簇号模块的存储范围则按簇号模块能编码的总数进行取模运算。例如每个宏模块中有两个簇号模块,则从第一层起簇号分别为0,1,2,3,0,1,2,3,......
如图7所示是本发明的二维条码编码流程图,首先将原始数据转换成具有特定二进制比特长度的信息数据码词;然后对应用Reed-Solomon编码算法,生成纠错码词并附加在信息数据码词之后;再根据数据码词和纠错码词的数量确定码图尺寸;在内存中生成码图的主框架,包括宏模块的边框和每一个宏模块的簇号模块;从码图中心开始按顺时针螺旋方向将数据码词和纠错码词填充到码图中,从而生成码像文件,编码结束。
解码流程与编码流程相反,在解码之前先获取宏模块的大小,即每个宏模块所包括的单元模块数及其对应的码词的比特数;同时获取每个宏模块中簇号单元模块的位置和单元模块数(对一个具体的实施例来讲这些参数是事先约定好的),解码包括如下步骤1.使用数码相机通过照相方式获取码图的灰阶图像,这种图像信号在存储器中的存在形式可以是包括了每一个象素的灰度值的象素矩阵,这种灰阶图像也可以直接在显示器上显示出来;2.对灰度图像中不同象素的灰度值的分布进行统计,例如进行直方图统计;如附图13为灰阶分布直方图,图中可见明显的双峰,其中左侧的峰值101代表浅色象素的数量,右侧的峰值103代表深色象素的数量,两个峰值之间的灰度值102用作二值化的阀值。
3.根据不同象素的灰度值的分布确定阀值,将码图的灰阶图像转化成二值图像;确定阀值的方法可以是直方图双峰法,也可以是其它方法;如图8所示是利用本发明解码方法获得的二值图像,所有象素的值在图中表现为深色和浅色两种;4.对上述二值图像进行边界检测,对每一个浅色像素,如果与它最临近的上下左右四个像素只要有一个深色像素则该像素被标记为边界像素。反之,也可以对每一个深色像素,如果与它最临近的上下左右四个像素只要有一个浅色像素则该像素被表标记为边界像素。如图9所示是一种码图的边界图像;5.检测上述边界图像中的直线(包括连续的或者不连续的),获得直线方程组。因为码图中具有交替排列的白边框宏模块和黑边框宏模块,所以检测出的直线切割出宏模块的分界线。如图10所示就是运用霍夫算法(Hough Transform)在上述边界图像中检测出直线后的图像;6.解上述直线方程组求得每个宏模块的四角坐标,如图11所示;7.根据宏模块的四角坐标和已知的单元模块的尺寸运用插值算法计算宏模块内每个单元模块的中心坐标,根据单元模块的中心坐标从二值图像中读取该单元模块存储的比特值(0或者1);该单元模块存储的比特值也可以由其中心坐标周围的象素值的统计值决定;于是经过上述步骤获得了对应于被解码码图的数据码词矩阵;(包括数据码词与纠错码词,每个码词含有簇号信息,纠错前需要去掉簇号信息)8.被解码的码图的方向在照像时可能产生一定的旋转角度,所以在解码时还要判断码图的正确方向A、对上述数据码词矩阵分别从四个不同的方向、按照已知的簇号模块的位置和单元取得每一个宏模块的可能的簇号;B、对每一个方向的可能簇号组合中的簇号分布分别进行计算后打分,即对每一个宏模块累加两个簇号差的绝对值,这两个绝对值分别是当前宏模块簇号与它相邻右边、和相邻下边宏模块簇号差的绝对值(即分别计算每个宏模块簇号与它相邻右边、和相邻下边宏模块簇号差的绝对值,并将所得的绝对值累加;)C、对四个方向分别计分,得分最少的方向为码图的正确方向;从统计的角度分析,正确方向的每个宏模块得分平均为1分,而错误方向每个宏模块得分平均为3分(0+1+2+3)/4*2=3。
9.根据对称关系对上述数据码词矩阵确定对应码图的中心宏模块的数据码词;如果具有多种可能,例如具有5*5个宏模块的码图在数据码词矩阵中缺少一行数据码词,则其中心宏模块即有两种可能,此时应该针对每一个可能的中心宏模块统计簇号分布,选出准确的中心宏模块。例如,累加候选中心数据码词的外围第一层数据码词的簇号,并且每作一次累加,就在累加之和中减1;然后再累加候选中心数据码词的外围第二层数据码词的簇号,并且每作一次累加,就在累加之和中减2;依此类推,按层分别累加候选中心数据码词的外围全部数据码词的簇号,并且每作一次累加,就在累加之和中减去其位置所代表的正确簇号值;比较针对不同中心宏模块的得分,具有最高得分的确定为正确的中心;以上面的计算结果为依据,根据正确的中心宏模块和方向读取数据码词,对码词运用Reed-Solomon纠错算法纠正码词中可能存在的错误,如果纠错成功输出数据码词,将数据码词恢复成字节数据,解码结束。
在上述步骤2和3中将灰阶图像二值化时,还可以将灰阶图像分割成不重叠或者部分重叠的几部分,针对各个分别统计灰阶值的分布确定阀值并二值化,重叠部分的灰阶阀值可以去平均,然后再将二值化的各部分组合在一起。
本发明的二维条码的码图采用白边框宏模块与黑编框宏模块交叉排列,从而在不同宏模块拼接处、也即在宏模块的四角形成了特殊的图形模式,如图12所示是本发明的码图边界以内宏模块的四角具有的特殊图形模式,图中的灰色区域不属于模板内容,模板内容只包括深色和浅色区域。模板匹配的目的是为了发现图像中指定区域是否存在与模板相同/相近的图案。通过模板匹配算法可以快速可靠的同时检测出并且定位每一个宏模块,这种方法可以用来代替上述解码步骤中的第5和6步,对码图中的每个宏模块定位并计算出其四角坐标,从而码图的抗破损、抗污染、抗形变能力得到了有力保证。这是由于在码图中白边框宏模块与黑编框宏模块交叉排列,使得每个宏模块与它周围的其它宏模块之间有明显的边界,这样对二值图像进行边界检测后宏模块的边框处形成显著特征的直线,从而可以快速确定码图的旋转角度和定位宏模块。
模板匹配算法包括以下步骤首先确定模板的大小,模板越小计算量也小,但是出现错误匹配结果的可能性也大,模板大计算量大,匹配结果出错的可能性小。典型实施例中采用32个pixel乘32个pixel的模板,模板中黑/白先条的宽度为4个pixel。
模板检测在二值图像中进行运算量要小。为了能在旋转过的码图中有效匹配模板,需要将模板旋转与码图相同的角度匹配模板时将模板“放置”到待检测图像,统计模板与图像重叠区域相同像素的个数,如果检测区域存在与模板相同形状的特征则统计值大(接近模板的总像素个数)或则很小(接近零,待检测域区域模板完全反色),否则统计值处于中间值(例如纯黑或则纯白的区域统计值只有模板总像素的一半)。模板在待检测图像中移动,直到搜索出全部匹配区域。
由于图像中两种特征互为反色,所以一轮模板匹配可以同时检测这两种特征(统计值为最大或则最小)。
在每个宏模块中都包括簇号单元模块,由于每一个码词对应于一个宏模块,所以全部码词被分成簇,由中心向外顺时针方向按层排列,同一层码词的簇号相同,簇号到最大后又回到0,这种排列方式能够可靠的指导解码算法定位码图的方向以及确定起始制码词。
由于在码图中白边框宏模块与黑编框宏模块交叉排列,使得码图的深色模块与浅色模块的分布保持均匀,避免了码图识别时的漏斗效应,减小了码词出错的可能。
在编码运算中对已经划分了码词的比特流选用预定的纠错等级进行纠错运算,使得形成的码图格式信息简单,因此与传统二维码相比少了一个容易受伤害的部件,提高了码图的可靠性。
在编解码流程中码像到数据的相互转换以宏模块为单位(与PDF417相同),而不是以单元模块为单位,识别精度要高于现有任何矩阵式二维码。
因为在码图中每个宏模块可以被独立定位,所以一旦图形有破损或者被污染的部分都能够被定位出来,与现有的矩阵式二维码相比识别算法能够有效的探测到擦除错误的存在,从而能提高纠错性能。这是因为在码词流中,未知位置的错误称为替代错误,已知位置的错误称为擦除错误,对RS纠错算法而言擦除错误的纠错性能是替代错误的纠错性能的两倍。
权利要求
1.一种二维条码,具有矩形码图,所述码图包括在表面上无间隙排列的,具有不同光学特征的矩形单元模块;其特征在于,所述码图中的单元模块分割成多个矩形的宏模块,所述宏模块包括Num×Num个单元模块,其中Num为大于3的自然数,每个宏模块包括存储具有固定数据长度的数据码词的单元模块和存储代表该宏模块在码图中的位置的簇号的单元模块。
2.根据权利要求1所述的二维条码,其特征在于,所述宏模块包括最外围一周全部为深色单元模块的黑边框宏模块和最外围一周全部为浅色单元模块的白边框宏模块,所述数据码词和簇号存放于边框以内的单元模块之中,所述黑边框宏模块和白边框宏模块在码图中交替排列。
3.根据权利要求2所述的二维条码,其特征在于,所述码图包括Mnum×Mnum个所述宏模块,其中Mnum是大于1的奇数;所述码图中心的所述宏模块的簇号为0,由所述码图的中心往边界的所述宏模块的簇号按层顺序增加。
4.根据权利要求3所述的二维条码,其特征在于,不同的所述宏模块中存放所述簇号信息的簇号单元模块的位置和数量相同,所述簇号单元模块中存放的值是该宏模块位于码图中的层数对所述簇号单元模块的最大存储值进行取模运算所获得的数值。
5.一种二维条码的编码方法,通过计算机将二进制数据流编制成码图,其特征在于,包括如下步骤A、首先将所述二进制数据流分割成具有特定比特长度的信息数据码词;B、然后对所述信息数据码词应用纠错算法进行运算,生成纠错码词;C、在内存中生成码图的主框架,包括每一个宏模块的边框和存储的数据表示该宏模块在所述码图中所处的位置的簇号模块;D、从码图中心开始按顺时针螺旋方向将数据码词和纠错码词填充到码图中,从而生成码像文件。
6.根据权利要求5所述的二维条码的编码方法,其特征在于,在所述步骤A中先确定所述宏模块的每行所包括的单元模块的数量Num,然后确定所述簇号模块的数量为Num10,计算所述信息数据码词的特定比特长度Num20为Num×Num-(Num-1)×4-Num10;在所述步骤C中首先计算所述信息数据码词和纠错码词的数量之和,该和小于或者等于所述码图中所包括的宏模块的数(Mnum×Mnum),Mnum是大于1的奇数。
7.根据权利要求6所述的二维条码的编码方法,其特征在于,在所述步骤C中生成的所述宏模块的边框全部为深色单元模块,或者全部为浅色模块,这两种边框的宏模块在码图中交替排列,所述数据码词和簇号存放于边框以内的单元模块之中。
8.根据权利要求7所述的二维条码的编码方法,其特征在于,所述码图中心的所述宏模块的簇号为0,由所述码图的中心往边界的所述宏模块的簇号按层顺序增加。
9.根据权利要求5所述的二维条码的编码方法,其特征在于,在所述步骤C中所述簇号单元模块中存放的值是该宏模块位于码图中位置相对于中心宏模块的层数对所述簇号单元模块的最大存储值进行取模运算所获得的数值。
10.一种二维条码的解码方法,通过数字照相机和计算机将码图还原成二进制数据流,其特征在于,包括如下步骤I.通过照相方式获取码图的、包括每一个象素的灰度值的象素矩阵的灰阶数字图像;II.对灰阶数字图像中不同象素的灰度值的分布进行统计,根据所述统计值选择阀值将灰阶图像转化成二值图像;III.检测上述二值图像中的每一个浅色像素,如果与它最临近的上下左右四个像素中有一个或者一个以上深色像素则该像素被标记为边界像素,获得边界图像;检测所述边界图像中的直线获得直线方程并且解所述直线方程求得每个宏模块的四角坐标;IV.根据每个宏模块的四角坐标插值计算宏模块内每个单元模块的坐标;V.对应所述单元模块的坐标到所述二值图像的数字信号中读取该单元模块存储的0或者1的比特值获得码词矩阵;VI.通过下述步骤判断码词矩阵的方向A、对上述数据矩阵分别从四个不同的方向、按照已知的簇号模块的位置和单元取得每一个宏模块的每一个可能的簇号;B、分别对每一个方向,分别计算每个宏模块的可能簇号与它相邻右边、和相邻下边宏模块的相应可能簇号的差的绝对值,并将所得的绝对值累加作为该方向的得分;C、比较四个方向的得分,得分最少的方向为码图的正确方向;VII.按照码词矩阵的对称关系确定中心码词;VIII.按照所述正确方向和中心码词,从中心码词开始按照顺时针方向将所述数据码词矩阵恢复为数据码词序列。
11.根据权利要求10所述的二维条码的解码方法,其特征在于,在所述步骤VIII中,还对所述数据码词系列运用Reed-Solomon纠错算法纠正数据码词中存在的错误。
12.根据权利要求11所述的二维条码的解码方法,其特征在于,在所述步骤VII中,当对应于码图中心宏模块的数据码词具有多种可能时,针对每一个候选的中心宏模块按层分别累加其外围全部数据码词的簇号,并且每作一次累加,就在累加之和中减去其位置所相对于候选中心宏模块的正确簇号值;比较针对不同中心宏模块的得分,具有最高得分的确定为正确的中心。
13.根据权利要求12所述的二维条码的解码方法,其特征在于,所述步骤II是,将灰阶图像分割成不重叠或者部分重叠的区域,针对各个区域分别统计灰阶值的分布确定二值化阀值并二值化,重叠区域用区域自身的阀值以及与它相邻区域的阀值的加权平均作为该区域的二值化阀值并二值化,然后再将二值化的各部分组合成对应于码图的二值化图像。
14.根据权利要求13所述的二维条码的解码方法,其特征在于,在所述步骤III中获得边界图像后,以黑边框宏模块和白边框宏模块交替排列时的对角处具有的两种特殊图形模式为模板,通过匹配计算检测出每个宏模块的四角坐标,然后直接进入第IV步。
15.根据权利要求14所述的二维条码的解码方法,其特征在于,在所述步骤III中获得边界图像的步骤是检测所述二值图像中的每一个深色像素,如果与它最临近的上下左右四个像素中有一个或者一个以上浅色像素则该像素被标记为边界像素。
全文摘要
本发明克服现有二维条码的特征模式区域与格式信息比较集中、易于被破坏、抗变形能力差的缺点,提出一种二维条码以及将数据编码生成该二维条码的码图和从该码图解码还原数据的方法。这种条码具有矩形码图,所述码图由不同光学特征的矩形单元模块在平面上无间隙排列而成;单元模块分割成存储固定数据长度的数据码词的矩形的、在码图中交替排列的黑边框宏模块和白边框宏模块。宏模块中还存放代表该宏模块在所述码图中的位置的簇号信息。编码方法的步骤包括分割二进制数据流、进行纠错运算、生成簇号模块和码图。解码方法包括对码图照相并二值化、检测边界、求得宏模块的四角坐标、读取比特值、判断码词矩阵的方向、确定中心码词等。
文档编号G06K19/06GK1670763SQ20041002205
公开日2005年9月21日 申请日期2004年3月15日 优先权日2004年3月15日
发明者常治国, 王鹏, 吕迎丰, 张斧, 丁晓云 申请人:深圳矽感科技有限公司