一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

铺码打印网关的制作方法

2023-06-15 12:05:58 来源:中国专利 TAG:


1.本发明涉及点码铺码技术领域,具体而言,涉及一种铺码打印网关。


背景技术:

2.为了能够利用点阵笔识别课本、试卷等内容载体上的笔迹,需要预先为内容载体覆盖一层点码阵列,点码阵列为由多个阵列式排列的点码所形成的图像,也可称为点码图像。一般需要教师等用户先准备好记录有内容的电子文件,该电子文件一般为pdf格式的;用户对该电子文件进行铺码,即为电子文件叠加一层点码阵列,形成电子版的铺码文件,该铺码文件一般也是pdf格式的。之后,用户打印该pdf格式的铺码文件,即可得到铺有点码阵列的课本、试卷等内容载体。当学生使用点阵笔在该内容载体上书写时,即可利用点码阵列提取出学生书写时的笔迹。
3.但在实际场景中,教师打印出的内容载体,容易出现点码识别不准确的问题,即不能准确确定笔迹的位置,甚至不能识别出点码的存在。


技术实现要素:

4.为解决上述问题,本发明实施例的目的在于提供一种铺码打印网关。
5.本发明实施例提供了一种铺码打印网关,包括:第一通信模块、铺码模块和第二通信模块;所述第一通信模块用于与用户终端相连,所述第二通信模块用于与打印机相连;所述第一通信模块用于获取所述用户终端传输的待铺码页面和铺码形式;所述铺码模块用于根据所述铺码形式确定所述待铺码页面相对应的点码阵列,并将所述待铺码页面与所述点码阵列进行叠加,生成铺码文件;所述第二通信模块用于将所述铺码文件发送至打印机,指示所述打印机打印所述铺码文件。
6.在一种可能的实现方式中,所述第一通信模块用于与多个所述用户终端相连。
7.在一种可能的实现方式中,铺码打印网关还包括:存储器;所述存储器中存储多个点码阵列;所述铺码模块确定与所述铺码形式相对应的点码阵列的过程包括:从所述存储器中选择与所述铺码形式相对应的点码阵列。
8.在一种可能的实现方式中,所述待铺码页面的数量为多个;所述铺码模块具体用于:按照多个所述待铺码页面的顺序,为每个所述待铺码页面分别设置按序排列的页面标识;根据所述铺码形式分别确定每个所述待铺码页面相对应的点码阵列,所述点码阵列中包含相应的页面标识;利用t个并行的铺码通道,将顺序靠前的t个未铺码的所述待铺码页面分别与相应的所述点码阵列进行叠加,形成与所述待铺码页面相对应的铺码页面;
按照多个所述待铺码页面的顺序,对相应的多个所述铺码页面进行排序,生成所述铺码文件。
9.在一种可能的实现方式中,所述铺码模块根据所述铺码形式确定所述待铺码页面相对应的点码阵列的过程,包括:确定符合所述铺码形式的多个主行号和多个主列号,多个所述主行号对应的尺寸不小于所述待铺码页面的高度,多个所述主列号所对应的尺寸不小于所述待铺码页面的宽度;确定每一行需要编码的行信息以及每一列需要编码的列信息,所述行信息包括主行号,所述列信息包括主列号;对所述行信息和所述列信息分别进行编码处理,生成包含所有所述行信息的第一比特矩阵和包含所有所述列信息的第二比特矩阵,所述第一比特矩阵与所述第二比特矩阵的行列数相同;将所述第一比特矩阵和所述第二比特矩阵组合为第三比特矩阵;所述第三比特矩阵中的元素是二维的,且包括所述第一比特矩阵中同一位置的元素以及所述第二比特矩阵中同一位置的元素;以及将所述第三比特矩阵中每个元素转换为相应的点码,生成点码阵列;其中,所述编码处理包括:将目标信息分为a个目标序列,且所述目标序列的位数也为a;沿第一方向依次设置多个德布鲁因序列,相邻两个所述德布鲁因序列之间的移位值与所述目标序列相对应,且所述多个德布鲁因序列与所有所述目标信息的目标序列相对应;每个所述德布鲁因序列均是由同一个德布鲁因基准序列移位得到的,所述德布鲁因基准序列的长度不小于2a;以复制的方式,对每个所述德布鲁因序列均沿第二方向进行扩展,扩展后的德布鲁因序列能够在所述第二方向上覆盖所述待铺码页面;以及将多个所述扩展后的德布鲁因序列所对应的矩阵作为包含所有所述目标信息的比特矩阵;其中,所述目标信息为所述行信息、所述第一方向为列方向、所述第二方向为行方向;或者,所述目标信息为所述列信息、所述第一方向为行方向、所述第二方向为列方向。
10.在一种可能的实现方式中,对所述行信息和所述列信息进行编码时,采用同一个德布鲁因基准序列。
11.在一种可能的实现方式中,所述确定每一行需要编码的行信息以及每一列需要编码的列信息,包括:确定所述待铺码页面的页面标识,并将页面标识分为第一部分和第二部分;将所述第一部分与每一行的所述主行号组合得到相应的行信息,将所述第二部分与每一列的所述主列号组合得到相应的列信息。
12.在一种可能的实现方式中,所述点码相对于网格线交点的不同偏移方位对应不同值。
13.在一种可能的实现方式中,位于所述网格线交点上方的点码、右方的点码、下方的点码、左方的点码,所表示的值按照00、01、10、11的顺序循环排列,或者按照00、10、01、11的
顺序循环排列。
14.在一种可能的实现方式中,所述将所述第三比特矩阵中每个元素转换为相应的点码,包括:为每一主行号增加一行定界点码,为每一主列号增加一列定界点码;所述定界点码位于网格线交点。
15.本发明实施例提供的方案中,铺码打印网关设置在用户终端与打印机之间,用户终端不需要生成铺码文件,只需要将原始的待铺码文件以及所需的铺码形式发送至铺码打印网关即可,由铺码打印网关进行铺码,并向打印机发送打印铺码文件的指令。该过程只需要用户终端能够正确识别待铺码文件即可,即用户终端可以使用浏览器、wps等多种pdf阅读器;在用户终端使用不同pdf阅读器的情况下,也可统一打印流程,降低用户使用门槛。
16.为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
17.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1示出了本发明实施例所提供的铺码打印网关的一种结构示意图;图2示出了本发明实施例所提供的铺码打印网关的另一种结构示意图;图3示出了本发明实施例所提供的生成德布鲁因序列的一种示意图;图4示出了本发明实施例所提供的对应不同值的点码的示意图;图5示出了本发明实施例所提供的对相邻两个德布鲁因序列进行解码的示意图;图6示出了本发明实施例所提供的书写图像中,点码阵列的一种排列示意图。
19.附图标记说明:10、第一通信模块;20、铺码模块;30、第二通信模块;40、存储器;100、用户终端;200、打印机;401、网格线;402、定界线;410、点码;420、定界点码
具体实施方式
20.经分析,发明人发现,造成内容载体点码不易识别问题的原因,主要是不同的用户会使用不同的pdf阅读器,而由于点码是微米级别的,其尺寸很小,只有部分pdf阅读器(且只有部分版本)能够支持打印点码,这就导致同样的铺码文件,使用不同的pdf阅读器时会存在打印效果参差不齐的问题;例如,当教师使用浏览器或wps打印pdf格式的铺码文件时,经常存在点阵笔无法识别的问题。
21.目前一般的解决方案是要求用户安装特定版本的、特定的pdf阅读器,例如adobe acrobat reader软件等。但该方案不仅需要所有的用户均安装特定的软件,费时费力,且因用户使用习惯等原因容易出现用户不配合的情况,不利于大规模使用。
22.本发明实施例提供一种铺码打印网关,利用该铺码打印网关实现能够打印出符合要求的内容载体,且内容载体中的点码清晰、可被识别。
23.参见图1所示,该铺码打印网关包括:第一通信模块10、铺码模块20和第二通信模块30;第一通信模块10用于与用户终端100相连,第二通信模块30用于与打印机200相连。
24.其中,第一通信模块10用于获取用户终端100传输的待铺码页面和铺码形式;铺码模块20用于根据铺码形式确定待铺码页面相对应的点码阵列,并将待铺码页面与点码阵列进行叠加,生成铺码文件;第二通信模块30用于将铺码文件发送至打印机200,指示打印机200打印铺码文件。
25.本发明实施例中,用户终端100为需要进行铺码的用户所使用的终端,例如,该用户终端100为教师使用的智能手机、电脑等。用户终端100通过第一通信模块10与该铺码打印网关之间建立通信,以能够向该铺码打印网关传输需要打印的数据,即待铺码页面和铺码形式。其中,铺码打印网关本质上为一个网关,其允许多个用户终端100接入,即第一通信模块10能够与多个用户终端100相连;如图2所示,第一通信模块10与三个用户终端100相连。在这种情况下,多个用户终端100可以共用同一个铺码打印网关。例如,该铺码打印网关与多个用户终端100处于同一个局域网,例如接入了同一个wifi,则这些用户终端100均可连接该铺码打印网关。
26.待铺码页面是需要进行铺码的页面,其可以为记录有内容的电子文件,该待铺码页面一般是pdf格式的。其中,用户可以根据实际需求选取待铺码页面。例如,教师需要打印铺有点码的课本或试卷等内容载体时,将该课本或试卷的电子文件作为待铺码页面,并将该待铺码页面传输至铺码打印网关。其中,用户终端100将待铺码页面传输至铺码打印网关的过程,与用户终端100只打印待铺码页面(即不存在点码阵列的页面)时的过程相似;即,用户终端100利用其安装的任意pdf阅读器(例如,浏览器、wps、adobe reader等),均可实现将该待铺码页面传输至铺码打印网关。
27.铺码形式为当前的铺码要求;例如,该铺码形式包括点码的开始值、点码的取值范围、是否区分不同页码等。其中,点码的开始值和点码的取值范围均能够表示铺码时点码的取值大小;例如,点码的取值范围为100001~1000256。是否区分不同页码指的是不同页码的点码阵列是否相同;当待铺码页面包含多个时,才需要确定是否区分不同页码;其中,可以通过设置页面标识实现区分不同的页码,后续详细介绍该页面标识。
28.铺码打印网关的铺码模块20分别与第一通信模块10、第二通信模块30相连,以接收或发送相应的数据。当第一通信模块10获取到用户终端100传输的待铺码页面和铺码形式之后,将该待铺码页面和铺码形式发送至铺码模块20,铺码模块20对该待铺码页面进行铺码,即可形成相应的铺码文件,进而将该铺码文件发送至第二通信模块30。第二通信模块30将该铺码文件发送至打印机200,打印机200对该铺码文件进行打印,即可生成所需的内容载体。其中,铺码模块20内置有符合点码阵列所需精度的pdf阅读器,可以将高精度的铺码文件传输至打印机200,使得打印机200打印出的内容载体包含清晰的点码阵列。其中,第二通信模块30与打印机200可通过网线连接。
29.本发明实施例提供的一种铺码打印网关,设置在用户终端100与打印机200之间,用户终端100不需要生成铺码文件,只需要将原始的待铺码文件以及所需的铺码形式发送至铺码打印网关即可,由铺码打印网关进行铺码,并向打印机200发送打印铺码文件的指令。该过程只需要用户终端100能够正确识别待铺码文件即可,即用户终端100可以使用浏览器、wps等多种pdf阅读器;在用户终端100使用不同pdf阅读器的情况下,也可统一打印流
程,降低用户使用门槛。
30.本发明实施例中,铺码打印网关在接收到待铺码页面和铺码形式,可以即时生成点码阵列。或者,可选地,参见图2所示,该铺码打印网关还包括:存储器40;该存储器40与铺码模块20相连,且存储器40中存储多个点码阵列。
31.并且,铺码模块20确定与铺码形式相对应的点码阵列的过程包括:从存储器40中选择与铺码形式相对应的点码阵列。
32.本发明实施例中,由于生成点码阵列的过程需要占用一定的时间,若铺码模块20获取到用户终端100传输的铺码形式后再生成点码阵列,则需要花费较多的时间生成铺码文件;本发明实施例在存储器40中预存多个点码阵列,铺码模块20获取到铺码形式后,可以直接从中选取出相对应的点码阵列,处理速度更快,可以提高打印速度,减少用户的等待时间。
33.可选地,待铺码页面的数量可以为多个。例如,用户终端100向铺码打印网关传输包含多个待铺码页面的待铺码文件;例如,该待铺码文件可以为多张页码的课本、试卷等,每张页码对应一个待铺码页面。
34.为了能够区分不同的待铺码页面,铺码模块20生成铺码文件的过程具体包括以下步骤a1至步骤a4。
35.步骤a1:按照多个待铺码页面的顺序,为每个待铺码页面分别设置按序排列的页面标识。
36.步骤a2:根据铺码形式分别确定每个待铺码页面相对应的点码阵列,点码阵列中包含相应的页面标识。
37.本发明实施例中,由于实际场景下需要对多个不同的待铺码页面进行铺码,为了能够区分不同的待铺码页面,为每个待铺码页面设置唯一的页面标识,且最终编码得到的点码阵列中,还包含待铺码页面的页面标识。其中,页面标识是待铺码页面的唯一标识,用于区分不同的待铺码页面;例如,可以按照递增的方式,为每个待铺码页面赋予一个唯一的页面标识。例如,第一个待铺码页面的页面标识为1,第二个待铺码页面的页面标识为2,以此类推。
38.步骤a3:利用t个并行的铺码通道,将顺序靠前的t个未铺码的待铺码页面分别与相应的点码阵列进行叠加,形成与待铺码页面相对应的铺码页面。
39.步骤a4:按照多个待铺码页面的顺序,对相应的多个铺码页面进行排序,生成铺码文件。
40.本发明实施例提供的铺码打印网关包括多个铺码通道,每个铺码通道均可实现铺码;并且,多个铺码通道是并行的,即可并行铺码。其中,本发明实施例按照待铺码页面的顺序,优先对顺序靠前的待铺码页面进行铺码,从而实现依次对所有的待铺码页面进行铺码。具体地,如上述步骤a3所示,将顺序靠前的t个待铺码页面分别输入至相应的铺码通道,利用t个铺码通道对这t个待铺码页面进行并行铺码;铺码结束后,在对之后的t个待铺码页面进行铺码,直至对所有待铺码页面均进行了铺码。在铺码结束后,每个待铺码页面均对应有一个已经铺码的页面,即已经存在点码阵列的页面,本发明实施例将该页面称为铺码页面;将所有的铺码页面按序排列,即可生成包含多个铺码页面的文件,即铺码文件。打印机打印该铺码文件,即可生成包含多页码的内容载体。
41.本发明实施例利用多个铺码通道,可以实现对多个待铺码页面进行并行铺码,铺码速度快,效率高,可以进一步提高打印速度。
42.可选地,铺码模块20根据铺码形式确定待铺码页面相对应的点码阵列的过程,包括以下步骤b1至步骤b5。
43.步骤b1:确定符合铺码形式的多个主行号和多个主列号,多个主行号对应的尺寸不小于待铺码页面的高度,多个主列号所对应的尺寸不小于待铺码页面的宽度。
44.本发明实施例中,点码阵列是具有一定尺寸范围的阵列,将该点码阵列所对应的尺寸范围分为多行和多列,从而可以得到多个阵列时排列的编码单元,每个编码单元对应有唯一的行号和列号。基于该行号和列号即可确定编码单元在整个范围中的位置。其中,由于本发明实施例后续会对编码单元的行、列进行进一步划分,故将此时划分出的行号称为“主行号”,将此时划分出的列号称为“主列号”。
45.并且,为了能够实现对待铺码页面进行铺码,需要该点码阵列能够覆盖整个待铺码页面,即多个主行号对应的尺寸不小于待铺码页面的高度,多个主列号所对应的尺寸不小于待铺码页面的宽度。
46.例如,可以每隔1.8mm划分出一行或一列。即,在垂直方向上,每隔1.8mm将待铺码页面划分出一行,并设置相应的主行号y,该主行号y的取值范围与待铺码页面的高度有关;若主行号y为正数,则其取值范围为[0, y
max
],其中y
max
不小于待铺码页面的高度/1.8mm后所确定的整数。由于待铺码页面的尺寸与实际纸张的尺寸相对应,待铺码页面的高度不会太高,在实际使用中,主行号y的最大值y
max
一般可小于255,在这种情况下,以8位(bit)的数据即可表示主行号y;例如,主行号y的取值范围为[0,255]。划分出多个主列号x的过程与上述相似,此处不做赘述;类似地,主列号x一般也可以用8位的数据表示。
[0047]
本领域技术人员可以理解,可以在接收到用户终端100所发送的铺码形式之后,再确定与该铺码形式相对应的主行号、主列号,此时可以根据待铺码页面的高度、宽度即时确定主行号、主列号的取值范围,例如,主行号的最大值y
max
等于待铺码页面的高度/1.8mm后所确定的整数。或者,也可以对多种铺码形式进行预处理,即预先确定每种铺码形式对应的主行号、主列号,预先生成相应的点码阵列,该预先生成的点码阵列可以存储在存储器40中;此时,主行号、主列号的取值范围具体可以为[0,255],在铺码时只需要使用该点码阵列的一部分即可。
[0048]
为方便描述,后续以m表示主行号y的数量,n表示主列号x的数量,即将待铺码页面分为m行和n列。例如,主行号y的取值范围可以为[0, m-1],主列号x的取值范围可以为[0, n-1]。
[0049]
步骤b2:确定每一行需要编码的行信息以及每一列需要编码的列信息,行信息包括主行号,列信息包括主列号。
[0050]
本发明实施例中,分别确定每一行需要编码的信息,即行信息,故共需要确定m个行信息;并且,每个行信息包括相应的主行号y;该行信息可以只包括主行号y,也可以进一步包括其他信息。类似地,分别确定每一列需要编码的信息,即列信息,故共需要确定n个列信息;并且,每个列信息包括相应的主列号x;该列信息可以只包括主列号x,也可以进一步包括其他信息。
[0051]
步骤b3:对行信息和列信息分别进行编码处理,生成包含所有行信息的第一比特
矩阵和包含所有列信息的第二比特矩阵,第一比特矩阵与第二比特矩阵的行列数相同。
[0052]
本发明实施例中,每个行信息、列信息均包含相应的数据,通过对行信息、列信息进行编码处理,可以得到相应的比特矩阵,即第一比特矩阵和第二比特矩阵。其中,本发明实施例基于德布鲁因(de bruijn)序列进行编码处理,上述步骤b3中的“编码处理”具体可以包括以下步骤b31至步骤b34。
[0053]
步骤b31:将目标信息分为a个目标序列,且目标序列的位数也为a。
[0054]
为方便描述,以目标信息指代行信息或列信息,可以理解,该目标信息是多位(bit)的数据,其为多比特的比特序列。本发明实施例中,基于目标信息的位数(即比特数),将该目标信息分为a个位数为a的目标序列;所有的目标序列应该能够完整地表示目标信息,故目标信息的位数应该小于或等于a
×
a;若目标信息的位数不等于a
×
a,可以对目标信息进行补位。例如,目标信息为8位的数据,即其位数为8,此时可以将目标信息分为3个目标序列,且目标序列的位数为3,即a=3;并且,其中一个目标序列中存在补充的1位数据,所补充的数据可以为0。
[0055]
以目标信息为行信息为例,可以将主行号为y的行信息分为位数均为a的a个目标序列s
y,1
, s
y,2
.., s
y,i
,..., s
y,a
,s
y,i
即表示从主行号为y所对应的行信息中所分出的第i个目标序列,i=1,2,

,a;并且,每个目标序列s
y,i
的位数均为a。当目标信息为列信息时,也采用相同的处理方式,此处不做赘述。一般情况下,行信息和列信息的位数相同,故,行信息、列信息所对应的a可以相同。
[0056]
步骤b32:沿第一方向依次设置多个德布鲁因序列,相邻两个德布鲁因序列之间的移位值与目标序列相对应,且多个德布鲁因序列与所有目标信息的目标序列相对应;每个德布鲁因序列均是由同一个德布鲁因基准序列移位得到的,该德布鲁因基准序列的长度不小于2a。
[0057]
本发明实施例中,基于德布鲁因序列进行编码。首先,需要基于步骤b31中的a确定德布鲁因序列的长度;其中,由于本发明实施例提供的编码方法为二进制的编码方法,为能够表示所有的目标序列,德布鲁因序列的长度不小于2a;为简化编码,一般选取最短的德布鲁因序列,即德布鲁因序列的长度为2a。并且,同一长度下,一般会存在多个不同的德布鲁因序列,本发明实施例选择其中一个德布鲁因序列作为基准序列,即德布鲁因基准序列。例如,若a=3,即德布鲁因序列的长度为8,该德布鲁因序列可以为00010111或00011101,选择其中一个作为德布鲁因基准序列即可。
[0058]
基于德布鲁因序列的性质可知,德布鲁因序列为循环序列,对德布鲁因序列进行循环移位,循环移位后的序列仍然是德布鲁因序列,且与循环移位前的德布鲁因序列本质上相同,但循环移位前后可以形成相应的移位值(即循环移位值);对于长度为2a的德布鲁因序列,共可形成2a个移位值;而对于位数为a的目标序列,其也共有2a个值,故本发明实施例中以德布鲁因序列的移位值表示目标序列。具体地,相邻两个德布鲁因序列之间的移位值与目标序列相对应,例如,该移位值与目标序列的值相等。
[0059]
例如,a=3,且德布鲁因基准序列为00010111;若二进制形式表示的目标序列为010,即目标序列的值为2,若其中一个德布鲁因序列为该德布鲁因基准序列,即其为00010111,则可在该德布鲁因序列的基础上循环右移两位,得到另一个德布鲁因序列11000101,两个德布鲁因序列之间的移位值即为2,以该移位值即可表示该目标序列010。
[0060]
并且,将目标信息分为a个目标序列后,沿第一方向依次设置所有的目标序列,相应地,也需要沿第一方向依次设置多个德布鲁因序列。在目标信息为行信息的情况下,该第一方向为列方向;在目标信息为列信息的情况下,该第一方向为行方向。以目标信息为行信息为例,所有的目标序列沿列方向设置,相应地,所有的德布鲁因序列也沿列方向设置。
[0061]
以目标信息为行信息为例,将主行号为y的行信息分为a个目标序列s
y,1
, s
y,2
.., s
y,i
,..., s
y,a
,对于最边缘的目标序列,可以为其设置两个德布鲁因序列,或者,由于存在确定的德布鲁因基准序列,也可为其设置一个德布鲁因序列,该德布鲁因序列与该德布鲁因基准序列之间的移位值表示该最边缘的目标序列。例如,主行号y为0的第一个目标序列s
0,1
,其为最边缘的目标序列,可以在德布鲁因基准序列的基础上循环移位s
0,1
,将该循环移位后得到的德布鲁因序列作为目标序列s
0,1
所对应的德布鲁因序列;之后,在目标序列s
0,1
所对应的德布鲁因序列的基础上,循环移位s
0,2
,即可得到目标序列s
0,2
所对应的德布鲁因序列,以此类推。在得到目标序列s
0,a
所对应的德布鲁因序列之后,可以在其基础上循环移位s
1,1
,得到下一个主行(即主行号y为1)的目标序列s
1,1
所对应的德布鲁因序列,直至确定所有行信息的所有目标序列所对应的德布鲁因序列。虽然为最边缘的目标序列设置一个德布鲁因序列时,直接解码得到最边缘的目标序列比较困难,但由于最边缘的目标序列位于待铺码页面的边缘,该位置处一般不存在需要采集的笔迹,即一般不需要解码得到最边缘的目标序列。
[0062]
例如,参见图3所示,某一条行信息为aabbbccc,其中的a、b、c只是用于指代该行信息中的位,并无实际含义。此时,a=3,对该行信息最高位补零后,分为三个目标序列0aa、bbb、ccc;并且,沿列方向对这些目标序列进行排列,图3中以x方向表示行方向,以y方向表示列方向。在确定目标序列后,即可生成相应的德布鲁因序列;如图3所示,以德布鲁因基准序列为初始的序列,生成德布鲁因序列1,且德布鲁因序列1与德布鲁因基准序列之间的移位值为目标序列0aa;类似地,德布鲁因序列2与德布鲁因序列1之间的移位值为目标序列bbb,德布鲁因序列3与德布鲁因序列2之间的移位值为目标序列ccc。
[0063]
本发明实施例中,所有目标信息也是沿第一方向排列的,通过步骤b32,可以将所有的目标信息转换为沿第一方向依次排列设置的多个德布鲁因序列。例如,若目标信息为行信息,且共有m个行信息,则可分出m=m
×
a个目标序列,并需要设置m个长度为的2a的德布鲁因序列,此时,所有的德布鲁因序列可以当作是一个大小为m
×2a
的矩阵,该矩阵中的每个元素为一位的二进制,即为0或1。类似地,若目标信息为列信息,且共有n个列信息,则可分出n=n
×
a个目标序列,并需要设置n个长度为的2a的德布鲁因序列,此时,所有的德布鲁因序列可以当作是一个大小为2a×
n的矩阵,该矩阵中的每个元素也是一位的二进制,即为0或1。
[0064]
其中,对行信息和列信息分别进行编码时,可以采用同一个德布鲁因基准序列,也可以采用不同的德布鲁因基准序列,本发明实施例对此不做限定。其中,为了保证能够形成方形的编码单元,在对行信息和列信息进行编码时,所使用的德布鲁因基准序列的长度是相同的,例如长度均为2a;一般情况下,对行信息和列信息进行编码时,采用同一个德布鲁因基准序列。
[0065]
步骤b33:以复制的方式,对每个德布鲁因序列均沿第二方向进行扩展,扩展后的德布鲁因序列能够在第二方向上覆盖待铺码页面。
[0066]
本发明实施例中,由于德布鲁因序列本身的长度有限,为了能够覆盖整个待铺码页面,还需要对德布鲁因序列进行扩展。具体地,长度为2a的德布鲁因序列,通过复制其本身,可以扩展为更长的序列,且扩展后的序列中任意连续的2a位数据,均仍然是德布鲁因序列;对德布鲁因序列进行扩展,可以使得扩展后的德布鲁因序列不小于待铺码页面的尺寸。例如,若某德布鲁因序列为00010111,则可将其复制并扩展为00010111 00010111 00010111
……
扩展后的德布鲁因序列的长度只要能够在第二方向上覆盖待铺码页面即可。
[0067]
本发明实施例中,德布鲁因序列均沿第二方向进行扩展,从而能够在第二方向上覆盖待铺码页面。在目标信息为行信息的情况下,扩展后的德布鲁因序列能够在列方向上覆盖待铺码页面,例如,扩展后的德布鲁因序列与主列号的取值范围相对应;在目标信息为列信息的情况下,扩展后的德布鲁因序列能够在行方向上覆盖待铺码页面,例如,扩展后的德布鲁因序列与主行号的取值范围相对应。
[0068]
例如,若目标信息为行信息,且主列号的数量为n,则可将德布鲁因序列沿行方向扩展至a
×
n位;若目标信息为列信息,且主行号的数量为m,则可将德布鲁因序列沿列方向扩展至a
×
m位。
[0069]
在目标信息为行信息的情况下,该第二方向为行方向;在目标信息为列信息的情况下,该第二方向为列方向。换句话说,步骤b3中的编码处理的过程能够适用于两种情况:一种情况是,目标信息为行信息、第一方向为列方向、第二方向为行方向;另一种情况是,目标信息为列信息、第一方向为行方向、第二方向为列方向。
[0070]
步骤b34:将多个扩展后的德布鲁因序列所对应的矩阵作为包含所有目标信息的比特矩阵。
[0071]
本发明实施例中,上述步骤b32所生成的所有德布鲁因序列,其包含所有的目标信息,且也可当作是一个矩阵,但该矩阵不能覆盖整个待铺码页面;多个扩展后的德布鲁因序列所对应的矩阵,不仅包含所有的目标信息,还能够覆盖整个待铺码页面。由于该矩阵中每个元素均是一位(bit,即比特)的二进制数,即每个元素均为0或1,故将该矩阵称为比特矩阵。
[0072]
如上所述,若目标信息为行信息,且共有m个行信息,则所有的德布鲁因序列可以当作是一个大小为m
×2a
的矩阵,即m行、2a列的矩阵;若目标信息为列信息,且共有n个列信息,则所有的德布鲁因序列可以当作是一个大小为2a×
n的矩阵,即2a行、n列的矩阵。对该m
×2a
的矩阵沿行方向(即第二方向)进行复制扩展,则可从2a行扩展至n=a
×
n行,扩展后的德布鲁因序列所对应的矩阵即为m
×
n的矩阵,即第一比特矩阵为m
×
n的矩阵;类似地,对2a×
n的矩阵沿列方向(即第二方向)进行复制扩展,则可从2a列扩展至m=a
×
m列,扩展后的德布鲁因序列所对应的矩阵也是m
×
n的矩阵,即第二比特矩阵也是m
×
n的矩阵。第一比特矩阵与第二比特矩阵的行列数相同,即第一比特矩阵与第二比特矩阵的行数相同,且二者的列数也相同。其中,m可以等于n,也可以不等于n,具体基于实际情况而定。
[0073]
步骤b4:将第一比特矩阵和第二比特矩阵组合为第三比特矩阵;第三比特矩阵中的元素是二维的,且包括第一比特矩阵中同一位置的元素以及第二比特矩阵中同一位置的元素。
[0074]
本发明实施例中,第一比特矩阵和第二比特矩阵中每个元素均是1比特的数据,将同一位置处的两个元素组合在一起,可以得到一个二维的元素,所有的二维元素即可形成
新的比特矩阵,即第三比特矩阵;其中,可以直接以两位(bit)的数据表示该二维的元素。例如,第一比特矩阵为a,其第i行第j列的元素为a
ij
,第二比特矩阵为b,其第i行第j列的元素为b
ij
,第三比特矩阵为c,其第i行第j列的元素为c
ij
,i=1,2,

,m,j=1,2,

,n。该元素c
ij
即为元素a
ij
与元素b
ij
的组合,例如,c
ij
=(a
ij
,b
ij
);由于元素a
ij
与元素b
ij
均为1比特的数据,二者为0或1,故二维的元素c
ij
共四种状态,每种状态对应一个值,分别为:00,01,10,11。
[0075]
步骤b5:将第三比特矩阵中每个元素转换为相应的点码,生成点码阵列。
[0076]
本发明实施例中,第三比特矩阵包含所有行信息和所有列信息,且可以覆盖整个待铺码页面,将该第三比特矩阵中每个元素均转换为相应的点码,即可生成相应的点码阵列。如上所述,第三比特矩阵中的元素c
ij
共四种状态,所有的点码也共分为四类,每一类对应一种状态,使得通过对该点码阵列进行解码,可以还原得到该第三比特矩阵。
[0077]
由于该第三比特矩阵是利用德布鲁因序列得到的,且相邻两个德布鲁因序列的移位值表示实际的目标序列,基于德布鲁因序列的性质可知,在需要对点码阵列进行解码时,只需要采集到相邻两个德布鲁因序列中的a位连续序列,即可确定两个德布鲁因序列的移位值。这种编码方式具有较强的抗干扰性。
[0078]
本发明实施例中,在需要对待铺码页面进行铺码时,将基于上述步骤b1至步骤b5所生成的点码阵列叠加至该待铺码页面上,即可形成相应的铺码文件。之后,打印机200打印该铺码文件,即可得到具有该点码阵列的内容载体;学生等使用点阵笔在该内容载体上书写时,点阵笔笔头部位的摄像头可以采集到该内容载体的一部分,形成相应的书写图像,该书写图像包括笔尖,以及笔尖附近的点码等,通过对该书写图像中的点码进行解码,即可提取出点码中包含的信息,从而确定笔尖的位置。下面详细解释对书写图像中点码的解码过程,以说明该编码方式具有较强的抗干扰性。
[0079]
本发明实施例中,对书写图像中点码的解码过程包括以下步骤c1至步骤c3。
[0080]
步骤c1:对书写图像中的点码进行解码,得到书写图像对应的第三子比特矩阵,该第三子比特矩阵中的元素是二维的。
[0081]
本发明实施中,在某个时刻,点阵笔的摄像头只能采集到内容载体的一部分,相应地,该书写图像包含内容载体中的部分点码。如上所述,内容载体中的点码是基于第三比特矩阵中的元素c
ij
转换得到的,每个元素c
ij
均是二维的;对该书写图像中的点码进行解码,也可以得到一个矩阵,且该矩阵中的元素也是二维的,但由于书写图像只能采集到整个内容载体的一部分,故解码得到的矩阵也只是第三比特矩阵的一部分,本发明实施例将解码得到的矩阵称为“第三子比特矩阵”。
[0082]
其中,可以采用现有方式提取出点码中所直接包含的数据,即第三子比特矩阵。
[0083]
例如,由于在铺码时一般需要借助网格线,故可以将点码设置在网格线交点不同的偏移方位上,点码相对于网格线交点的不同偏移方位对应不同值。例如,参见图4所示,横竖两条网格线401可以形成交点,点码410位于该交点的不同偏移方位,可以表示不同的值;如图4所示,点码410可以位于网格线交点的上方、右方、下方、左方,从而分别表示00,01,10,11中不同的值。
[0084]
若采用图4所示的方式进行编码,则在解码时,可以根据书写图像中点码410的间距,确定出网格线401的位置;进而根据点码410偏离网格线401的程度,确定出点码410所表示的值。在确定书写图像中每个点码410的值之后,即可得到第三子比特矩阵,书写图像中
的每个点码410,对应第三子比特矩阵中的一个二维元素。
[0085]
步骤c2:将第三子比特矩阵拆分为用于表示行信息的第一子比特矩阵和用于表示列信息的第二子比特矩阵。
[0086]
与上述步骤b4的过程相反,在得到第三子比特矩阵后,将其每个二维的元素拆分为两个一维的元素,拆分后的每个元素均是一位的数据。例如,若编码时,第三比特矩阵中元素c
ij
的高位为第一比特矩阵中的数据,元素c
ij
的低位为第二比特矩阵中的数据,则对该第三子比特矩阵进行拆分时,可以提取出所有元素的高位,形成能够表示行信息的矩阵,即第一子比特矩阵,并且提取出所有元素的低位,形成能够表示列信息的矩阵,即第二子比特矩阵。可以理解,第一子比特矩阵为第一比特矩阵的一部分,第二子比特矩阵为第二比特矩阵的一部分。
[0087]
步骤c3:对第一子比特矩阵和第二子比特矩阵分别进行解码处理,确定笔尖所在位置对应的主行号和主列号。
[0088]
如上所述,第一比特矩阵中的每一行均为德布鲁因序列,第二比特矩阵中的每一列均为德布鲁因序列,故第一子比特矩阵中的每一行也均为德布鲁因序列,第二子比特矩阵中的每一列也均为德布鲁因序列。虽然第一子比特矩阵、第二子比特矩阵中德布鲁因序列并不一定是完整的,但由于在编码时,以相邻两个德布鲁因序列的移位值表示实际的数据,即目标序列,而基于德布鲁因序列的特性可知,在德布鲁因序列不完整的情况下,也可以确定两个德布鲁因序列之间的移位值,从而实现对第一子比特矩阵和第二子比特矩阵的解码。
[0089]
其中,步骤c3中的解码过程,与上述步骤b31至步骤b34所示的编码过程相反。下面主要解释对第一子比特矩阵进行解码处理的过程,对第二子比特矩阵进行解码处理的过程与此相似,此处不做详述。
[0090]
在对第一子比特矩阵进行解码时,将其分为沿列方向排列的多个目标子序列,即多个目标子序列之间是沿列方向排列的。由于第一子比特矩阵的每一行均为德布鲁因序列,故每个目标子序列均是德布鲁因序列,或者德布鲁因序列的一部分。多个目标子序列是沿列方向排列的,在该列方向上,存在两两相邻的目标子序列。
[0091]
由于在内容载体中,点码与待铺码页面中的内容可能存在重叠等原因,导致在书写图像中存在很多干扰,难以准确提取出书写图像范围内的所有点码,导致解码失败。本发明实施例中,所提取出的第三子比特矩阵中,部分元素是缺失的,这也导致部分或全部的目标子序列中,部分数据是缺失的,但在相邻两个目标子序列包含未错位的a位连续序列的情况下,仍然可以解码得到相应的移位值。
[0092]
对于长度为2a的德布鲁因序列,其包括所有长度为a的子序列,且这些子序列以固定的顺序、不重复地出现在该德布鲁因序列中;若德布鲁因序列发生循环移位,则这些子序列的位置也会发生相应的移位。因此,对于两个存在循环移位的德布鲁因序列,若其长度为2a,则这两个德布鲁因序列中,位置对应的任意的a位连续序列,均可以表示这两个德布鲁因序列之间的移位值。
[0093]
以a=3,且德布鲁因基准序列为00010111为例,该德布鲁因基准序列包括所有长度为3的子序列,即000,001,010,101,011,111,110,100。若另一个德布鲁因序列是在该德布鲁因基准序列的基础上循环左移两位得到的,即该德布鲁因序列为01011100;则,在序列
00010111与序列01011100之间,位置对应的3位连续序列,其可表示两个序列之间的移位值。图5示出了这两个8位的德布鲁因序列,对于其中的第2位至第4位,一个3位的连续序列为001,另一个3位的连续序列为101,这两个连续序列分别位于德布鲁因基准序列所表示的8个子序列(即000,001,010,101,011,111,110,100)中的第2个、第4个,故可以确定两个德布鲁因序列之间循环左移两位。类似地,对于其中的第4位至第6位,一个3位的连续序列为101,另一个3位的连续序列为111,这两个连续序列分别位于德布鲁因基准序列所表示的8个子序列(即000,001,010,101,011,111,110,100)中的第4个、第6个,故同样可以确定两个德布鲁因序列之间循环左移两位。其他3位的连续序列与此相似,此处不做赘述。
[0094]
对于从书写图像中提取出的目标子序列,若相邻的两个目标子序列均包括b位连续序列(b≥a),且这两个b位连续序列未错位,即这两个b位连续序列位置对应,则也可利用每个b位连续序列在德布鲁因基准序列中的位置,确定这两个b位连续序列之间的移位值,该移位值也是这两个目标子序列之间的移位值。一般情况下,取b=a即可,b越大,越能够保证解码结果的准确性。
[0095]
因此,只要第一子比特矩阵中,相邻两个目标子序列包含未错位的b位连续序列,则可以解码得到相应的移位值,该移位值即为编码时的一个目标序列;通过多个不同的目标子序列,即可解码得到多个目标序列,进而确定相应的目标信息,即行信息。
[0096]
对第一子比特矩阵和第二子比特矩阵分别进行上述的解码处理,即可确定相对应的行信息和列信息,即可以确定主行号和主列号。由于书写图像中可以包含多个编码单元,即包含多个主行号、主列号,可以只确定笔尖处的主行号、主列号。或者,由于主行号、主列号具有规律性,基于周围附近的主行号等,也可以确定笔尖的主行号。
[0097]
本发明实施例提供的点码阵列,以沿行方向排列的德布鲁因序列表示行信息、以沿列方向排列的德布鲁因序列表示列信息,且相邻两个德布鲁因序列之间的移位值与目标序列相对应;在对该点码阵列中的部分点码进行解码时,利用相邻两个德布鲁因序列中任意足够长的连续序列(即a位的连续序列),即可解码得到相应的移位值,从而还原得到相应的行信息和列信息。该点码阵列具有较强的抗干扰能力,只要采集的书写图像中有一小块无干扰区域,即可解码出一部分信息,并利用多块无干扰区域,即可拼接出完整的行信息和列信息。
[0098]
可选地,铺码模块20所执行的步骤b2“确定每一行需要编码的行信息以及每一列需要编码的列信息”,具体可以包括以下步骤b21至步骤b22。
[0099]
步骤b21:确定待铺码页面的页面标识,并将页面标识分为第一部分和第二部分。
[0100]
步骤b21:将第一部分与每一行的主行号组合得到相应的行信息,将第二部分与每一列的主列号组合得到相应的列信息。
[0101]
本发明实施例中,可以为待铺码页面设置唯一的页面标识,以能够区分不同的待铺码页面。例如,可以基于上述步骤a1设置待铺码页面的页面标识。
[0102]
并且,为了能够充分利用行信息和列信息,本发明实施例将页面标识分为两部分,即将页面标识分为第一部分和第二部分,并将第一部分作为行信息中的一部分数据,将第二部分作为列信息中的一部分数据。以该行信息和列信息编码得到的点码阵列,其包含待铺码页面的页面标识,从而可以利用点码直接区分不同的待铺码页面。
[0103]
一般情况下,第一部分和第二部分的位数是相同的,以使得行信息和列信息的位
数相同。例如,页面标识可以为32位的数据,从其中分出的第一部分、第二部分均是16位的;例如,第一部分是16位的高位部分,第二部分是16位的低位部分。若行信息和列信息均为8位的数据,则包含主行号和第一部分的行信息为24位的数据,包含主列号和第二部分的列信息也为24位的数据。此时,行信息和列信息可被分为5个5位的目标序列,故德布鲁因基准序列的长度不小于25=32,例如,德布鲁因基准序列的长度为32。
[0104]
可选地,上述步骤b5“将第三比特矩阵中每个元素转换为相应的点码”具体可以包括:为每一主行号增加一行定界点码,为每一主列号增加一列定界点码;定界点码位于网格线交点。
[0105]
本发明实施例中,除了将第三比特矩阵中每个元素c
ij
转换为相应的点码之外,还增加用于实现定位的定界点码;并且,每个主行号对应一行定界点码,每个主列号对应一列定界点码。为了能够与包含元素c
ij
的点码予以区分,该定界点码位于网格线交点,即定界点码不存在偏移。本发明实施例中,定界点码位于网格线交点处,即一排或一列定界点码的间距相等,故可以确定哪些点码是定界点码,进而生成包含行信息和列信息的第三子比特矩阵。
[0106]
以德布鲁因基准序列的长度为32为例,即a=5,每个行信息分为5行目标序列,每个列信息分为5列目标序列,即每个主行号、每个主列号均对应5行或5列的点码;在增加一行、一列定界点码后,每个主行号对应6行的点码,每个主列号对应6列的点码。如上所述,待铺码页面可以被分为多个编码单元,每个编码单元对应一个主行号和一个主列号,若每个主行号、主列号对应的长度为1.8mm,则任意两行或两列点码之间的间距为0.3mm。其中,5行、5列的点码用于表示元素c
ij
,剩下的1行、1列用于设置定界点码。
[0107]
例如,行信息和列信息中均包含页面标识中的一部分,行信息和列信息均被分为5个5位的目标序列,即a=5,且德布鲁因基准序列的长度为32;编码时还额外设置定界点码,故每个主行号对应6行的点码,每个主列号对应6列的点码。本发明实施例中,书写图像中点码的排列可参见图6所示,即该书写图像包含四个编码单元,共有12行、12列点码。若笔尖在右下角的编码单元中,则确定该右下角的编码单元对应的主行号、主列号即可。图6中以第3行、第9行、第3列、第9列设置定界点码420为例示出。本发明实施例中,将设置定界点码420的网格线称为定界线402,可以理解,该定界线402也是网格线,在实际铺码过程中,网格线只是起到辅助定位作用,所生成的点码阵列中并不存在网格线。
[0108]
以确定主行号为例,若页面编码的第一部分位于行信息的高位、主行号位于行信息的低位,且第一部分为16位、主行号为8位。若从上向下依次设置所有行信息的目标序列,则在图6中,第1、2、4行或者第7、8、10行均能够表示第一部分中的部分数据,且是相同的,例如,第1行、第2行之间的移位值,与第7行、第8行之间的移位值相同。并且,第5行、第6行之间的移位值,表示图6中左上、右上两个编码单元的主行号,第11行、第12行之间的移位值,表示图6中左下、右下两个编码单元的主行号,并且,这两个主行号相差1。因此,通过确定第5行、第6行之间的移位值,或者第11行、第12行之间的移位值,均可以确定右下编码单元的主行号。
[0109]
对于第1行、第2行之间的移位值,除去定界点码420之外,只要第1行、第2行包含不少于5位的连续序列,且两个连续序列位置对应,则可基于这两个连续序列解码出第1行、第2行之间的移位值。例如,若第1列至第6列(中间包含一列定界点码420)是连续的,即这些点
码均是可被提取的,不存在被干扰的情况,则可利用第1行、第2行中,第1列至第6列的数据确定第1行、第2行之间的移位值;当然,利用第2列至第7列、第3列至第8列、
……
、第7列至第12列中任意一组数据,均能够确定第1行、第2行之间的移位值。这种解码方式具有较高的容错率,可以比较有效地抵抗书面图像中存在的干扰,在书面图像中采集到的部分点码存在干扰的情况下,一般也可以解码得到点码阵列中的信息。
[0110]
当点码阵列中存在定界点码420时,利用定界线402可以比较方便地划分出每个编码单元;若点码阵列中不设置定界点码420,利用相邻主行号相差为1,而其余信息(例如页面编码的第一部分)相同的特点,也可区划分出每个编码单元,本实施例对此不做详述。
[0111]
在实际铺码时,可以将第三比特矩阵中每个a
×
a的子矩阵中插入定界符,以定界符表示定界点码;其中,每个a
×
a的子矩阵即对应一个编码单元。由于定界点码是精确位于网格线交点的,在解码时可以很方便地确定每个编码单元的位置,能够更加准确地进行定位。
[0112]
可选地,由于用户使用点阵笔进行书写时,点阵笔的角度可以是任意的,导致基于从书写图像中提取出的点码存在多种可能的方位;相应地,从书写图像的点码中,可以得到多个第三子比特矩阵。由于点码按照行列的形式排列的,故可以得到四个第三子比特矩阵。即该书写图像的角度为0
°
、90
°
、180
°
、270
°
时,可分别提取出一个第三子比特矩阵。解码过程中也需要确定哪一方位是正确的,传统的方式是使用某个方向上的特定位置的点间距的差异来实现的,这种方案的抗干扰能力较弱。
[0113]
如上所述,本发明实施例中,点码具有四种值,以点码相对于网格线交点的不同偏移方位表示不同值,具体可参见图4所示。这种设置点码的方式,结合德布鲁因序列的特性,在解码时可以方便准确地实现定向,能够确定合适的第三子比特矩阵,该定向的过程也具有较强的抗干扰能力,且定向比较准确。
[0114]
本发明实施例中,对于长度为2a的德布鲁因序列,任一长度为a的序列(即该序列的位数为a)均属于该德布鲁因序列的一部分,而对于长度为c的序列,其中,c>a,该序列并不一定属于德布鲁因序列的一部分。以该序列为连续序列为例,若德布鲁因序列长度为8,且为00010111,则对于任意3位的连续序列,其均属于该德布鲁因序列的一部分;而对于4位或5位等更长的连续序列,其不一定属于德布鲁因序列的一部分,例如4位的连续序列0000、1010、1111等,其并不在该德布鲁因序列00010111中。但该德布鲁因序列00010111中也包含部分4位的连续序列,例如0001、0010、0101等。对于c位并不连续的序列,其也存在上述现象;例如,5个点码中的第三个存在干扰,只能读取出其中的四个点码,这四个点码对应的序列为00x00,其中的x表示未知的数据,该序列是不连续的序列,且并不存在于该德布鲁因序列中;而该德布鲁因序列中也包含一些该格式的不连续序列,如00x10、00x01、01x11等。
[0115]
若书写图像的方位正确,则可提取出正确的第三子比特矩阵,相应地,每个目标子序列均为德布鲁因序列,且与德布鲁因基准序列本质相同,只是存在一定的移位。在这种情况下,目标子序列中任意c位的序列,均属于该德布鲁因基准序列中的一部分,该目标子序列具有较高的正确度,例如正确度为1。相反地,若书写图像的方位不正确,则所提取出的第三子比特矩阵也不正确,此时的目标子序列不是德布鲁因序列,或者是与该德布鲁因基准序列不同的其他德布鲁因序列,故在该目标子序列中,大概率会出现不属于德布鲁因基准序列的c位序列,该目标子序列具有较低的正确度,例如正确度为0。可选地,在目标子序列
中c位的序列属于德布鲁因基准序列中的一部分的情况下,c越大,目标子序列的正确度也越大。
[0116]
综合至少部分目标子序列的正确度,可以确定第一子比特矩阵、第二子比特矩阵的正确度,例如,可以通过求平均值、加权求和等方式确定第一子比特矩阵的正确度,本发明实施例对此不做限定。若该第一子比特矩阵的正确度满足要求,即该第一子比特矩阵的正确度足够大,则可确定第一子比特矩阵方向正确。例如,若第一子比特矩阵的正确度大于预设阈值,或者,该第一子比特矩阵的正确度是基于四种第三子比特矩阵所确定的四个第一子比特矩阵的正确度中的最大者,则也可确定该第一子比特矩阵方向正确。
[0117]
对第一子比特矩阵、第二子比特矩阵,均确定各自的方向是否正确,若二者的方向均正确,则可确定书写图像当前的方位正确。
[0118]
具体地,由于本发明实施例以点码相对于网格线交点的不同偏移方位,表示点码不同值,当书写图像方位不正确时,点码所表示的值也不正确,使得提取出的第三子比特矩阵不正确。以图4所示为例,若某个点码位实际位于网格线交点的上方,如图4中的(a)所示,且该点码为00;若采集的书写图像被顺时针旋转了90
°
,则在该书写图像中,该点码位于网格线交点的右方,如图4中的(b)所示,且该点码为11,导致此时提取的第三子比特矩阵不正确。通过识别出正确的第三子比特矩阵,即可确定书写图像正确的方向。
[0119]
可选地,为了能够比较好地区分第一子比特矩阵和第二子比特矩阵的正确地,本发明实施例中,位于网格线交点上方的点码、右方的点码、下方的点码、左方的点码,这四种点码所表示的值按照00、01、10、11的顺序循环排列,或者按照00、10、01、11的顺序循环排列;例如,上方的点码表示00、右方的点码表示01、下方的点码表示10、左方的点码表示11。
[0120]
由于点码的高位、低位分别对应两个子比特矩阵(即第一子比特矩阵和第二子比特矩阵)中的数据,按照上述编码方式,在旋转同一角度时,第一子比特矩阵和第二子比特矩阵会发生不同的变化。
[0121]
例如,点码的高位对应第一子比特矩阵,点码的低位对应第二子比特矩阵,且四种点码所表示的值按照00、01、10、11的顺序循环排列,即顺时针旋转书写图像时,某个点码的高位可以按照0
→0→1→1→0→
0的方式变化,某个点码的低位可以按照0
→1→0→1→
0的方式变化。在这种情况下,若书写图像旋转90
°
或270
°
,则一部分点码的高位保持不变(即仍然为0,或者仍然为1),而另一部分点码的高位会发生变化(从0变为1,或者从1变为0);而所有点码的低位均会发生变化。若书写图像旋转180
°
,则所有点码的高位均会发生变化;而一部分点码的低位保持不变,另一部分点码的低位会发生变化。即无论书写图像旋转的角度是多少,第一子比特矩阵和第二子比特矩阵中,其中一个矩阵部分数据发生变化,另一个矩阵的全部数据均会发生变化,不同的变化方式更容易出现不属于德布鲁因基准序列的c位序列,更容易确定正确的方向。
[0122]
本发明实施例中,利用目标子序列中多位的序列与德布鲁因基准序列的匹配程度,可以确定目标子序列是否正确,从而实现定向,即使书写图像中存在较多的干扰,也可比较准确地实现定向,定向的抗干扰能力也较强。行信息和列信息中均包含页面标识的一部分,该页面标识是一种全局信息,且相邻的主行号、相邻的主列号均相差1,将主行号、主列号以及全局信息分布在整个点码阵列中,可以进一步提高局部解码时的准确性。
[0123]
此外可选地,如上所述,对于某个长度2a,存在多种德布鲁因序列;例如,32位的德
布鲁因序列一共有65536种。理论上来说,任意一种德布鲁因序列均可作为德布鲁因基准序列,但由于实际采集到的点码存在干扰,例如第三子比特矩阵存在干扰,为了进一步提高抗干扰性,本发明实施例以选择的方式选出德布鲁因基准序列。具体地,本发明实施例提供的铺码打印网关,还包括用于选择德布鲁因基准序列的选择模块,且该选择模块具体可用于执行以下步骤d1至步骤d3。
[0124]
步骤d1:确定用于解码的解码位数d,并预设干扰位数p;d-p>a。
[0125]
本发明实施例中,由于实际采集到的点码存在干扰,导致可能出现不能采集到连续的a位序列;例如,第一子比特矩阵或第二子比特矩阵中,某一行或一列中不存在连续的a位数据。为了提高抗干扰性,本发明实施例预先设置干扰位数p,基于该干扰位数选取合适的德布鲁因序列作为德布鲁因基准序列。
[0126]
其中,该干扰位数p即为采集到的点码中所允许存在的干扰情况。例如,若书写图像中存在一条黑色的直线,该黑线占据两个点码的宽度,则会导致采集到的点码中,有两行或两列的点码是未知的,此时可以将p设为2。该干扰位数p的大小具体可基于实际情况而定,或者基于人为经验选取,本实施例对此不做限定。
[0127]
解码位数d表示在存在p位未知数的情况下,通过d位数据能够实现解码的位数;由德布鲁因基准序列的性质可知,该解码位数p不能小于a p,即d-p>a;换句话说,在d位数据中,除去p位数据后,剩余数据的位数不能小于a。
[0128]
并且,由于点阵笔摄像头的采集范围有限,该解码位数d也不能过大,一般情况下,该解码位数d不超过摄像头采集范围对应的最大点码位数。
[0129]
步骤d2:将德布鲁因候选序列中d位连续序列的p位数据作为未知数,形成包含p位未知数的待处理序列;该德布鲁因候选序列为长度大于或等于2a的一种德布鲁因序列。
[0130]
本发明实施例中,当需要选用某个长度的德布鲁因序列作为德布鲁因基准序列时,将其中任意一个作为德布鲁因候选序列;例如,该德布鲁因候选序列的长度为2a。
[0131]
在确定德布鲁因候选序列后,从中任意选取d位连续序列,例如,将该德布鲁因候选序列中从第1位至第d位(或第2位至第d 1位等)的数据作为该d位连续序列;并且,将该d位连续序列中的p位数据作为未知数,从而形成包含p位未知数的待处理序列,该待处理序列也是d位的,只是其中存在p位未知的数据。
[0132]
例如,若d=10,p=2,则可从德布鲁因候选序列中选择d位连续序列,本实施例以dddddddddd表示该d位连续序列,其中的d表示某个二进制,具体为0或1;并且,d只是指代某个位置的二进制,不同位置的d可表示不同的数值。将该10位连续序列的2位数据作为未知数x,则可形成新的序列,即待处理序列;该待处理序列例如可以表示为ddddxxdddd,或者ddddxddxdd等。
[0133]
可以理解,对于长度为2a的德布鲁因候选序列,可以从中提取出2a个不同的d位连续序列;并且,对于每一个d位连续序列,从中任意选择p位的数据作为未知数,均可形成不同的待处理序列,基于排列组合公式可知,共 个待处理序列。故该德布鲁因候选序列可确定个待处理序列。
[0134]
步骤d3:判断该待处理序列在该德布鲁因候选序列中是否是唯一的;若对于任意待处理序列,其该德布鲁因候选序列中均是唯一的,则将该德布鲁因候选序列作为德布鲁
因基准序列。
[0135]
本发明实施例中,待处理序列是d位的数据,但其中只有d-q位数据是有效的,其他q位数据是未知数,该未知数不用于判断待处理序列是否是唯一的;即只基于其中的d-q位数据进行判断,但判断过程中,需要考虑这些数据的位置,即该d-q位数据不是连续的序列。例如,a=3,q=1,d=5,且德布鲁因候选序列为00011101;对于待处理序列00x11,其在该德布鲁因候选序列中出现两次,即“00011”和“00111”,则该待处理序列不具有唯一性。
[0136]
具体地,对于从长度为2a的德布鲁因候选序列中所提取出的2a个d位连续序列,若将这些d位连续序列中相同位置的p位数据作为未知数,且此时确定的2a个待处理序列互不相同,则说明这2a个待处理序列在该德布鲁因候选序列中是唯一的;通过改变p位数据的位置,可以判断其他待处理序列的唯一性;若所有待处理序列均具有唯一性,则可将该德布鲁因候选序列作为德布鲁因基准序列。
[0137]
或者,对于某个待处理序列,其中的p位未知数的数值存在2
p
种情况,以上述例子为例,若待处理序列为ddddxxdddd,其对应4个序列,即:dddd00dddd、dddd01dddd、dddd10dddd、dddd11dddd;若这2
p
种序列中只有一个序列属于该德布鲁因候选序列,则也可确定该待处理序列具有唯一性。
[0138]
需要说明的是,若待处理序列中存在a位连续的已知数,仍然以上述例子为例,若待处理序列为dddddxxddd,其前5位是连续的已知数,则该待处理序列一定是唯一的,此时不需要执行上述步骤d3,即不需要判断该待处理序列的唯一性。
[0139]
相应地,在解码处理的过程中,若相邻两个目标子序列不包含b位连续序列,则不能利用两个b位连续序列确定两个德布鲁因序列之间的移位值,而是执行以下步骤e1。
[0140]
步骤e1:在相邻两个目标子序列不包含b位连续序列的情况下,确定相邻两个目标子序列的d位序列,将这里两个d位序列之间的移位值作为相邻两个目标子序列之间的移位值。
[0141]
本发明实施例中,若不包含b位连续序列,例如不包含a位连续序列,则可以确定其中的d位序列,在被干扰的点码不超过p个的情况下,基于上述步骤d1-d3所示的编码过程可知,也可以唯一确定该d位序列在德布鲁因基准序列中的位置,进而能够确定两个d位序列之间的移位值。若被干扰的点码超过p个,则需要增大d的数值,直至解码失败。
[0142]
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
[0143]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
[0144]
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元
件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
[0145]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换的技术方案,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表