本发明涉及编解码,具体而言,涉及一种编码、解码的方法、装置、电子设备及存储介质。
背景技术:
1、智能笔(也称为点阵笔等)的笔尖端设有摄像头,用户使用智能笔书写时,摄像头可以采集到书写时的笔迹;其中,当用户在铺有细小点码(也称为码点)的纸上书写时,通过摄像头可以采集到一定范围内的点码,通过对点码进行解码,可以提取出图像中编码的信息,从而可以确定笔尖的坐标信息。例如,通过对包含内容的页面进行铺码,可以向该页面叠加点码图像,利用点码图像即可实现定位。其中,一种点码图像可参见图1所示,点码图像也是一种点码阵列。
2、通常会利用网格线将点码图像划分为一组大小相同的网格区域,每一个网格使用二元组<x,y>表示其坐标。用户书写时,采集到的图像通常包括几个网格。当图像受到干扰时,图像内可能每一个网格都包括干扰信息,如果解码算法只能基于包含完整信息的网格解码,那么解码算法就无法解码这种干扰较强的图像,即不能实现定位。例如,在黑白打印时,页面中本身包含的内容与点码存在重叠,且难以区分,从而会对解码过程造成干扰。
3、有些编解码方案可以跨越多个网格解码,但是要求拍摄的图像中包含和网格面积相同的无干扰区域,该区域可以跨域多个网格。这一类编解码方案可以部分解决图像干扰的问题,但是解码成功率往往无法满足业务要求。
技术实现思路
1、为解决现有存在的技术问题,本发明实施例提供一种编码、解码的方法、装置、电子设备及存储介质。
2、第一方面,本发明实施例提供了一种编码的方法,包括:
3、将待铺码页面分为多行和多列,并为每一行设置主行号,为每一列设置主列号;
4、确定每一行需要编码的行信息以及每一列需要编码的列信息,所述行信息包括主行号,所述列信息包括主列号;
5、对所述行信息和所述列信息分别进行编码处理,生成包含所有所述行信息的第一比特矩阵和包含所有所述列信息的第二比特矩阵,所述第一比特矩阵与所述第二比特矩阵的行列数相同;
6、将所述第一比特矩阵和所述第二比特矩阵组合为第三比特矩阵;所述第三比特矩阵中的元素是二维的,且包括所述第一比特矩阵中同一位置的元素以及所述第二比特矩阵中同一位置的元素;以及
7、将所述第三比特矩阵中每个元素转换为相应的点码,生成点码图像;
8、其中,所述编码处理包括:
9、将目标信息分为a个目标序列,且所述目标序列的位数也为a;
10、沿第一方向依次设置多个德布鲁因序列,相邻两个所述德布鲁因序列之间的移位值与所述目标序列相对应,且所述多个德布鲁因序列与所有所述目标信息的目标序列相对应;每个所述德布鲁因序列均是由同一个德布鲁因基准序列移位得到的,所述德布鲁因基准序列的长度大于或等于2a;
11、以复制的方式,对每个所述德布鲁因序列均沿第二方向进行扩展,扩展后的德布鲁因序列能够在所述第二方向上覆盖所述待铺码页面;以及
12、将多个所述扩展后的德布鲁因序列所对应的矩阵作为包含所有所述目标信息的比特矩阵;
13、其中,所述目标信息为所述行信息、所述第一方向为列方向、所述第二方向为行方向;或者,所述目标信息为所述列信息、所述第一方向为行方向、所述第二方向为列方向。
14、在一种可能的实现方式中,所述确定每一行需要编码的行信息以及每一列需要编码的列信息,包括:
15、确定所述待铺码页面的页面标识,并将页面标识分为第一部分和第二部分;
16、将所述第一部分与每一行的所述主行号组合得到相应的行信息,将所述第二部分与每一列的所述主列号组合得到相应的列信息。
17、在一种可能的实现方式中,所述点码相对于网格线交点的不同偏移方位对应不同值。
18、在一种可能的实现方式中,所述将所述第三比特矩阵中每个元素转换为相应的点码,包括:
19、为每一主行号增加一行定界点码,为每一主列号增加一列定界点码;所述定界点码位于网格线交点。
20、第二方面,本发明实施例还提供了一种解码的方法,包括:
21、获取笔头在点码页面上书写时的书写图像;所述点码页面为在待铺码页面上叠加点码图像所形成的页面,且所述点码图像是基于上述任一编码的方法生成的;
22、对所述书写图像中的点码进行解码,得到所述书写图像对应的第三子比特矩阵,所述第三子比特矩阵中的元素是二维的;
23、将所述第三子比特矩阵拆分为用于表示行信息的第一子比特矩阵和用于表示列信息的第二子比特矩阵;以及
24、对所述第一子比特矩阵和所述第二子比特矩阵分别进行解码处理,确定笔尖所在位置对应的主行号和主列号;
25、其中,所述解码处理,包括:
26、确定目标子比特矩阵中沿第三方向排列的多个目标子序列;
27、在相邻两个所述目标子序列包含b位连续序列的情况下,将两个所述b位连续序列之间的移位值作为相邻两个所述目标子序列之间的移位值;b≥a;以及
28、确定所述目标子比特矩阵中至少部分相邻两个所述目标子序列之间的移位值,并根据所述至少部分相邻两个所述目标子序列之间的移位值,还原得到所述目标子比特矩阵对应的目标信息;
29、其中,所述目标子比特矩阵为所述第一子比特矩阵、所述目标信息为行信息、所述第三方向为列方向;或者,所述目标子比特矩阵为所述第二子比特矩阵、所述目标信息为列信息、所述第三方向为行方向。
30、在一种可能的实现方式中,在所述点码相对于网格线交点的不同偏移方位对应不同值的情况下,所述解码处理还包括:
31、根据所述目标子序列中c位的序列是否属于德布鲁因基准序列中的一部分,确定所述目标子序列的正确度;c>a;
32、根据至少部分所述目标子序列的正确度综合确定所述目标子比特矩阵的正确度;
33、在所述目标子比特矩阵的正确度满足要求的情况下,确定所述目标子比特矩阵方向正确;
34、并且,在所述第一子比特矩阵和所述第二子比特矩阵均方向正确的情况下,确定所述书写图像方位正确。
35、在一种可能的实现方式中,在所述点码图像中包括定界点码的情况下,所述对所述书写图像中的点码进行解码,得到所述书写图像对应的第三子比特矩阵,包括:
36、确定所述书写图像中网格线的位置;
37、根据点码偏离网格线交点的程度,确定定界点码;
38、剔除掉所有的所述定界点码,生成所述书写图像对应的第三子比特矩阵。
39、第三方面,本发明实施例还提供了一种编码的装置,包括:
40、设置模块,用于将待铺码页面分为多行和多列,并为每一行设置主行号,为每一列设置主列号;
41、信息确定模块,用于确定每一行需要编码的行信息以及每一列需要编码的列信息,所述行信息包括主行号,所述列信息包括主列号;
42、编码模块,用于对所述行信息和所述列信息分别进行编码处理,生成包含所有所述行信息的第一比特矩阵和包含所有所述列信息的第二比特矩阵,所述第一比特矩阵与所述第二比特矩阵的行列数相同;
43、组合模块,用于将所述第一比特矩阵和所述第二比特矩阵组合为第三比特矩阵;所述第三比特矩阵中的元素是二维的,且包括所述第一比特矩阵中同一位置的元素以及所述第二比特矩阵中同一位置的元素;以及
44、转换模块,用于将所述第三比特矩阵中每个元素转换为相应的点码,生成点码图像;
45、其中,所述编码模块包括:
46、划分单元,用于将目标信息分为a个目标序列,且所述目标序列的位数也为a;
47、序列设置单元,用于沿第一方向依次设置多个德布鲁因序列,相邻两个所述德布鲁因序列之间的移位值与所述目标序列相对应,且所述多个德布鲁因序列与所有所述目标信息的目标序列相对应;每个所述德布鲁因序列均是由同一个德布鲁因基准序列移位得到的,所述德布鲁因基准序列的长度大于或等于2a;
48、扩展单元,用于以复制的方式,对每个所述德布鲁因序列均沿第二方向进行扩展,扩展后的德布鲁因序列能够在所述第二方向上覆盖所述待铺码页面;以及
49、生成单元,用于将多个所述扩展后的德布鲁因序列所对应的矩阵作为包含所有所述目标信息的比特矩阵;
50、其中,所述目标信息为所述行信息、所述第一方向为列方向、所述第二方向为行方向;或者,所述目标信息为所述列信息、所述第一方向为行方向、所述第二方向为列方向。
51、第四方面,本发明实施例还提供了一种解码的装置,包括:
52、获取模块,用于获取笔头在点码页面上书写时的书写图像;所述点码页面为在待铺码页面上叠加点码图像所形成的页面,且所述点码图像是基于权利要求1至4任意一项所述的编码的方法生成的;
53、矩阵确定模块,用于对所述书写图像中的点码进行解码,得到所述书写图像对应的第三子比特矩阵,所述第三子比特矩阵中的元素是二维的;
54、拆分模块,用于将所述第三子比特矩阵拆分为用于表示行信息的第一子比特矩阵和用于表示列信息的第二子比特矩阵;以及
55、解码模块,用于对所述第一子比特矩阵和所述第二子比特矩阵分别进行解码处理,确定笔尖所在位置对应的主行号和主列号;
56、其中,所述解码模块包括:
57、子序列确定单元,用于确定目标子比特矩阵中沿第三方向排列的多个目标子序列;
58、移位值确定单元,用于在相邻两个所述目标子序列包含b位连续序列的情况下,将两个所述b位连续序列之间的移位值作为相邻两个所述目标子序列之间的移位值;b≥a;以及
59、信息确定单元,用于确定所述目标子比特矩阵中至少部分相邻两个所述目标子序列之间的移位值,并根据所述至少部分相邻两个所述目标子序列之间的移位值,还原得到所述目标子比特矩阵对应的目标信息;
60、其中,所述目标子比特矩阵为所述第一子比特矩阵、所述目标信息为行信息、所述第三方向为列方向;或者,所述目标子比特矩阵为所述第二子比特矩阵、所述目标信息为列信息、所述第三方向为行方向。
61、第五方面,本发明实施例提供了一种电子设备,包括处理器和存储器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述存储器中存储的计算机程序,所述计算机程序被所述处理器执行时实现上述第一方面所述的编码的方法或上述第二方面所述的解码的方法。
62、第六方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的编码的方法或上述第二方面所述的解码的方法。
63、第七方面,本技术还提供一种计算机程序产品,包括计算机程序,当计算机程序被执行时,可以实现上述第一方面所述的编码的方法或上述第二方面所述的解码的方法。
64、本发明实施例提供的编码、解码的方法、装置、电子设备及存储介质,以沿行方向排列的德布鲁因序列表示行信息、以沿列方向排列的德布鲁因序列表示列信息,且相邻两个德布鲁因序列之间的移位值与目标序列相对应,从而形成相应的点码图像;在对该点码图像中的部分点码进行解码时,利用相邻两个德布鲁因序列中任意足够长的连续序列,即可解码得到相应的移位值,从而还原得到相应的行信息和列信息。该编码、解码的方法具有较强的抗干扰能力,只要采集的书写图像中有一小块无干扰区域,即可解码出一部分信息,并利用多块无干扰区域,即可拼接出完整的行信息和列信息。