一种数据存储和读取方法及系统的制作方法

文档序号:6443372阅读:478来源:国知局
专利名称:一种数据存储和读取方法及系统的制作方法
技术领域
本发明涉及一种数据存储方法,以及数据读取方法及系统,适用于印刷出版领域。
背景技术
二维底码是一种暗纹码,它是一种实现跨媒体链接的一项技术,其作为底码被印刷到印刷品上,从而将印刷品制作成有声读物的载体。读取时,系统将暗纹码转换成多媒体。现有的二维底码的编码方案主要有松翰的Sonix码、凌阳的Sunplus码和天朗时代公司的MI3R码。松翰Sonix码(参见专利号为US7M9597B2的美国专利文献)的编码方案为单位码图由方形点阵组成,定位点由码图左侧竖排点和上侧横排点组成;数据点为除定位点以外的点,数值由其所处数据单元四个象限或八个象限中的位置决定。松翰码的缺点是定位点比较多,浪费了不少数据空间,减少了数据容量,识别数据点所在数据单元象限对识别设备精度的要求较高,增加了成本。凌阳Sunplus码方案1 (参见专利号为US7770805B2的美国专利文献)的编码方案为单位码图由3X3矩阵区域组成,每个矩阵区域中是3X3点阵,定位点在矩阵区域的中心区域,由“L”型点阵确定,其它矩阵区域的中心点也为定位点;数据点为除定位点以外的点,一个矩阵区域内有且只能有一个数据点。凌阳Sunplus码方案2 (参见专利号为 CN1722160A的中国专利文献)的编码方案为单位码图由从里向外的3层环形点阵组成, 定位点由码图最里层6个点组成;数据点由外面两层点组成,数值由数据单元中有无点来确定。凌阳码的缺点是码图分布不均勻,有明显纹理,降低了印刷品本身的可读性。天朗时代MI3R码(参见专利号为200610156879的中国专利文献)的编码方案为 单位码图由方形点阵组成,定位点在码图的四个角上,点直径是数据点直径的两倍;数据点为除定位点以外的点,数值由数据单元中是否有点来确定。Mra码的缺点是定位点和数据点大小不一致,且码图分布不均勻,有明显纹理,降低了印刷品本身的可读性。

发明内容
针对现有技术中存在的缺陷,本发明所要解决的技术问题是提供一种存储容量大的将数据存储到码图中的方法,以及识别准确率和效率率高的读取码图中存储的数据的方法及系统。一种将数据存储到码图中的方法,所述码图由若干单位码图组成,所述单位码图由nXn个数据单元阵列组成,每个单位码图的“L”型角部的数据单元中分别存储一个定位点,其他数据单元中分别存储两个数据点;每个数据单元中的两个数据点的距离小于数据单元之间任意两个点之间的距离,所述定位点和数据点的重心在数据单元的中心位置,通过两个数据点之间的位置关系存储数据。如上所述的将数据存储到码图中的方法,优选的,所述η = 5。
如上所述的将数据存储到码图中的方法,优选的,所述定位点分别存储在所述单位码图左上角的三个数据单元中。一种读取上述码图中数据的方法,包括以下步骤(1)对所述码图进行二值化处理,获得二值码图;(2)计算所述二值码图中数据单元的重心点,通过所述重心点找到定位点,校正二值码图;(3)根据所述定位点分割出单位码图;(4)分析每个单位码图的每个数据单元,获取数据。如上所述的方法,优选的,在对所述码图进行二值化处理之前,还包括去除所述码图背景噪声的步骤。如上所述的方法,优选的,步骤O)中所述计算二值码图中数据单元的重心点的方法包括以下步骤①对二值码图进行膨胀操作,将每个数据单元的两个数据点连通成一个连通区域,得到膨胀码图;②去除膨胀码图和二值码图边界附近不完整的点;③计算膨胀码图中每一个连通区域的重心点。如上所述的方法,优选的,步骤O)中所述通过重心点找到定位点的方法如下统计在以重心点所在像素点为中心点的3X3邻域内黑色像素点个数,如果不小于7个像素点为黑色时,则该重心点对应的为定位点。如上所述的方法,优选的,步骤O)中所述校正二值码图的方法包括以下步骤①计算所有定位点之间的距离,将距离小于距离阈值distThrel的点为为一个组,所述距离阈值distThrel大于单位码图定位点之间的距离,小于码图之间定位点之间的距离;②通过每一组三个点位点之间的距离判断主定位点和两个辅定位点,并计算两个辅助定位点的中心,三个定位点之间的距离中最大距离对应的点为两个辅助定位点,另外一个为主定位点;③判断4个主定位点的顺序,形成一个四边形;④判断4个辅助中心点是否在4个主定位点形成的四边形内部,在内部的辅助中心点对应的主定位点为单位码图起始点;⑤将四个码图起始点的坐标归一化,根据透视变换方程u = --1-f-
c6x + c7x+ 1
¢^2 ^ I C4 ^ I C5v =-Γ"
c6x + c7x+ 1计算出透视系数(Ctl C7),其中(X,y)为映射后的坐标,(u,ν)为主定位点归一化后坐标;⑥通过所述透视变换方程校正二值码图。如上所述的方法,优选的,步骤③中所述判断4个主定位点的顺序的方法如下以任意一个主定位点为四边形起始点,假设为Α,计算除起始点以外的三个主定位点与起始点连线之间的夹角;夹角绝对值最大的两个点为起始点的顺时针点或逆时针点; 将起始点视为坐标原点,计算这两个点的反正切值,用其中一个值,设为B,减去另一个值, 设为D ;当差值为正时,B为顺时针点,否则D为顺时针点。如上所述的方法,优选的,步骤④中判断4个辅助中心点是否在4个主定位点形成的四边形内部的方法如下以每个辅助中心点向X轴正方向做射线,分别统计每条射线与四边形边界交点的个数,当交点为奇数时,该射线对应的辅助中心点为四边形内部点,否则为四边形外部点。如上所述的方法,优选的,步骤中,根据所述连通区域的方向读取数据。一种读取上述码图中数据的系统,包括用于对所述码图进行二值化处理,获得二值码图的二值化装置;用于校正二值码图的校正装置;用于分割出单位码图的分割装置; 用于分析每个单位码图的每个数据单元,获取数据的获取装置。如上所述的系统,优选的,还包括用于去除码图背景噪声的去除装置。如上所述的系统,优选的,所述校正装置包括用于对二值码图进行膨胀操作,将每个数据单元的两个数据点连通成一个连通区域,得到膨胀码图的膨胀单元;用于去除膨胀码图和二值码图边界附近不完整点的去除单元;用于计算膨胀码图中每一个连通区域重心点的计算单元;用于根据重心点寻找定位点的寻找单元;用于根据定位点校正二值码图,去除透视畸变的校正单元。本发明所述方法及系统,码图整体铺码非常均勻,不会产生明显视觉纹理效果。而且因为数据点可以辅助定位点进行定位,因此所需定位点很少,增加了数据存储容量。数据单元内的两个点之间的距离相对于单元之间任意两个点间的距离来说要小得多,所以很容易定位数据单元,数据单元内两个点的4种布局方式很容易辨别,因此整体识别的准确率和效率较高。


图1是实施方式1中单位码图的示意图;图2是实施方式1中两个数据点的布局方式示意图;图3是实施方式2中数据读取系统的结构框图;图4是实施方式3中数据读取方法的流程图;图fe是实施方式3中带有背景噪声的原始码图示意图,图恥是去除背景噪声后的二值码图示意图;图6是实施方式3中校正二值码图的流程图;图7是实施方式3中膨胀后二值码图的示意图;图是实施方式3中膨胀码图去除边界附近不完整点后的图像示意图,图8b是二值码图去除边界附近不完整点后的图像示意图;图9是实施方式3中将定位点重心和数据单元的重心标记在图8b所示二值图像上的效果示意图10是实施方式3中去除透视畸变后的二值码图示意图;图11是实施方式3中找到定位点后的二值码图示意图;图12是实施方式3中根据定位点定位一个单位码图的示意图;图13是实施方式3中分割出的一个单位码图示意图;图14a是实施方式3中图12第1行第3列的数据方向示意图,图14b是第2行第 2列的数据方向示意图,图14c是第3行第4列的数据方向示意图,图14d是第4行第5列的数据方向示意图;图15是具体实施方式
中一组码图的效果示意图;图16是具体实施方式
中文字加底码的码图效果示意。
具体实施例方式下面结合附图对本发明的具体实施方式
进行详细描述。实施方式1本实施方式记载了一种将数据存储到码图中的方法。所述码图由若干单位码图组成,所述单位码图由nXn个数据单元阵列组成。每个单位码图的“L”型角部的数据单元中分别存储一个定位点,其他数据单元中分别存储两个数据点;每个数据单元中的两个数据点的距离小于数据单元之间任意两个点之间的距离,所述定位点和数据点的重心在数据单元的中心位置,通过两个数据点之间的位置关系存储数据。η的取值可根据实际应用情况确定,本实施方式中,η = 5。如图1所示,图1是由5X5个数据单元12阵列组成的单位码图11。其中,单位码图11左上角呈“L”型的3数据单元12中分别存储一个定位点13,其他数据单元12中分别存储两个数据点14。定位点13位于数据单元12的中心位置,两个数据点14的重心位于数据单元12的中心位置。如图2所示,可以通过一个数据单元12中两个数据点14的布局方式来表示数据。 例如,两个数据点14水平排列,表示两位二进制数值00 ;竖直排列,表示01 ;左倾45度,表示10 ;右倾45度,表示11。由图1和图2可以看出图1所示单位码图11由22个用于存储数据点的数据单元 12组成,每个数据单元12可以存储2bit 二进制数值,因此该单位码图11可以存储22X2 =44bit 二进制数值,约17. 6万亿数据。实施方式2本实施方式记载了一种采用实施方式1所述方法存储数据的码图的读取系统。如图3所示,该系统包括去除装置30、二值化装置31、校正装置32、分割装置33和获取装置 ;34,其中校正装置32包括膨胀单元321、去除单元322、计算单元323、寻找单元3 和校正单元325。去除装置30用于去除码图的背景噪声。二值化装置31用于对码图进行二值化处理,获得二值码图。校正装置32用于校正二值码图。其中,膨胀单元321用于对二值码图进行膨胀操作,将每个数据单元的两个数据点连通成一个连通区域,得到膨胀码图;去除单元322用于去除膨胀码图和二值码图边界附近的不完整点;计算单元323用于计算膨胀码图中每一个连通区域的重心点;寻找单元3M用于根据重心点寻找定位点;校正单元325用于根据重心点校正二值码图,去除透视畸变。分割装置33用于根据定位点分割出单位码图。获取装置34用于分析每个单位码图的每个数据单元,获取数据。实施方式3本实施方式记载了采用实施方式2所述系统读取采用实施方式1所述方法存储数据的码图的方法。如图4所示,包括以下步骤(1)去除装置30去除码图中的背景噪声。去除图像中背景噪声的方法可以采用现有方法中的中值滤波、高斯滤波以及均值滤波等,本实施方式中采用中值滤波方法。(2) 二值化装置31对去除了背景噪声的码图进行二值化处理,获得二值码图。如图5所示,图fe为带有背景噪声的原始码图,图恥是去除背景噪声后的二值码图。(3)校正装置32校正二值码图。如图6所示,具体包括以下步骤①膨胀单元321对二值码图进行膨胀操作,将每个数据单元的两个数据点连通成一个连通区域,得到膨胀码图,如图7所示。膨胀算法是数学形态学的一种方法。应用于膨胀算法的结构元素可以自由定义, 本实施方式采用的是半径为6个像素点的圆形结构元素。②去除单元322去除膨胀码图和二值码图边界附近不完整的点,即去除不完整的定位点和数据单元。膨胀码图去除边界附近不完整点后的图像如图8a所示,二值码图去除边界附近不完整点后的图像如图8b所示。③计算单元323计算膨胀码图中每一个连通区域的重心点。将定位点重心和数据单元的重心标记在图8b所示二值图像上的效果如图9所示。④寻找单元3 根据重心点,找出定位点。定位点的重心落在定位点上,数据单元的重心基本上是落在空白区域上,因此只要分析重心点3X3邻域内的平均灰度,便可以找出所有的定位点。具体方法为统计在以重心点所在像素点为中心点的3X3邻域内黑色像素点个数,至少有7个像素点为黑色时, 才认为该重心点对应的为定位点。这样一共找出12个定位点。找到定位点后的码图如图 10所示。⑤校正单元325校正二值码图,去除透视畸变。去除透视畸变的具体方法包括以下步骤a.计算所有定位点之间的距离,通过距离阈值distThreK大于单位码图定位点之间的距离,小于码图之间定位点之间的距离)将定位点分组从而得到4组定位点。所有距离小于diStThrel的点为一个组。b.通过每一组三个点位点之间的距离判断主定位点(标准单位码图的左上角点) 和两个辅定位点,并计算两个辅助定位点的中心。具体方法是三个定位点之间的距离中最大距离对应的点为两个辅助定位点,另外一个为主定位点。c.判断4个主定位点的顺序(顺时针),形成一个四边形。具体判定方法是以任意一个主定位点为四边形起始点(假设为A),计算除起始点以外的三个主定位点与起始点连线之间的夹角。夹角绝对值最大的两个点为起始点的顺时针点或逆时针点。将起始点视为坐标原点,来计算这两个点的反正切值(范围在-η到η之间),用其中一个值(假设为 B)减去另一个值(假设为D),则当差值为正时,B为顺时针点,否则D为顺时针点。这样四边形的顺时针四个点就完全确定下来了,假设B点为顺时针点,则四边形为ABCD。d.判断4个辅助中心点是否在4个主定位点形成的四边形内部。在内部的辅助中心点对应的主定位点为码图起始点。具体判定方法是以每个辅助中心点向X轴正方向做射线,分别统计每条射线与四边形边界交点的个数,当交点为奇数时,该射线对应的辅助中心点为四边形内部点,否则为四边形外部点。这样就能找到唯一的一个内部点,该点对应的主定位点即为码图起始点(假设为A')。根据ABCD顶点顺序能唯一确定码图顶点的顺时针顺序A' B' C' D'(当A'对应A时,码图顺序为AB⑶;当A'对应B时,码图顺序为 BCDA ;当A ‘对应C时,码图顺序为⑶AB ;当A ‘对应D时,码图顺序为DABC)。e.将 A'、B'、C'、D'四个点的映射坐标设定为(100,100)、(300,100)、(100, 300)和(300,300)。根据透视变换方程u =-Γ
c6x + c7x+ 1v =-——1τ-
c6x + c7x+ 1可以计算出透视系数(Ctl C7),其中(X,y)为映射后的坐标,(u,ν)为主定位点坐标。通过上面透视方程就可以将透视图校正为如图11所示。(4)分割装置33根据所述定位点分割出单位码图。如果只用每个码图的三个定位点来定位码图显然精度达不到要求,但是码图是密铺于整个版面的(无旋转和尺度变化),所以可以通过不同的几个码图的定位点来定位一个单位码图的具体位置,从而将单位码图从整张码图上分割出来。如图12所示,通过四组不同位置的定位点便可以确定一个单位码图的具体位置。分割出的一个单位码图如图13 所示。(5)获取装置34分析每个单位码图的每个数据单元,获取码图中存储的数据。将单位码图平均切分成5X5的子块,将每个数据单元分割开来。每个数据单元膨胀后两个数据点的连通域具有明显的方向性,通过简单的BLOB方法分析出连通域的4个方向趋势即可。例如,如图14所示,图12中第1行第3列的数据方向为50. 1度(datal_3),第2 行第2列的数据方向为88. 9度(data2_2),第3行第4列的数据方向为_51. 0度(data3_4), 如第4行第5列的数据方向为-2. 6度(data4_5)。根据图2中的定义很容易得到这四组数据分别表示lib、01b、IOb和00b。按照上述方法可以获取每一个数据单元表示的数值,从而完成整个码图中数据的读取。采用上述方法将数据存储到码图中,能够保证整体码图比较均勻,不会产生明显纹理。因为数据单元中的点的距离相对于单元之间的距离来说比较小,从数据单元的尺度上来看,数据单元中的两个点可以视为一个点,所以无论数据单元中的点以哪种方式布局, 码图排列都是均勻的。例如,图15出示了一组码图的示意效果,文字加底码的码图效果如图16所示。由图15和16可以看出,码图整体比较均勻。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其同等技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种将数据存储到码图中的方法,所述码图由若干单位码图组成,所述单位码图由 nXn个数据单元阵列组成,其特征在于每个单位码图的“L”型角部的数据单元中分别存储一个定位点,其他数据单元中分别存储两个数据点;每个数据单元中的两个数据点的距离小于数据单元之间任意两个点之间的距离,所述定位点和数据点的重心在数据单元的中心位置,通过两个数据点之间的位置关系存储数据。
2.如权利要求1所述的将数据存储到码图中的方法,其特征在于所述η= 5。
3.如权利要求1或2所述的将数据存储到码图中的方法,其特征在于所述定位点分别存储在所述单位码图左上角的三个数据单元中。
4.一种读取权利要求1所述码图中数据的方法,其特征在于,包括以下步骤(1)对所述码图进行二值化处理,获得二值码图;(2)计算所述二值码图中数据单元的重心点,通过所述重心点找到定位点,校正二值码图;(3)根据所述定位点分割出单位码图;(4)分析每个单位码图的每个数据单元,获取数据。
5.如权利要求4所述的方法,其特征在于所述方法在对所述码图进行二值化处理之前,还包括去除所述码图背景噪声的步骤。
6.如权利要求5所述的方法,其特征在于步骤O)中所述计算二值码图中数据单元的重心点的方法包括以下步骤①对二值码图进行膨胀操作,将每个数据单元的两个数据点连通成一个连通区域,得到膨胀码图;②去除膨胀码图和二值码图边界附近不完整的点;③计算膨胀码图中每一个连通区域的重心点。
7.如权利要求5所述的方法,其特征在于步骤O)中所述通过重心点找到定位点的方法如下统计在以重心点所在像素点为中心点的3X3邻域内黑色像素点个数,如果不小于7个像素点为黑色时,则该重心点对应的为定位点。
8.如权利要求5所述的方法,其特征在于步骤O)中所述校正二值码图的方法包括以下步骤①计算所有定位点之间的距离,将距离小于距离阈值distThrel的点为为一个组,所述距离阈值distThrel大于单位码图定位点之间的距离,小于码图之间定位点之间的距 1 ;②通过每一组三个点位点之间的距离判断主定位点和两个辅定位点,并计算两个辅助定位点的中心,三个定位点之间的距离中最大距离对应的点为两个辅助定位点,另外一个为主定位点;③判断4个主定位点的顺序,形成一个四边形;④判断4个辅助中心点是否在4个主定位点形成的四边形内部,在内部的辅助中心点对应的主定位点为单位码图起始点;⑤将四个码图起始点的坐标归一化,根据透视变换方程
9.如权利要求8所述的方法,其特征在于步骤③中所述判断4个主定位点的顺序的方法如下以任意一个主定位点为四边形起始点,假设为A,计算除起始点以外的三个主定位点与起始点连线之间的夹角;夹角绝对值最大的两个点为起始点的顺时针点或逆时针点;将起始点视为坐标原点,计算这两个点的反正切值,用其中一个值,设为B,减去另一个值,设为 D ;当差值为正时,B为顺时针点,否则D为顺时针点。
10.如权利要求8所述的方法,其特征在于步骤④中判断4个辅助中心点是否在4个主定位点形成的四边形内部的方法如下以每个辅助中心点向X轴正方向做射线,分别统计每条射线与四边形边界交点的个数,当交点为奇数时,该射线对应的辅助中心点为四边形内部点,否则为四边形外部点。
11.如权利要求4 10中任一项所述的方法,其特征在于步骤(4)中,根据所述连通区域的方向读取数据。
12.—种读取权利要求1所述码图中数据的系统,其特征在于包括用于对所述码图进行二值化处理,获得二值码图的二值化装置(31);用于校正二值码图的校正装置(32);用于分割出单位码图的分割装置(33);用于分析每个单位码图的每个数据单元,获取数据的获取装置(34)。
13.如权利要求12所述的系统,其特征在于还包括用于去除码图背景噪声的去除装置(30)。
14.如权利要12所述的系统,其特征在于所述校正装置(32)包括用于对二值码图进行膨胀操作,将每个数据单元的两个数据点连通成一个连通区域,得到膨胀码图的膨胀单元(321);用于去除膨胀码图和二值码图边界附近不完整点的去除单元(322);用于计算膨胀码图中每一个连通区域重心点的计算单元(323);用于根据重心点寻找定位点的寻找单元(3M);用于根据定位点校正二值码图,去除透视畸变的校正单元(325)。
全文摘要
本发明涉及一种将数据存储到码图中的方法,所述码图由若干单位码图组成,所述单位码图由n×n个数据单元阵列组成,每个单位码图的“L”型角部的数据单元中分别存储一个定位点,其他数据单元中分别存储两个数据点;每个数据单元中的两个数据点的距离小于数据单元之间任意两个点之间的距离,所述定位点和数据点的重心在数据单元的中心位置,通过两个数据点之间的位置关系存储数据。本发明还涉及一种码图中的数据读取方法及系统。本发明码图整体铺码非常均匀,不会产生明显视觉纹理效果。而且所需定位点很少,增加了数据存储容量。数据单元很容易定位,数据单元内两个点的4种布局方式很容易辨别,因此整体识别的准确率和效率较高。
文档编号G06K19/06GK102567763SQ201110443250
公开日2012年7月11日 申请日期2011年12月27日 优先权日2011年12月27日
发明者唐志峰, 谢文涛 申请人:方正国际软件(北京)有限公司, 方正国际软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1