一种基于geotools工具修复自相交的地理图像输出方法与流程

未命名 10-09 阅读:136 评论:0


1.本发明涉及一种地理数据技术领域,特别是涉及一种基于geotools工具修复自相交的地理图像输出方法。


背景技术:

2.目前,地图数据在定位、导航等技术中广泛使用。地图数据中通常包含多个地理要素,地理要素可以分为点状地理要素(比如兴趣点)、线状地理要素(比如道路)或面状地理要素(例如湖泊、公园、或者建筑物),面状地理要素可以呈各种形状,面状地理要素的形状与其对应地理要素在现实世界中的形状有关,比如,一栋现实世界的大楼的形状可以是规则的四边形,也可以是不规则的多边形。专利申请号2020104735479,名称为“面状地理要素的处理方法、装置和存储介质”,包括:获取地图数据中面状地理要素的多边形;对所述面状地理要素的多边形相交的非相邻边,用所述非相邻边的交点分割所述非相邻边;确定分割得到的所述面状地理要素的边和顶点构成的多边形;从确定的所述多边形中,获取所述面状地理要素的目标多边形,所述目标多边形的非相邻边不相交。


技术实现要素:

3.本发明旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种基于geotools工具修复自相交的地理图像输出方法。
4.为了实现本发明的上述目的,本发明提供了一种基于geotools工具修复自相交的地理图像输出方法,包括以下步骤:
5.s-1,获取待处理的地理数据;
6.s-2,将步骤s-1中的地理数据进行去自相交后,得到去自相交地理数据。
7.在本发明的一种优选实施方式中,在步骤s-2之后还包括步骤s-3,将去自相交的地理数据生成地理图像,将生成的地理图像进行图像输出。
8.综上所述,由于采用了上述技术方案,本发明能够对自相交进行识别,得到一个修复后的地理数据,并能确保输出图像的安全。
9.本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
10.本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
11.图1是本发明流程示意框图。
具体实施方式
12.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终
相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
13.本发明公开了一种基于geotools工具修复自相交的地理图像输出方法,如图1所示,包括以下步骤:
14.s-1,获取待处理的地理数据;
15.s-2,将步骤s-1中的地理数据进行去自相交后,得到去自相交地理数据。
16.在本发明的一种优选实施方式中,在步骤s-2之后还包括步骤s-3,将去自相交的地理数据生成地理图像,将生成的地理图像进行图像输出。
17.在本发明的一种优选实施方式中,在步骤s-2中得到去自相交地理数据的方法为:
18.针对图形自相交的几何图形,使用geotools工具,找到自相交几何图形自相交的部分,再使用原始几何图形将自相交的部分去除,得到的几何图形便去除了自相交的部分。
19.在本发明的一种优选实施方式中,还包括过锐角修复,过锐角修复的方法为:
20.针对存在该情况的几何图形,使用geotools工具,遍历几何图形的顶点,以顶点生成一个缓冲为一厘米的圆,该圆与原图形的相交的两个点如果长度过短则认为是过锐角,使用相交两个点的连线切割该角,得到的新的几何图形中过锐角被去除。
21.在本发明的一种优选实施方式中,还包括对地理数据进行外环与内环相交修复,对外环与内环相交修复方法为:
22.使用geotools工具,遍历几何图形的坐标,找到内环与外环相交的点坐标,将内环相交的坐标位置向内进行毫米级微调,调整后内环与外环将不存在相交的点,得到新的几何图形与原几何图形几乎没有区别。
23.在本发明的一种优选实施方式中,还包括去面相交地理数据,其去面相交地理数据的方法包括以下步骤:
24.s-21,获取步骤s-1中地理数据中面的个数,记作q,q表示步骤s-1中地理数据中面的个数,分别为q1、q2、q3、
……
、qq,q1表示步骤s-1中地理数据中的第1面的坐标点数据,q2表示步骤s-1中地理数据中的第2面的坐标点数据,q3表示步骤s-1中地理数据中的第3面的坐标点数据,qq表示步骤s-1中地理数据中的第q面的坐标点数据;构建坐标系,令面计数q

=1;
25.s-22,将第q

面的坐标点数据放入坐标系中并按照次序连接起来构成闭合的面,构成闭合的面的方法为:
26.s-221,获取第q

面坐标点数据中的坐标点个数,记作wq′
,wq′
表示第q

面坐标点数据中的坐标点个数,从左到右依次分别为wq′
,1
、wq′
,2
、wq′
,3

……
、wq′
,1
表示第q

面坐标点数据中的第1坐标点,wq′
,2
表示第q

面坐标点数据中的第2坐标点,wq′
,3
表示第q

面坐标点数据中的第3坐标点,表示第q

面坐标点数据中的第wq′
坐标点;其中,第q

面坐标点数据中的第1坐标点wq′
,1
为第q

面坐标点数据中的起点坐标点,第q

面坐标点数据中的第wq′
坐标点为第q

面坐标点数据中的终点坐标点,且
27.s-222,将第q

面坐标点数据中的第1坐标点wq′
,1
与第q

面坐标点数据中的第2坐标点wq′
,2
相连,将第q

面坐标点数据中的第2坐标点wq′
,2
与第q

面坐标点数据中的第3坐标点wq′
,3
相连,将第q

面坐标点数据中的第3坐标点wq′
,3
与第q

面坐标点数据中的第4坐标点
wq′
,4
相连,
……
,将第q

面坐标点数据中的第wq′-1坐标点与第q

面坐标点数据中的第1坐标点wq′
,1
相连;
28.s-223,经过步骤s-222后,得到在线条以及由线条围成的图形以内的坐标点属于第q

面;
29.s-23,判断q

与q的大小关系:
30.若q

≥q,则执行下一步;
31.若q

《q,则q

=q

+1,返回步骤s-22;
32.s-24,判断第q

面与第q
″′
面间的坐标点关系:
33.若rq″
表示第q

面所包含的坐标点集合;rq″′
表示第q
″′
面所包含的坐标点集合;∩表示逻辑关系并集,表示空集,q

∈{1,2,3,...,wq′
},q
″′
∈{1,2,3,...,wq′
},且q

≠q
″′
,则第q

面rq″
与第q
″′
面rq″′
不相交;不对其处理;
34.若rq″
表示第q

面所包含的坐标点集合;rq″′
表示第q
″′
面所包含的坐标点集合;∩表示逻辑关系并集,表示非空集集合,q

∈{1,2,3,...,wq′
},q
″′
∈{1,2,3,...,wq′
},且q

≠q
″′
,则第q

面rq″
与第q
″′
面rq″′
相交:
35.若中的元素个数等于1,则不对其处理;
36.若中的元素个数大于或者等于2,则执行下一步;
37.s-24,从或者取中的任一点w,判断w是否属于rq″
和rq″′

38.若w∈rq″
且w∈rq″′
,则重新从或者中取出一点w

进行判断;直至或令w=w

,执行下一步;表示第q

面坐标点数据中的坐标点集合,wq″
,1
表示第q

面坐标点数据中的第1坐标点,wq″
,2
表示第q

面坐标点数据中的第2坐标点,wq″
,3
表示第q

面坐标点数据中的第3坐标点,表示第q

面坐标点数据中的第wq″
坐标点;表示第q
″′
面坐标点数据中的坐标点集合,wq″′
,1
表示第q
″′
面坐标点数据中的第1坐标点,wq″′
,2
表示第q
″′
面坐标点数据中的第2坐标点,wq″′
,3
表示第q
″′
面坐标点数据中的第3坐标点,表示第q
″′
面坐标点数据中的第wq″′
坐标点;
39.若或执行下一步;
40.s-25,以w为起点坐标点,搜索围成第q

面rq″
和第q
″′
面rq″′
的折线点所对应的坐标点,以回到w作为终点坐标,得到去除相交面的坐标点。
41.例如,待处理的地理数据为multipolygon((11,15,55,51,11),(44,42,62,64,44),(91,82,71,91))。
42.第一步,待处理的地理数据multipolygon((11,15,55,51,11),(44,42,62,64,44),(91,82,71,91))有3个面,分别为q1=polygon(11,15,55,51,11)、q2=polygon(44,42,62,64,44)、q3=polygon(91,82,71,91);
43.第二步,第1面坐标点数据中的坐标点个数为4,从左到右依次分别为w
1,1
=(1,1)、w
1,2
=(1,5)、w
1,3
=(5,5)、w
1,4
=(5,1)、w
1,5
=(1,1);
44.第2面坐标点数据中的坐标点个数为4,从左到右依次分别为w
2,1
=(4,4)、w
2,2
=(4,2)、w
2,3
=(6,2)、w
2,4
=(6,4)、w
2,5
=(4,4);
45.第3面坐标点数据中的坐标点个数为3,从左到右依次分别为w
3,1
=(9,1)、w
3,2
=(8,2)、w
3,3
=(7,1)、w
3,4
=(9,1);
46.第三步,将坐标点(1,1)与坐标点(1,5)直线相连,将坐标点(1,5)与坐标点(5,5)直线相连,将坐标点(5,5)与坐标点(5,1)直线相连,将坐标点(5,1)与坐标点(1,1)直线相连;得到第1面;
47.将坐标点(4,4)与坐标点(4,2)直线相连,将坐标点(4,2)与坐标点(6,2)直线相连,将坐标点(6,2)与坐标点(6,4)直线相连,将坐标点(6,4)与坐标点(4,4)直线相连;得到第2面;
48.将坐标点(9,1)与坐标点(8,2)直线相连,将坐标点(8,2)与坐标点(7,1)直线相连,将坐标点(7,1)与坐标点(9,1)相连;得到第3面。
49.第四步,由于第1面所包含的坐标点集合r1与第2面所包含的坐标点集合r2的并集存在多个相同元素,因此从{(1,1),(1,5),(5,5),(5,1)}或者{(4,4),(4,2),(6,2),(6,4)}任一点例如(4,2),由于(4,2)∈第1面r1,且(4,2)∈第2面r2,因此重新选择一点(5,5),由于(5,5)第2面r2,因此以(5,5)为起点坐标点,搜索围成第1面r1和第2面r2的折线点所对应的坐标点依次分别是(5,4)、(6,4)、(6,2)、(5,2)、(1,1)、(1,5)、(5,5);则polygon(55,54,64,62,52,11,15,55),最后multipolygon((55,54,64,62,52,11,15,55),(91,82,71,91))。针对多面中若干面有相交的几何图形,还可以是使用geotools工具,对几何图形建立一个长度为0的缓冲,相交的两个面进行缓冲后与原几何图形一致并且没有相交。面相交、自相交、内环与外环相交和过锐角的修复也可以采用现有技术。
50.在本发明的一种优选实施方式中,将生成的地理图像进行图像输出的方法包括以下步骤:
51.s1,获取待导出图像的宽度、高度和分辨率,分别记作k
picture
、g
picture
和r
picture
,k
picture
表示待导出图像的宽度,单位为cm,cm表示长度单位厘米,g
picture
表示待导出图像的高度,单位为cm,cm表示长度单位厘米,r
picture
表示待导出图像的分辨率;单位为cm-1,cm-1表示分辨率单位每厘米像素个数;
52.s2,根据步骤s1中获取的待导出图像的宽度、高度和分辨率,生成待导出图像的颜色矩阵,记作:
[0053][0054]
其中,rgb
1,1
表示待导出图像中的第1行第1列的颜色值;rgb
1,2
表示待导出图像中的第1行第2列的颜色值;rgb
1,3
表示待导出图像中的第1行第3列的颜色值;rgb
1,b
表示待导出图像中的第1行第b列的颜色值;b=k
picture
×rpicture
;b表示待导出图像横向像素总个数,k
picture
表示待导出图像的宽度,单位为cm,cm表示长度单位厘米,r
picture
表示待导出图像的分辨率;单位为cm-1,cm-1表示分辨率单位每厘米像素个数;当a、b包括整数部分和小数部分时,取整数部分数值+1,即向上取整。rgb
2,1
表示待导出图像中的第2行第1列的颜色值;rgb
2,2
表示待导出图像中的第2行第2列的颜色值;rgb
2,3
表示待导出图像中的第2行第3列的颜色值;rgb
2,b
表示待导出图像中的第2行第b列的颜色值;rgb
3,1
表示待导出图像中的第3行第1列的颜色值;rgb
3,2
表示待导出图像中的第3行第2列的颜色值;rgb
3,3
表示待导出图像中的第3行第3列的颜色值;rgb
3,b
表示待导出图像中的第3行第b列的颜色值;rgb
a,1
表示待导出图像中的第a行第1列的颜色值;a=g
picture
×rpicture
;a表示待导出图像纵向像素总个数,g
picture
表示待导出图像的高度,单位为cm,cm表示长度单位厘米,r
picture
表示待导出图像的分辨率;单位为cm-1,cm-1表示分辨率单位每厘米像素个数;rgb
a,2
表示待导出图像中的第a行第2列的颜色值;rgb
a,3
表示待导出图像中的第a行第3列的颜色值;rgb
a,b
表示待导出图像中的第a行第b列的颜色值;
[0055]
若a》b,可以在颜色矩阵的最右侧增加a-b列,构成a
×
a矩阵:
[0056][0057]
在颜色矩阵的后侧增加a-b列的颜色值均为0,即r=0,g=0,b=0;也可以在颜色矩阵的最左侧增加a-b列,构成a
×
a矩阵。
[0058]
若b》a,可以在颜色矩阵的最下侧增加b-a行,构成b
×
b矩阵:
[0059][0060]
在颜色矩阵的下侧增加b-a行的颜色值均为0;也可以在颜色矩阵的最上侧增加b-a行,构成b
×
b矩阵。
[0061]
s3,根据步骤s2中的颜色矩阵生成三色字符串矩阵;
[0062]
s4,根据步骤s2中的颜色矩阵的行列数生成行列字符串矩阵;
[0063]
s5,根据步骤s3中的三色字符串矩阵与步骤s4中的行列字符串矩阵生成行列三色字符串矩阵;
[0064]
s6,对行列三色字符串矩阵中的行列三色字符串转换为三色行列字符串,得到三色行列字符串矩阵;
[0065]
s7,对三色行列字符串矩阵中的字符串进行行列调整,行列调整的方式可以是三色行列字符串进行位置随机调换,得到行列字符串调整矩阵;
[0066]
s8,将行列调整字符串矩阵中的字符串按照从左至右、从上到下的顺序写入文本,得到字符串文本。此为图像数据的导出,其图像数据的导入为图像数据的导出的逆运算。
[0067]
在本发明的一种优选实施方式中,行列字符串调整矩阵的得到方法包括以下步骤:
[0068]
s71,将a
×
b三色行列字符串矩阵构建为a
′×b′
矩阵块矩阵a

为小于或者等于a的正整数,b

为小于或者等于b的正整数,优选的,a

》1,b

》1,a

=a,b

=b;更好的矩阵块中的三色行列字符串的个数为2、3、4、9、16、25、36、49或64,每个矩阵块内的三色行列字符串个数相等,令行比较数a
″″
=1,列比较数b
″″
=1;
[0069]
其中,k

1,1
表示矩阵块矩阵中的第1行第1列矩阵块;k

1,2
表示矩阵块矩阵中的第1行第2列矩阵块;k

1,3
表示矩阵块矩阵中的第1行第3列矩阵块;k

1,b

表示矩阵块矩阵中的第1行第b

列矩阵块;k

2,1
表示矩阵块矩阵中的第2行第1列矩阵块;k

2,2
表示矩阵块矩阵中的第2行第2列矩阵块;k

2,3
表示矩阵块矩阵中的第2行第3列矩阵块;k

2,b

表示矩阵块矩阵中的第2行第b

列矩阵块;k

3,1
表示矩阵块矩阵中的第3行第1列矩阵块;k

3,2
表示矩阵块矩阵中的第3行第2列矩阵块;k

3,3
表示矩阵块矩阵中的第3行第3列矩阵块;k

3,b

表示矩阵块
矩阵中的第3行第b

列矩阵块;k
′a′
,1
表示矩阵块矩阵中的第a

行第1列矩阵块;k
′a′
,2
表示矩阵块矩阵中的第a

行第2列矩阵块;k
′a′
,3
表示矩阵块矩阵中的第a

行第3列矩阵块;k
′a′
,b

表示矩阵块矩阵中的第a

行第b

列矩阵块;
[0070]
s72,选择三色行列字符串矩阵的第a
″″
行第b
″″
列三色行列字符串所在矩阵块矩阵中的矩阵块k
′a″″′
,b
″″′
,1≤a
″″′
≤a

,1≤b
″″′
≤b

,且a
″″′
和b
″″′
为正整数;
[0071]
s73,判断k
′a″″′
,b
″″′
是否在矩阵块集合{k

1,1
,k

1,2
,k

1,3
,

,k

1,b

,k

2,1
,k

2,2
,k

2,3
,

,k

2,b

,k

3,1
,k

3,2
,k

3,3
,

,k

3,b

,

,k
′a′
,1
,k
′a′
,2
,k
′a′
,3
,

,k
′a′
,b

}中:
[0072]
若k
′a″″′
,b
″″′
在矩阵块集合中,则执行下一步;
[0073]
若k
′a″″′
,b
″″′
不在矩阵块集合中,则执行步骤s75;
[0074]
s74,计算得到其矩阵结果块k
′a″″″
,b
″″″
,if表示逻辑条件如果,&表示逻辑条件且,a

表示行设定值,b

表示列设定值,1≤a

≤a

,1≤b

≤b

,且a

、b

为正整数;
[0075]
s75,判断k
′a″″″
,b
″″″
与矩阵块集合的逻辑关系:
[0076]
若k
′a″″″
,b
″″″
属于矩阵块集合,则将矩阵块矩阵中的k
′a″″″
,b
″″″
与k
′a″″′
,b
″″′
进行位置互换,再将k
′a″″″
,b
″″″
和k
′a″″′
,b
″″′
从矩阵块集合中删除,更新矩阵块集合,执行下一步;
[0077]
若k
′a″″″
,b
″″″
不属于矩阵块集合,则执行下一步;
[0078]
s76,判断a
″″
与a

间的大小关系:
[0079]
若a
″″
≥a

,则执行下一步;
[0080]
若a
″″
《a

,则a
″″
=a
″″
+1,返回步骤s72;
[0081]
s77,判断b
″″
与b

间的大小关系:
[0082]
若b
″″
≥b

,则此时得到行列字符串调整矩阵:
[0083][0084]
其中,k
1,1

表示行列字符串调整矩阵中的第1行第1列矩阵块;k
1,2

表示行列字符串调整矩阵中的第1行第2列矩阵块;k
1,3

表示行列字符串调整矩阵中的第1行第3列矩阵块;k
1,b


表示行列字符串调整矩阵中的第1行第b

列矩阵块;k
2,1

表示行列字符串调整矩阵中的第2行第1列矩阵块;k
2,2

表示行列字符串调整矩阵中的第2行第2列矩阵块;k
2,3

表示行列字符串调整矩阵中的第2行第3列矩阵块;k
2,b


表示行列字符串调整矩阵中的第2行第b

列矩阵块;k
3,1

表示行列字符串调整矩阵中的第3行第1列矩阵块;k
3,2

表示行列字符
串调整矩阵中的第3行第2列矩阵块;k
3,3

表示行列字符串调整矩阵中的第3行第3列矩阵块;k
3,b


表示行列字符串调整矩阵中的第3行第b

列矩阵块;ka′
,1

表示行列字符串调整矩阵中的第a

行第1列矩阵块;ka′
,2

表示行列字符串调整矩阵中的第a

行第2列矩阵块;ka′
,3

表示行列字符串调整矩阵中的第a

行第3列矩阵块;ka′
,b


表示行列字符串调整矩阵中的第a

行第b

列矩阵块;
[0085]
将行列字符串调整矩阵改为一般式的矩阵;
[0086]
若b
″″
《b

,则b
″″
=b
″″
+1,返回步骤s72。
[0087]
s76,s77,也可以为:
[0088]
s76,判断b
″″
与b

间的大小关系:
[0089]
若b
″″
≥b

,则执行下一步;
[0090]
若b
″″
《b

,则b
″″
=b
″″
+1,返回步骤s72;
[0091]
s77,判断a
″″
与a

间的大小关系:
[0092]
若a
″″
≥a

,则此时得到行列字符串调整矩阵:
[0093][0094]
将行列字符串调整矩阵改为一般式的矩阵;
[0095]
若a
″″
《a

,则a
″″
=a
″″
+1,返回步骤s72。
[0096]
假设三色行列字符串矩阵为8
×
6三色行列字符串矩阵,矩阵块矩阵为4
×
2矩阵块矩阵,a

=2,b

=1;
[0097]
此时若三色行列字符串矩阵为
[0098]
对应的矩阵块矩阵为
[0099]
即是
[0100][0101][0102][0103]
行列字符串调整矩阵为:
[0104][0105]
将行列字符串调整矩阵改为一般式的矩阵:
[0106][0107]
在本发明的一种优选实施方式中,在步骤s72中,选择三色行列字符串矩阵的第a
″″
行第b
″″
列三色行列字符串所在的矩阵块ka″″′
,b
″″′
的方法为:
[0108][0109][0110]
其中,表示向上取整;if表示逻辑条件如果;∈表示元素与集合的逻辑符号,属于;n表示自然数所组成的集合;int()表示取整数部分;表示元素与集合的逻辑符号,不属于;
[0111]
例如,第一步,假设获取待导出图像的宽度为0.15mm、高度为0.1mm和分辨率为200cm-1,此时纵向像素总个数a=g
picture
×rpicture
=0.01
×
200=2,横向像素总个数b=k
picture
×rpicture
=0.015
×
200=3。
[0112]
第二步,待导出图像的颜色矩阵为2
×
3矩阵:
[0113][0114]
该待导出图像的颜色矩阵的颜色值均为八进制;
[0115]
数值-字符进制对照表
[0116]
数值012345678910111213字符0123456789abcd数值1415161718192021222324252627字符efghijklmnopqr数值2829303132333435363738394041
字符stuvwxyzabcdef数值4243444546474849505152535455字符ghijklmnopqrst数值565758596061
ꢀꢀꢀꢀꢀꢀꢀꢀ
字符uvwxyz
ꢀꢀꢀꢀꢀꢀꢀꢀ
[0117]
第三步,将2
×
3矩阵变为3
×
3矩阵:
[0118][0119]
第四步,将八进制矩阵变为十进制矩阵:
[0120][0121]
第五步,将十进制矩阵变为十六进制矩阵:
[0122][0123]
第六步,将十六进制矩阵变为位数(此处为四位,相当于r、g、b均为16位深度rgb,也可以是8位深度rgb,8位深度rgb的十六进制位数为2位,还可以是32位深度rgb,32位深度rgb的十六进制位数为8位)相同的十六进制矩阵:
[0124][0125]
第七步,将位数相同的十六进制矩阵变为三色字符串矩阵:
[0126][0127]
第八步,生成颜色矩阵的行号矩阵:
[0128][0129]
第九步,将行号矩阵变为十进制矩阵:
[0130][0131]
第十步,将十进制矩阵变为十六进制矩阵:
[0132][0133]
第十一步,将十六进制矩阵变为四位十六进制矩阵:
[0134][0135]
第十二步,将四位十六进制矩阵变为行列字符串矩阵:
[0136][0137]
第十三步,将三色字符串矩阵与行列字符串矩阵生成行列三色字符串矩阵:
[0138][0139]
第十四步,将行列三色字符串矩阵变为六十二进制矩阵:
[0140][0141]
第十五步,将六十二进制矩阵变为十二位六十二进制矩阵,即为三色行列字符串矩阵:
[0142][0143]
第十六步,将矩阵中的字符串按照从左至右、从上到下的顺序写入文本,得到字符串文本:
[0144]
0lyhoz1k4n050lyj6sjdeqgx0lykpuirsnhr0hxnwg17zhb70hxpob4p0xbv0hxqr198sqdv13w48fzps1eu13w5qb6nfbp213w6iwcucmpa。
[0145]
也可以是从右至左、从上到下的顺序写入文本,得到字符串文本:
[0146]
0lykpuirsnhr0lyj6sjdeqgx0lyhoz1k4n050hxqr198sqdv0hxpob4p0xbv0hxnwg17zhb713w6iwcucmpa13w5qb6nfbp213w48fzps1eu。
[0147]
还可以是从上至下、从左到右的顺序写入文本,得到字符串文本:
[0148]
0lyhoz1k4n050hxnwg17zhb713w48fzps1eu0lyj6sjdeqgx0hxpob4p0xbv13w5qb6nfbp20lykpuirsnhr0hxqr198sqdv13w6iwcucmpa。其它写入顺序不再列举。
[0149]
上述第十六步,也可以为以下步骤:
[0150]
第十六步,对三色行列字符串矩阵中的字符串进行行列调整,得到行列字符串调整矩阵:
[0151]
此时a

=2,b

=1。
[0152]
第十七步,将矩阵中的字符串按照从左至右、从上到下的顺序写入文本,得到字符串文本:
[0153]
0lyhoz1k4n050lyj6sjdeqgx0lykpuirsnhr13w5qb6nfbp213w6iwcucmpa0hxqr198sqdv13w48fzps1eu0hxnwg17zhb70hxpob4p0xbv。
[0154]
上述第十六步,也可以为以下步骤:
[0155]
第十六步,将三色行列字符串矩阵通过随机的方式(随机方式不宜解密,不推荐这种方式)变为随机矩阵:
[0156][0157]
第十七步,将矩阵中的字符串按照从左至右、从上到下的顺序写入文本,得到字符串文本:
[0158]
0hxpob4p0xbv13w6iwcucmpa13w48fzps1eu13w5qb6nfbp20lyhoz1k4n050hxqr198sqdv0lykpuirsnhr0hxnwg17zhb70lyj6sjdeqgx。
[0159]
在本发明的一种优选实施方式中,在步骤s6中,三色行列字符串矩阵的得到方法包括以下步骤:
[0160]
s60,令行排数a
″′
=1,列排数b
″′
=1;
[0161]
s61,获取行列三色字符串矩阵中的第a
″′
行第b
″′
列行列三色字符串;
[0162]
s62,将行列三色字符串矩阵中的第a
″′
行第b
″′
列行列三色字符串转换为i进制,i》c;优选的,i=62,c=16。
[0163]
s63,判断b
″′
与b间的大小关系:
[0164]
若b
″′
≥b,则执行下一步;
[0165]
若b
″′
《b,则b
″′
=b
″′
+1,返回步骤s61;
[0166]
s64,判断a
″′
与a间的大小关系:
[0167]
若a
″′
≥a,则构成三色列行字符串矩阵:
[0168]
执行下一步;
[0169]
若a
″′
《a,则a
″′
=a
″′
+1,返回步骤s61;
[0170]
s65,统计三色列行字符串矩阵中各行各列字符串的位数,将三色列行字符串矩阵中各行各列字符串的位数按照从大到小的顺序依次排列,取排在首位字符串的位数,记作h,h表示排在首位字符串的位数;
[0171]
s66,对三色列行字符串矩阵中各行各列字符串的位数不等于h,则在三色列行字符串矩阵中各行各列字符串的左侧添加标识符,标识符为0,也可以为除大写字母a~z、小写字母a~z和数字0~9以外的其它字符,例如!、@、#、$、z、%、^、&、*等等,使三色列行字符串矩阵中各行各列字符串的位数均等于h;此时即得到a
×
b三色行列字符串矩阵。
[0172]
在本发明的一种优选实施方式中,根据三色字符串矩阵与行列字符串矩阵生成行列三色字符串矩阵的方法包括以下步骤:
[0173]
s51,令行组合数a

=1,列组合数b

=1;
[0174]
s52,将三色字符串矩阵中的第a

行第b

列的三色字符串放置在行列字符串矩阵中的第a

行第b

列的行列字符串右侧,也可以将三色字符串矩阵中的第a

行第b

列的三色字符串放置在行列字符串矩阵中的第a

行第b

列的行列字符串左侧,此时构成行列三色字符串矩阵中的第a

行第b

列行列三色字符串;
[0175]
s53,判断若b

≥b,则执行下一步;
[0176]
若b

《b,则b

=b

+1,返回步骤s52;
[0177]
s54,判断a

与a间的大小关系:
[0178]
若a

≥a,则构成行列三色字符串矩阵:
[0179][0180]
若a

《a,则a

=a

+1,返回步骤s52。
[0181]
在本发明的一种优选实施方式中,根据颜色矩阵的行列数生成行列字符串矩阵的方法包括以下步骤:
[0182]
s40,令行序数a

=1,列序数b

=1;
[0183]
s41,获取颜色值rgba′
,b

的矩阵行列号,矩阵行列号包括行号数和列号数;
[0184]
s42,判断行号数和列号数是否为c进制:
[0185]
若行号数和列号数均为c进制,则执行下一步;
[0186]
若行号数和列号数不全为c进制,则将行号数和列号数变换为c进制;执行下一步;
[0187]
s43,判断行号数和列号数是否为h位数:
[0188]
若行号数和列号数均为h位数,优选的h=4,则执行下一步;
[0189]
若行号数和列号数不全为h位数,则将行号数和列号数变换为h位数;将行号数和列号数变换为h位数的方法为:在行号数和列号数的左侧补充标志符,标志符为0,使行号数和列号数满足h位数,执行下一步;
[0190]
s44,将行号数放置在列号数的左侧,此时构成第a

行第b

列行列字符串;
[0191]
s45,判断b

与b间的大小关系:
[0192]
若b

≥b,则执行下一步;
[0193]
若b

《b,则b

=b

+1,返回步骤s41;
[0194]
s46,判断a

与a间的大小关系:
[0195]
若a

≥a,则构成行列字符串矩阵:
[0196][0197]
其中,r1表示颜色值rgb
1,1
的行号数所对应的c进制行号数;c1表示颜色值rgb
1,1
的列号数所对应的c进制列号数;r1c1表示r1、c1按照从左向右排列所得的第1行第1列行列字符串;c2表示颜色值rgb
1,2
的列号数所对应的c进制列号数;r1c2表示r1、c2按照从左向右排列所得的第1行第2列行列字符串;c3表示颜色值rgb
1,3
的列号数所对应的c进制列号数;r1c3表示r1、c3按照从左向右排列所得的第1行第3列行列字符串;cb表示颜色值rgb
1,b
的列号数所对应的c进制列号数;r1cb表示r1、cb按照从左向右排列所得的第1行第b列行列字符串;r2表示颜色值rgb
2,1
的行号数所对应的c进制行号数;r2c1表示r2、c1按照从左向右排列所得的第2行第1列行列字符串;r2c2表示r2、c2按照从左向右排列所得的第2行第2列行列字符串;r2c3表示r2、c3按照从左向右排列所得的第2行第3列行列字符串;r2cb表示r2、cb按照从左向右排列所得的第2行第b列行列字符串;r3c1表示r3、c1按照从左向右排列所得的第3行第1列行列字符串;r3c2表示r3、c2按照从左向右排列所得的第3行第2列行列字符串;r3c3表示r3、c3按照从左向右排列所得的第3行第3列行列字符串;r3cb表示r3、cb按照从左向右排列所得的第3行第b列行列字符串;rac1表示ra、c1按照从左向右排列所得的第a行第1列行列字符串;rac2表示ra、c2按照从左向右排列所得的第a行第2列行列字符串;rac3表示ra、c3按照从左向右排列所得的第a行第3列行列字符串;racb表示ra、cb按照从左向右排列所得的第a行第b列行列字符串;
[0198]
若a

《a,则a

=a

+1,返回步骤s41。
[0199]
在本发明的一种优选实施方式中,根据颜色矩阵生成三色字符串矩阵的方法包括以下步骤:
[0200]
s31,令行增数a=1,列增数b=1;
[0201]
s32,判断rgb
a,b
中的红色值、绿色值和蓝色值是否为c进制:
[0202]
若rgb
a,b
中的红色值、绿色值和蓝色值均为c进制,则执行下一步;
[0203]
若rgb
a,b
中的红色值、绿色值和蓝色值不全为c进制,则将rgb
a,b
中的红色值、绿色值和蓝色值变换为c进制;执行下一步;
[0204]
s33,判断rgb
a,b
中的红色值、绿色值和蓝色值是否为d位数:
[0205]
若rgb
a,b
中的红色值、绿色值和蓝色值均为d位数,优选的,d=4,则执行下一步;
[0206]
若rgb
a,b
中的红色值、绿色值和蓝色值不全为d位数,则将rgb
a,b
中的红色值、绿色
值和蓝色值变换为d位数;执行下一步;
[0207]
s34,将rgb
a,b
中的绿色值放置在rgb
a,b
中的红色值的右侧,将rgb
a,b
中的蓝色值放置在rgb
a,b
中的绿色值的右侧,此时构成第a行第b列三色字符串;
[0208]
s35,判断b与b间的大小关系:
[0209]
若b≥b,则执行下一步;
[0210]
若b《b,则b=b+1,返回步骤s32;
[0211]
s36,判断a与a间的大小关系:
[0212]
若a≥a,则构成三色字符串矩阵:
[0213][0214]
其中,rgb
1,1
(r)c表示rgb
1,1
中的c进制红色值;rgb
1,1
(g)c表示rgb
1,1
中的c进制绿色值;rgb
1,1
(b)c表示rgb
1,1
中的c进制蓝色值;rgb
1,1
(r)crgb
1,1
(g)crgb
1,1
(b)c表示红色值rgb
1,1
(r)c、绿色值rgb
1,1
(g)c和蓝色值rgb
1,1
(b)c按照从左向右排列所得的第1行第1列三色字符串;rgb
1,2
(r)c表示rgb
1,2
中的c进制红色值;rgb
1,2
(g)c表示rgb
1,2
中的c进制绿色值;rgb
1,2
(b)c表示rgb
1,2
中的c进制蓝色值;rgb
1,2
(r)crgb
1,2
(g)crgb
1,2
(b)c表示红色值rgb
1,2
(r)c、绿色值rgb
1,2
(g)c和蓝色值rgb
1,2
(b)c按照从左向右排列所得的第1行第2列三色字符串;rgb
1,3
(r)c表示rgb
1,3
中的c进制红色值;rgb
1,3
(g)c表示rgb
1,3
中的c进制绿色值;rgb
1,3
(b)c表示rgb
1,3
中的c进制蓝色值;rgb
1,3
(r)crgb
1,3
(g)crgb
1,3
(b)c表示红色值rgb
1,3
(r)c、绿色值rgb
1,3
(g)c和蓝色值rgb
1,3
(b)c按照从左向右排列所得的第1行第3列三色字符串;rgb
1,b
(r)c表示rgb
1,b
中的c进制红色值;rgb
1,b
(g)c表示rgb
1,b
中的c进制绿色值;rgb
1,b
(b)c表示rgb
1,b
中的c进制蓝色值;rgb
1,b
(r)crgb
1,b
(g)crgb
1,b
(b)c表示红色值rgb
1,b
(r)c、绿色值rgb
1,b
(g)c和蓝色值rgb
1,b
(b)c按照从左向右排列所得的第1行第b列三色字符串;rgb
2,1
(r)c表示rgb
2,1
中的c进制红色值;rgb
2,1
(g)c表示rgb
2,1
中的c进制绿色值;rgb
2,1
(b)c表示rgb
2,1
中的c进制蓝色值;rgb
2,1
(r)crgb
2,1
(g)crgb
2,1
(b)c表示红色值rgb
2,1
(r)c、绿色值rgb
2,1
(g)c和蓝色值rgb
2,1
(b)c按照从左向右排列所得的第2行第1列三色字符串;rgb
2,2
(r)c表示rgb
2,2
中的c进制红色值;rgb
2,2
(g)c表示rgb
2,2
中的c进制绿色值;rgb
2,2
(b)c表示rgb
2,2
中的c进制蓝色值;rgb
2,2
(r)crgb
2,2
(g)crgb
2,2
(b)c表示红色值rgb
2,2
(r)c、绿色值rgb
2,2
(g)c和蓝色值rgb
2,2
(b)c按照从左向右排列所得的第2行第2列三色字符串;rgb
2,3
(r)c表示rgb
2,3
中的c进制红色值;rgb
2,3
(g)c表示rgb
2,3
中的c进制绿色值;rgb
2,3
(b)c表示rgb
2,3
中的c进制蓝色值;rgb
2,3
(r)crgb
2,3
(g)crgb
2,3
(b)c表示红色值rgb
2,3
(r)c、绿色值rgb
2,3
(g)c和蓝色值rgb
2,3
(b)c按照从左向右排列所得的第2行第3列三色字符串;rgb
2,b
(r)c表示rgb
2,b
中的c进制红色值;rgb
2,b
(g)c表示rgb
2,b
中的c进制绿色值;rgb
2,b
(b)c表示rgb
2,b
中的c进制蓝色值;rgb
2,b
(r)crgb
2,b
(g)crgb
2,b
(b)c表示红色值rgb
2,b
(r)c、绿色值rgb
2,b
(g)c和蓝色值rgb
2,b
(b)c按照从左向右排列所得的第2行第b列三色字符串;rgb
3,1
(r)c表示rgb
3,1
中的c进制红色值;rgb
3,1
(g)c表示rgb
3,1
中的c进制绿色值;rgb
3,1
(b)c表示rgb
3,1
中的c进制蓝色值;rgb
3,1
(r)crgb
3,1
(g)crgb
3,1
(b)c表示红色值rgb
3,1
(r)c、绿色值rgb
3,1
(g)c和蓝色值rgb
3,1
(b)c按照从左向右排列所得的第3行第1列三色字符串;rgb
3,2
(r)c表示rgb
3,2
中的c进制红色值;rgb
3,2
(g)c表示rgb
3,2
中的c进制绿色值;rgb
3,2
(b)c表示rgb
3,2
中的c进制蓝色值;rgb
3,2
(r)crgb
3,2
(g)crgb
3,2
(b)c表示红色值rgb
3,2
(r)c、绿色值rgb
3,2
(g)c和蓝色值rgb
3,2
(b)c按照从左向右排列所得的第3行第2列三色字符串;rgb
3,3
(r)c表示rgb
3,3
中的c进制红色值;rgb
3,3
(g)c表示rgb
3,3
中的c进制绿色值;rgb
3,3
(b)c表示rgb
3,3
中的c进制蓝色值;rgb
3,3
(r)crgb
3,3
(g)crgb
3,3
(b)c表示红色值rgb
3,3
(r)c、绿色值rgb
3,3
(g)c和蓝色值rgb
3,3
(b)c按照从左向右排列所得的第3行第3列三色字符串;rgb
3,b
(r)c表示rgb
3,b
中的c进制红色值;rgb
3,b
(g)c表示rgb
3,b
中的c进制绿色值;rgb
3,b
(b)c表示rgb
3,b
中的c进制蓝色值;rgb
3,b
(r)crgb
3,b
(g)crgb
3,b
(b)c表示红色值rgb
3,b
(r)c、绿色值rgb
3,b
(g)c和蓝色值rgb
3,b
(b)c按照从左向右排列所得的第3行第b列三色字符串;rgb
a,1
(r)c表示rgb
a,1
中的c进制红色值;rgb
a,1
(g)c表示rgb
a,1
中的c进制绿色值;rgb
a,1
(b)c表示rgb
a,1
中的c进制蓝色值;rgb
a,1
(r)crgb
a,1
(g)crgb
a,1
(b)c表示红色值rgb
a,1
(r)c、绿色值rgb
a,1
(g)c和蓝色值rgb
a,1
(b)c按照从左向右排列所得的第a行第1列三色字符串;rgb
a,2
(r)c表示rgb
a,2
中的c进制红色值;rgb
a,2
(g)c表示rgb
a,2
中的c进制绿色值;rgb
a,2
(b)c表示rgb
a,2
中的c进制蓝色值;rgb
a,2
(r)crgb
a,2
(g)crgb
a,2
(b)c表示红色值rgb
a,2
(r)c、绿色值rgb
a,2
(g)c和蓝色值rgb
a,2
(b)c按照从左向右排列所得的第a行第2列三色字符串;rgb
a,3
(r)c表示rgb
a,3
中的c进制红色值;rgb
a,3
(g)c表示rgb
a,3
中的c进制绿色值;rgb
a,3
(b)c表示rgb
a,3
中的c进制蓝色值;rgb
a,3
(r)crgb
a,3
(g)crgb
a,3
(b)c表示红色值rgb
a,3
(r)c、绿色值rgb
a,3
(g)c和蓝色值rgb
a,3
(b)c按照从左向右排列所得的第a行第3列三色字符串;rgb
a,b
(r)c表示rgb
a,b
中的c进制红色值;rgb
a,b
(g)c表示rgb
a,b
中的c进制绿色值;rgb
a,b
(b)c表示rgb
a,b
中的c进制蓝色值;rgb
a,b
(r)crgb
a,b
(g)crgb
a,b
(b)c表示红色值rgb
a,b
(r)c、绿色值rgb
a,b
(g)c和蓝色值rgb
a,b
(b)c按照从左向右排列所得的第a行第b列三色字符串;
[0215]
若a《a,则a=a+1,返回步骤s32。
[0216]
在本发明的一种优选实施方式中,在步骤s33中,将rgb
a,b
中的红色值、绿色值和蓝色值变换为d位数的方法包括以下步骤:
[0217]
s331,若||rgb
a,b
(r)||=d,rgb
a,b
(r)表示rgb
a,b
中的红色值,|| ||表示求数值的位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则执行下一步;
[0218]
若||rgb
a,b
(r)||<d,rgb
a,b
(r)表示rgb
a,b
中的红色值,|| ||表示求数值的位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则在rgb
a,b
(r)的左侧补充d-||rgb
a,b
(r)||个标识符,标识符为0;
[0219]
s332,若||rgb
a,b
(g)||=d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,|| ||表示求数值的位数,||rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则执行下一步;
[0220]
若||rgb
a,b
(g)||<d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,|| ||表示求数值的位数,||rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则在rgb
a,b
(g)的左侧补充d-||rgb
a,b
(g)||个标识符;
[0221]
s333,若||rgb
a,b
(b)||=d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,|| ||表示求数值的位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则执行下一步;
[0222]
若||rgb
a,b
(b)||<d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,|| ||表示求数值的位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则在rgb
a,b
(b)的左侧补充d-||rgb
a,b
(b)||个标识符;
[0223]
或者,s331,若||rgb
a,b
(r)||=d,rgb
a,b
(r)表示rgb
a,b
中的红色值,|| ||表示求数值的位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则执行下一步;
[0224]
若||rgb
a,b
(r)||<d,rgb
a,b
(r)表示rgb
a,b
中的红色值,|| ||表示求数值的位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则在rgb
a,b
(r)的左侧补充d-||rgb
a,b
(r)||个标识符,标识符为0;
[0225]
s332,若||rgb
a,b
(b)||=d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,|| ||表示求数值的位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则执行下一步;
[0226]
若||rgb
a,b
(b)||<d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,|| ||表示求数值的位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则在rgb
a,b
(b)的左侧补充d-||rgb
a,b
(b)||个标识符;
[0227]
s333,若||rgb
a,b
(g)||=d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,|| ||表示求数值的位数,||rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则执行下一步;
[0228]
若||rgb
a,b
(g)||<d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,|| ||表示求数值的位数,||rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则在rgb
a,b
(g)的左侧补充d-||rgb
a,b
(g)||个标识符;
[0229]
或者,s331,若||rgb
a,b
(g)||=d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,|| ||表示求数值的位数,||rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则执行下一步;
[0230]
若||rgb
a,b
(g)||<d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,|| ||表示求数值的位数,||rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则在rgb
a,b
(g)的左侧补充d-||rgb
a,b
(g)||个标识符,标识符为0;
[0231]
s332,若||rgb
a,b
(b)||=d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,|| ||表示求数值的位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则执行下一步;
[0232]
若||rgb
a,b
(b)||<d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,|| ||表示求数值的位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则在rgb
a,b
(b)的左侧补充d-||rgb
a,b
(b)||个标识符;
[0233]
s333,若||rgb
a,b
(r)||=d,rgb
a,b
(r)表示rgb
a,b
中的红色值,|| ||表示求数值的位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则执行下一步;
[0234]
若||rgb
a,b
(r)||<d,rgb
a,b
(r)表示rgb
a,b
中的红色值,|| ||表示求数值的位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则在rgb
a,b
(r)的左侧补充d-||rgb
a,b
(r)||个标识符;
[0235]
或者,s331,若||rgb
a,b
(g)||=d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,|| ||表示求数值的位数,||rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则执行下一步;
[0236]
若||rgb
a,b
(g)||<d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,|| ||表示求数值的位数,||rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则在rgb
a,b
(g)的左侧补充d-||rgb
a,b
(g)||个标识符,标识符为0;
[0237]
s332,若||rgb
a,b
(r)||=d,rgb
a,b
(r)表示rgb
a,b
中的红色值,|| ||表示求数值的位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则执行下一步;
[0238]
若||rgb
a,b
(r)||<d,rgb
a,b
(r)表示rgb
a,b
中的红色值,|| ||表示求数值的位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则在rgb
a,b
(r)的左侧补充d-||rgb
a,b
(r)||个标识符;
[0239]
s333,若||rgb
a,b
(b)||=d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,|| ||表示求数值的
位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则执行下一步;
[0240]
若||rgb
a,b
(b)||<d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,|| ||表示求数值的位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则在rgb
a,b
(b)的左侧补充d-||rgb
a,b
(b)||个标识符;
[0241]
或者,s331,若||rgb
a,b
(b)||=d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,|| ||表示求数值的位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则执行下一步;
[0242]
若||rgb
a,b
(b)||<d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,|| ||表示求数值的位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则在rgb
a,b
(b)的左侧补充d-||rgb
a,b
(b)||个标识符,标识符为0;
[0243]
s332,若||rgb
a,b
(r)||=d,rgb
a,b
(r)表示rgb
a,b
中的红色值,|| ||表示求数值的位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则执行下一步;
[0244]
若||rgb
a,b
(r)||<d,rgb
a,b
(r)表示rgb
a,b
中的红色值,|| ||表示求数值的位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则在rgb
a,b
(r)的左侧补充d-||rgb
a,b
(r)||个标识符;
[0245]
s333,若||rgb
a,b
(g)||=d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,|| ||表示求数值的位数,||rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则执行下一步;
[0246]
若||rgb
a,b
(g)||<d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,|| ||表示求数值的位数,||rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则在rgb
a,b
(g)的左侧补充d-||rgb
a,b
(g)||个标识符;
[0247]
或者,s331,若||rgb
a,b
(b)||=d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,|| ||表示求数值的位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则执行下一步;
[0248]
若||rgb
a,b
(b)||<d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,|| ||表示求数值的位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则在rgb
a,b
(b)的左侧补充d-||rgb
a,b
(b)||个标识符,标识符为0;
[0249]
s332,若||rgb
a,b
(g)||=d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,|| ||表示求数值的位数,||rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则执行下一步;
[0250]
若||rgb
a,b
(g)||<d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,|| ||表示求数值的位数,||rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则在rgb
a,b
(g)的左侧补充d-||rgb
a,b
(g)||个标识符;
[0251]
s333,若||rgb
a,b
(r)||=d,rgb
a,b
(r)表示rgb
a,b
中的红色值,|| ||表示求数值的位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则执行下一步;
[0252]
若||rgb
a,b
(r)||<d,rgb
a,b
(r)表示rgb
a,b
中的红色值,|| ||表示求数值的位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则在rgb
a,b
(r)的左侧补充d-||rgb
a,b
(r)||个标识符。
[0253]
或者,s331,若||rgb
a,b
(r)||=d,rgb
a,b
(r)表示rgb
a,b
中的红色值,|| ||表示求数值的位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则执行下一步;
[0254]
若||rgb
a,b
(r)||<d,rgb
a,b
(r)表示rgb
a,b
中的红色值,|| ||表示求数值的位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则在rgb
a,b
(r)的左侧补充d-||rgb
a,b
(r)||个标识符,标识符为0;
[0255]
s332,若||rgb
a,b
(g)||=d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,|| ||表示求数值的位数,||rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则执行下一步;
[0256]
若||rgb
a,b
(g)||<d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,|| ||表示求数值的位数,||rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则在rgb
a,b
(g)的左侧补充d-||rgb
a,b
(g)||个标识符;
[0257]
s333,若||rgb
a,b
(b)||=d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,|| ||表示求数值的位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则执行下一步;
[0258]
若||rgb
a,b
(b)||<d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,|| ||表示求数值的位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则在rgb
a,b
(b)的左侧补充d-||rgb
a,b
(b)||个标识符;
[0259]
或者,s331,若||rgb
a,b
(r)||=d,rgb
a,b
(r)表示rgb
a,b
中的红色值,|| ||表示求数值的位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则执行下一步;
[0260]
若||rgb
a,b
(r)||<d,rgb
a,b
(r)表示rgb
a,b
中的红色值,|| ||表示求数值的位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则在rgb
a,b
(r)的左侧补充d-||rgb
a,b
(r)||个标识符,标识符为0;
[0261]
s332,若||rgb
a,b
(g)||=d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,|| ||表示求数值的位数,||rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则执行下一步;
[0262]
若||rgb
a,b
(g)||<d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,|| ||表示求数值的位数,||rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则在rgb
a,b
(g)的左侧补充d-||rgb
a,b
(g)||个标识符;
[0263]
s333,若||rgb
a,b
(b)||=d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,|| ||表示求数值的位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则执行下一步;
[0264]
若||rgb
a,b
(b)||<d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,|| ||表示求数值的位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则在rgb
a,b
(b)的左侧补充d-||rgb
a,b
(b)||个标识符;
[0265]
在本发明的一种优选实施方式中,在步骤s32中,将rgb
a,b
中的红色值、绿色值和蓝色值变换为c进制的方法为:
[0266]
s321,获取rgb
a,b
中的红色值、绿色值和蓝色值的位数和进制;
[0267]
s322,根据步骤s321获取的红色值、绿色值和蓝色值的位数和进制,计算得到红色第一值rgb
a,b
(r)|
10
、绿色第一值rgb
a,b
(g)|
10
和蓝色第一值rgb
a,b
(b)|
10
,红色第一值rgb
a,b
(r)|
10
、绿色第一值rgb
a,b
(g)|
10
和蓝色第一值rgb
a,b
(b)|
10
的计算方法为:
[0268][0269]
其中,rgb
a,b
(c)|
10
表示第一值,c=r、g和b,c为r时,rgb
a,b
(c)|
10
表示红色第一值,c为g时,rgb
a,b
(c)|
10
表示绿色第一值,c为b时,rgb
a,b
(c)|
10
表示蓝色第一值;
[0270]
[[rgb
a,b
(c)]]1表示对应的红色值、绿色值和蓝色值按照从右向左第1位所对应的值;
[0271]
c为r时,[[rgb
a,b
(c)]]1表示红色值按照从右向左第1位所对应的值;
[0272]
c为g时,[[rgb
a,b
(c)]]1表示绿色值按照从右向左第1位所对应的值;
[0273]
c为b时,[[rgb
a,b
(c)]]1表示蓝色值按照从右向左第1位所对应的值;
[0274]
[[rgb
a,b
(c)]]2表示对应的红色值、绿色值和蓝色值按照从右向左第2位所对应的值;
[0275]
c为r时,[[rgb
a,b
(c)]]2表示红色值按照从右向左第2位所对应的值;
[0276]
c为g时,[[rgb
a,b
(c)]]2表示绿色值按照从右向左第2位所对应的值;
[0277]
c为b时,[[rgb
a,b
(c)]]2表示蓝色值按照从右向左第2位所对应的值;
[0278]
[[rgb
a,b
(c)]]3表示对应的红色值、绿色值和蓝色值按照从右向左第3位所对应的值;
[0279]
c为r时,[[rgb
a,b
(c)]]3表示红色值按照从右向左第3位所对应的值;
[0280]
c为g时,[[rgb
a,b
(c)]]3表示绿色值按照从右向左第3位所对应的值;
[0281]
c为b时,[[rgb
a,b
(c)]]3表示蓝色值按照从右向左第3位所对应的值;
[0282]
表示对应的红色值、绿色值和蓝色值按照从右向左第||rgb
a,b
(c)||位所对应的值;||rgb
a,b
(c)||表示rgb
a,b
中的对应的红色值、绿色值和蓝色值的位数;c为r时,||rgb
a,b
(c)||表示rgb
a,b
中的红色值的位数;c为g时,||rgb
a,b
(c)||表示rgb
a,b
中的绿色值的位数;c为b时,||rgb
a,b
(c)||表示rgb
a,b
中的蓝色值的位数;
[0283]
c为r时,表示红色值按照从右向左第||rgb
a,b
(c)||位所对应的值;
[0284]
c为g时,表示绿色值按照从右向左第||rgb
a,b
(c)||位所对应的值;
[0285]
c为b时,表示蓝色值按照从右向左第||rgb
a,b
(c)||位所对应的值;
[0286]
《c》表示对应的红色值、绿色值和蓝色值的进制数值;c为r时,《c》表示红色值的进制数值;c为g时,《c》表示绿色值的进制数值;c为b时,《c》表示蓝色值的进制数值;
[0287]
s323,根据步骤s322中得到的红色第一值rgb
a,b
(r)|
10
、绿色第一值rgb
a,b
(g)|
10
和蓝色第一值rgb
a,b
(b)|
10
,计算得到红色第二值rgb
a,b
(r)|c、绿色第二值rgb
a,b
(g)|c和蓝色第二值rgb
a,b
(b)|c,红色第二值rgb
a,b
(r)|c、绿色第二值rgb
a,b
(g)|c和蓝色第二值rgb
a,b
(b)|c的计算方法包括以下步骤:
[0288]
s3231,令初始值e0=rgb
a,b
(c)|
10
,递增第一值e=1;递增第二值f=1;
[0289][0290]
其中,ee表示下一次计算值;e
e-1
表示本次计算值;c表示c进制对应的数值;表示向下取整;if表示逻辑条件如果;∈表示元素与集合的逻辑符号,属于;n表示自然数所组
成的集合;int()表示取整数部分;表示元素与集合的逻辑符号,不属于;
[0291]
s3233,判断ee与c的关系:
[0292]
若ee≥c,则e=e+1,返回步骤s3232;
[0293]
若ee《c-1,则执行下一步;
[0294]
s3234,ff=e
f-1
%c,
[0295]
其中,ff表示第二值从右到左第f位所对应的数值;e
f-1
表示替换值;%表示取余数部分;c表示c进制对应的数值;
[0296]
s3235,判断f与e的关系:
[0297]
若f≥e,则第二值即为eefe…
f3f2f1;其中,ee表示下一次计算值;fe表示第二值从右到左第e位所对应的数值;f3表示第二值从右到左第3位所对应的数值;f2表示第二值从右到左第2位所对应的数值;f1表示第二值从右到左第1位所对应的数值;
[0298]
若f《e,则f=f+1,返回步骤s3234;
[0299]
例如,将rgb
a,b
中的红色值为八进制的333333变换为十六进制为例(c=16):
[0300]
第一步,
[0301]
第二步,e0=112347,e=1,f=1。
[0302]
第三步,由于因此所以
[0303]
第四步,由于e1=7021≥c=16,因此e=e+1=1+1=2。
[0304]
第五步,由于因此所以
[0305]
第六步,由于e2=438≥c=16,因此e=e+1=2+1=3。
[0306]
第七步,由于因此所以
[0307]
第八步,由于e3=27≥c=16,因此e=e+1=3+1=4。
[0308]
第九步,由于因此所以
[0309]
第十步,由于e4=11<c=16,执行下一步,此时e4=11,e=4,f=1。
[0310]
第十一步,
[0311]
第十二步,由于f=1<e=4,因此f=f+1=1+1=2。
[0312]
第十三步,
[0313]
第十四步,由于f=2<e=4,因此f=f+1=2+1=3。
[0314]
第十五步,
[0315]
第十六步,由于f=3<e=4,因此f=f+1=3+1=4。
[0316]
第十七步,
[0317]
第十八步,由于f=4≥e=4,因此执行下一步,此时e=4,f1=11,f2=13,f3=6,f4=11,e4=1;对应的十六进制为f1=b,f2=d,f3=6,f4=b,e4=1。
[0318]
第十九步,红色第二值rgb
a,b
(r)|
16
即为eefe…
f3f2f1=e4f4f3f2f1=1b6db。
[0319]
该地理图像的输入方法,包括以下步骤:
[0320]
s1,构建两个a
″′×b″′
矩阵,分别为第一矩阵和第二矩阵,其中,a
″′
、b
″′
可以是a
″′
=b
″′
=max(a,b),max(,)表示取最大者,也可以是a
″′
=a,b
″′
=b,a表示待导出图像纵向像素总个数,a=g
picture
×rpicture
;b表示待导出图像横向像素总个数,b=k
picture
×rpicture
;g
picture
表示待导出图像的高度r
picture
表示待导出图像的分辨率,k
picture
表示待导出图像的宽度;
[0321]
s2,将字符串文本中的字符串依次分割成每个字符串位数为j表示字符串文本中字符串的总位数;
[0322]
s3,将分割后的字符串按照从左至右、从上到下的顺序依次写入第一矩阵中,得到第一导入矩阵;
[0323]
s4,将第一导入矩阵中的字符串变为c进制的字符串,得到位数相同的c进制第一导入矩阵;
[0324]
s5,将第一导入矩阵中的每个字符串按照从右至左第1到d位作为对应字符串的蓝色值,将第一导入矩阵中的对应字符串按照从右至左第d+1到2d位作为每个字符串的绿色值,将第一导入矩阵中的每个字符串按照从右至左第2d+1到3d位作为对应字符串的红色值;
[0325]
将第一导入矩阵中的每个字符串按照从右至左第3d+1到3d+h位作为对应字符串的列号,将第一导入矩阵中的每个字符串按照从右至左第3d+h+1到首位作为对应字符串的行号;
[0326]
s6,按照行号和列号,将红色值、绿色值和蓝色值对应的写入行号和列号所对应的第二矩阵中,此时得到三色矩阵;
[0327]
s7,根据三色矩阵的顺序将三色矩阵变为图像。
[0328]
第一步,由于a
″′
=b
″′
=max(a,b)=max(2,3)=3,因此构建两个3
×
3矩阵,分别为第一矩阵和第二矩阵。
[0329]
第二步,将字符串文本中的字符串0hxpob4p0xbv13w6iwcucmpa13w48fzps1eu13w5qb6nfbp20lyhoz1k4n050hxqr198sqdv0lykpuirsnhr0hxnwg17zhb70lyj6sjdeqgx依次分割成每个字符串位数为个:
[0330]
0hxpob4p0xbv 13w6iwcucmpa 13w48fzps1eu 13w5qb6nfbp2 0lyhoz1k4n05 0hxqr198sqdv 0lykpuirsnhr 0hxnwg17zhb7 0lyj6sjdeqgx
[0331]
第三步,将分割后的字符串按照从左至右、从上到下的顺序依次写入第一矩阵中,得到第一导入矩阵:
[0332][0333]
第四步,将第一导入矩阵中的字符串变为十六进制的字符串,得到位数相同的十六进制第一导入矩阵;
[0334][0335]
第五步,将第一导入矩阵中的每个字符串按照从右至左第1到4(此时d=4)位作为对应字符串的蓝色值,将第一导入矩阵中的对应字符串按照从右至左第5到8位作为每个字符串的绿色值,将第一导入矩阵中的每个字符串按照从右至左第9到12位作为对应字符串的红色值;
[0336]
将第一导入矩阵中的每个字符串按照从右至左第13到16(此时h=4)位作为对应
字符串的列号,将第一导入矩阵中的每个字符串按照从右至左第17到首位作为对应字符串的行号;
[0337][0338]
第六步,将行号、列号以及红色值、绿色值和蓝色值变为十进制:
[0339][0340]
第七步,按照行号和列号,将红色值、绿色值和蓝色值对应的写入行号和列号所对应的第二矩阵中,此时得到三色矩阵:
[0341][0342]
第八步,根据三色矩阵的顺序将三色矩阵变为图像。
[0343]
该地理图像的输入方法,还可以是以下步骤:
[0344]
s1,构建两个a
″′×b″′
矩阵,分别为第一矩阵和第二矩阵,其中,a
″′
、b
″′
可以是a
″′
=b
″′
=max(a,b),max(,)表示取最大者,也可以是a
″′
=a,b
″′
=b,a表示待导出图像纵向像素总个数,a=g
picture
×rpicture
;b表示待导出图像横向像素总个数,b=k
picture
×rpicture
;g
picture
表示待导出图像的高度r
picture
表示待导出图像的分辨率,k
picture
表示待导出图像的宽度;
[0345]
s2,将字符串文本中的字符串依次分割成每个字符串位数为j表示字符串文本中字符串的总位数;
[0346]
s3,将分割后的字符串按照从左至右、从上到下的顺序依次写入第一矩阵中,得到第一导入矩阵;
[0347]
s4,将第一导入矩阵中的字符串变为c进制的字符串,得到位数相同的c进制第一导入矩阵;
[0348]
s5,将第一导入矩阵中的每个字符串按照从右至左第1到d位作为对应字符串的蓝色值,将第一导入矩阵中的对应字符串按照从右至左第d+1到2d位作为每个字符串的绿色值,将第一导入矩阵中的每个字符串按照从右至左第2d+1到3d位作为对应字符串的红色值;
[0349]
将第一导入矩阵中的每个字符串按照从右至左第3d+1到3d+h位作为对应字符串的列号,将第一导入矩阵中的每个字符串按照从右至左第3d+h+1到首位作为对应字符串的行号;
[0350]
s6,按照行号和列号,将红色值、绿色值和蓝色值对应的写入行号和列号所对应的第二矩阵中,此时得到三色矩阵;
[0351]
s7,将三色矩阵进行调整,得到三色调整矩阵;
[0352]
s8,根据三色调整矩阵的顺序将三色调整矩阵变为图像。
[0353]
在本发明的一种优选实施方式中,对三色矩阵进行调整的方法包括以下步骤:
[0354]
s71,将三色矩阵构建为a
′×b′
矩阵块矩阵a

为小于或者等于a的正整数,b

为小于或者等于b的正整数,a

》1,b

》1,a
′×b′
=a
×
b;更好的矩阵块中的三色行列字符串的个数为2、3、4、9、16、25、36、49或64,每个矩阵块内的字符串个数相等,令行比较数a
″″
=1,列比较数b
″″
=1;
[0355]
s72,选择三色矩阵的第a
″″
行第b
″″
列字符串所在矩阵块矩阵中的矩阵块ka″″′
,b
″″′
,1≤a
″″′
≤a

,1≤b
″″′
≤b

,且a
″″′
和b
″″′
为正整数;
[0356]
s73,判断ka″″′
,b
″″′
是否在矩阵块集合{k
1,1
,k
1,2
,k
1,3
,

,k
1,b

,k
2,1
,k
2,2
,k
2,3
,

,k
2,b

,k
3,1
,k
3,2
,k
3,3
,

,k
3,b

,

,ka′
,1
,ka′
,2
,ka′
,3
,

,ka′
,b

}中:
[0357]
若ka″″′
,b
″″′
在矩阵块集合中,则执行下一步;
[0358]
若ka″″′
,b
″″′
不在矩阵块集合中,则执行步骤s75;
[0359]
s73,计算得到其矩阵结果块ka″″″
,b
″″″
,if表示逻辑条件如果,&表示逻辑条件且,a

表示行设定值,b

表示列设定值,1≤a

≤a

,1≤b

≤b

,且a

、b

为正整数;
[0360]
s75,判断ka″″″
,b
″″″
与矩阵块集合的逻辑关系:
[0361]
若ka″″″
,b
″″″
属于矩阵块集合,则将ka″″″
,b
″″″
与ka″″′
,b
″″′
进行位置互换,将ka″″″
,b
″″″
和ka″″′
,b
″″′
从矩阵块集合中删除,更新矩阵块集合,执行下一步;
[0362]
若ka″″″
,b
″″″
不属于矩阵块集合,则执行下一步;
[0363]
s74,判断a
″″
与a

间的大小关系:
[0364]
若a
″″
≥a

,则执行下一步;
[0365]
若a
″″
《a

,则a
″″
=a
″″
+1,返回步骤s72;
[0366]
s75,判断b
″″
与b

间的大小关系:
[0367]
若b
″″
≥b

,则此时得到三色调整矩阵:
[0368]
[0369]
若b
″″
《b

,则b
″″
=b
″″
+1,返回步骤s72。
[0370]
同样s76,s77,也可以为:
[0371]
s76,判断b
″″
与b

间的大小关系:
[0372]
若b
″″
≥b

,则执行下一步;
[0373]
若b
″″
《b

,则b
″″
=b
″″
+1,返回步骤s72;
[0374]
s77,判断a
″″
与a

间的大小关系:
[0375]
若a
″″
≥a

,则此时得到行列字符串调整矩阵:
[0376][0377]
若a
″″
《a

,则a
″″
=a
″″
+1,返回步骤s72。
[0378]
在本发明的一种优选实施方式中,在步骤s72中,选择三色矩阵的第a
″″
行第b
″″
列字符串所在的矩阵块ka″″′
,b
″″′
的方法为:
[0379][0380][0381]
其中,表示向上取整;if表示逻辑条件如果;∈表示元素与集合的逻辑符号,属于;n表示自然数所组成的集合;int()表示取整数部分;表示元素与集合的逻辑符号,不属于;
[0382]
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

技术特征:
1.一种基于geotools工具修复自相交的地理图像输出方法,其特征在于,包括以下步骤:s-1,获取待处理的地理数据;s-2,将步骤s-1中的地理数据进行去自相交后,得到去自相交地理数据。2.根据权利要求1所述的基于geotools工具修复自相交的地理图像输出方法,其特征在于,在步骤s-2之后还包括步骤s-3,将去自相交的地理数据生成地理图像,将生成的地理图像进行图像输出。3.根据权利要求1所述的基于geotools工具修复自相交的地理图像输出方法,其特征在于,在步骤s-2中得到去自相交地理数据的方法为:使用geotools工具,找到自相交几何图形自相交的部分,再使用原始几何图形将自相交的部分去除,得到的几何图形便去除了自相交的部分。4.根据权利要求2所述的基于geotools工具修复自相交的地理图像输出方法,其特征在于,将生成的地理图像进行图像输出的方法包括以下步骤:s1,获取待导出图像的宽度、高度和分辨率,分别记作k
picture
、g
picture
和r
picture
,k
picture
表示待导出图像的宽度,单位为cm,cm表示长度单位厘米,g
picture
表示待导出图像的高度,单位为cm,cm表示长度单位厘米,r
picture
表示待导出图像的分辨率;单位为cm-1,cm-1表示分辨率单位每厘米像素个数;s2,根据步骤s1中获取的待导出图像的宽度、高度和分辨率,生成待导出图像的颜色矩阵,记作:其中,rgb
1,1
表示待导出图像中的第1行第1列的颜色值;rgb
1,2
表示待导出图像中的第1行第2列的颜色值;rgb
1,3
表示待导出图像中的第1行第3列的颜色值;rgb
1,b
表示待导出图像中的第1行第b列的颜色值;b=k
picture
×
r
picture
;b表示待导出图像横向像素总个数,k
picture
表示待导出图像的宽度,单位为cm,cm表示长度单位厘米,r
picture
表示待导出图像的分辨率;单位为cm-1,cm-1表示分辨率单位每厘米像素个数;rgb
2,1
表示待导出图像中的第2行第1列的颜色值;rgb
2,2
表示待导出图像中的第2行第2列的颜色值;rgb
2,3
表示待导出图像中的第2行第3列的颜色值;rgb
2,b
表示待导出图像中的第2行第b列的颜色值;rgb
3,1
表示待导出图像中的第3行第1列的颜色值;rgb
3,2
表示待导出图像中的第3行第2列的颜色值;rgb
3,3
表示待导出图像中的第3行第3列的颜色值;
rgb
3,b
表示待导出图像中的第3行第b列的颜色值;rgb
a,1
表示待导出图像中的第a行第1列的颜色值;a=g
picture
×
r
picture
;a表示待导出图像纵向像素总个数,g
picture
表示待导出图像的高度,单位为cm,cm表示长度单位厘米,r
picture
表示待导出图像的分辨率;单位为cm-1,cm-1表示分辨率单位每厘米像素个数;rgb
a,2
表示待导出图像中的第a行第2列的颜色值;rgb
a,3
表示待导出图像中的第a行第3列的颜色值;rgb
a,b
表示待导出图像中的第a行第b列的颜色值;s3,根据步骤s2中的颜色矩阵生成三色字符串矩阵;s4,根据步骤s2中的颜色矩阵的行列数生成行列字符串矩阵;s5,根据步骤s3中的三色字符串矩阵与步骤s4中的行列字符串矩阵生成行列三色字符串矩阵;s6,对行列三色字符串矩阵中的行列三色字符串转换为三色行列字符串,得到三色行列字符串矩阵;s7,将三色行列字符串矩阵中的字符串按照从左至右、从上到下的顺序写入文本,得到字符串文本。5.根据权利要求4所述的基于geotools工具修复自相交的地理图像输出方法,其特征在于,在步骤s6中,三色行列字符串矩阵的得到方法包括以下步骤:s60,令行排数a
″′
=1,列排数b
″′
=1;s61,获取行列三色字符串矩阵中的第a
″′
行第b
″′
列行列三色字符串;s62,将行列三色字符串矩阵中的第a
″′
行第b
″′
列行列三色字符串转换为i进制,i>c;将行列三色字符串矩阵中的第a
″′
行第b
″′
列行列三色字符串转换为i进制的方法与将rgb
a,b
中的红色值、绿色值和蓝色值变换为c进制的方法相同,只是其中的进制数值发生变化;s63,判断b
″′
与b间的大小关系:若b
″′
≥b,则执行下一步;若b
″′
<b,则b
″′
=b
″′
+1,返回步骤s61;s64,判断a
″′
与a间的大小关系:若a
″′
≥a,则构成三色列行字符串矩阵:执行下一步;若a
″′
<a,则a
″′
=a
″′
+1,返回步骤s61;s65,统计三色列行字符串矩阵中各行各列字符串的位数,将三色列行字符串矩阵中各行各列字符串的位数按照从大到小的顺序依次排列,取排在首位字符串的位数,记作h,h表示排在首位字符串的位数;s66,对三色列行字符串矩阵中各行各列字符串的位数不等于h,则在三色列行字符串矩阵中各行各列字符串的左侧添加标识符,使三色列行字符串矩阵中各行各列字符串的位数均等于h;此时即得到三色行列字符串矩阵。
6.根据权利要求4所述的基于geotools工具修复自相交的地理图像输出方法,其特征在于,在步骤s5中,根据三色字符串矩阵与行列字符串矩阵生成行列三色字符串矩阵的方法包括以下步骤:s51,令行组合数a

=1,列组合数b

=1;s52,将三色字符串矩阵中的第a

行第b

列的三色字符串放置在行列字符串矩阵中的第a

行第b

列的行列字符串右侧,此时构成行列三色字符串矩阵中的第a

行第b

列行列三色字符串;s53,判断若b

≥b,则执行下一步;若b

<b,则b

=b

+1,返回步骤s52;s54,判断a

与a间的大小关系:若a

≥a,则构成行列三色字符串矩阵:若a

<a,则a

=a

+1,返回步骤s52。7.根据权利要求4所述的基于geotools工具修复自相交的地理图像输出方法,其特征在于,在步骤s4中,根据颜色矩阵的行列数生成行列字符串矩阵的方法包括以下步骤:s40,令行序数a

=1,列序数b

=1;s41,获取颜色值rgb
a

,b

的矩阵行列号,矩阵行列号包括行号数和列号数;s42,判断行号数和列号数是否为c进制:若行号数和列号数均为c进制,则执行下一步;若行号数和列号数不全为c进制,则将行号数和列号数变换为c进制;执行下一步;s43,判断行号数和列号数是否为h位数:若行号数和列号数均为h位数,则执行下一步;若行号数和列号数不全为h位数,则将行号数和列号数变换为h位数;将行号数和列号数变换为h位数的方法为:在行号数和列号数的左侧补充标志符,标志符为0,使行号数和列号数满足h位数,执行下一步;s44,将行号数放置在列号数的左侧,此时构成第a

行第b

列行列字符串;s45,判断b

与b间的大小关系:若b

≥b,则执行下一步;若b

<b,则b

=b

+1,返回步骤s41;s46,判断a

与a间的大小关系:若a

≥a,则构成行列字符串矩阵:
其中,r1表示颜色值rgb
1,1
的行号数所对应的c进制行号数;c1表示颜色值rgb
1,1
的列号数所对应的c进制列号数;r1c1表示r1、c1按照从左向右排列所得的第1行第1列行列字符串;c2表示颜色值rgb
1,2
的列号数所对应的c进制列号数;r1c2表示r1、c2按照从左向右排列所得的第1行第2列行列字符串;c3表示颜色值rgb
1,3
的列号数所对应的c进制列号数;r1c3表示r1、c3按照从左向右排列所得的第1行第3列行列字符串;c
b
表示颜色值rgb
1,b
的列号数所对应的c进制列号数;r1c
b
表示r1、c
b
按照从左向右排列所得的第1行第b列行列字符串;r2表示颜色值rgb
2,1
的行号数所对应的c进制行号数;r2c1表示r2、c1按照从左向右排列所得的第2行第1列行列字符串;r2c2表示r2、c2按照从左向右排列所得的第2行第2列行列字符串;r2c3表示r2、c3按照从左向右排列所得的第2行第3列行列字符串;r2c
b
表示r2、c
b
按照从左向右排列所得的第2行第b列行列字符串;r3c1表示r3、c1按照从左向右排列所得的第3行第1列行列字符串;r3c2表示r3、c2按照从左向右排列所得的第3行第2列行列字符串;r3c3表示r3、c3按照从左向右排列所得的第3行第3列行列字符串;r3c
b
表示r3、c
b
按照从左向右排列所得的第3行第b列行列字符串;r
a
c1表示r
a
、c1按照从左向右排列所得的第a行第1列行列字符串;r
a
c2表示r
a
、c2按照从左向右排列所得的第a行第2列行列字符串;r
a
c3表示r
a
、c3按照从左向右排列所得的第a行第3列行列字符串;r
a
c
b
表示r
a
、c
b
按照从左向右排列所得的第a行第b列行列字符串;若a

<a,则a

=a

+1,返回步骤s41。8.根据权利要求1所述的基于geotools工具修复自相交的地理图像输出方法,其特征在于,在步骤s3中,根据颜色矩阵生成三色字符串矩阵的方法包括以下步骤:s31,令行增数a=1,列增数b=1;s32,判断rgb
a,b
中的红色值、绿色值和蓝色值是否为c进制:若rgb
a,b
中的红色值、绿色值和蓝色值均为c进制,则执行下一步;若rgb
a,b
中的红色值、绿色值和蓝色值不全为c进制,则将rgb
a,b
中的红色值、绿色值和蓝色值变换为c进制;执行下一步;s33,判断rgb
a,b
中的红色值、绿色值和蓝色值是否为d位数:若rgb
a,b
中的红色值、绿色值和蓝色值均为d位数,则执行下一步;若rgb
a,b
中的红色值、绿色值和蓝色值不全为d位数,则将rgb
a,b
中的红色值、绿色值和蓝色值变换为d位数;执行下一步;s34,将rgb
a,b
中的绿色值放置在rgb
a,b
中的红色值的右侧,将rgb
a,b
中的蓝色值放置在rgb
a,b
中的绿色值的右侧,此时构成第a行第b列三色字符串;s35,判断b与b间的大小关系:若b≥b,则执行下一步;若b<b,则b=b+1,返回步骤s32;
s36,判断a与a间的大小关系:若a≥a,则构成三色字符串矩阵:其中,rgb
1,1
(r)
c
表示rgb
1,1
中的c进制红色值;rgb
1,1
(g)
c
表示rgb
1,1
中的c进制绿色值;rgb
1,1
(b)
c
表示rgb
1,1
中的c进制蓝色值;rgb
1,1
(r)
c
rgb
1,1
(g)
c
rgb
1,1
(b)
c
表示红色值rgb
1,1
(r)
c
、绿色值rgb
1,1
(g)
c
和蓝色值rgb
1,1
(b)
c
按照从左向右排列所得的第1行第1列三色字符串;rgb
1,2
(r)
c
表示rgb
1,2
中的c进制红色值;rgb
1,2
(g)
c
表示rgb
1,2
中的c进制绿色值;rgb
1,2
(b)
c
表示rgb
1,2
中的c进制蓝色值;rgb
1,2
(r)
c
rgb
1,2
(g)
c
rgb
1,2
(b)
c
表示红色值rgb
1,2
(r)
c
、绿色值rgb
1,2
(g)
c
和蓝色值rgb
1,2
(b)
c
按照从左向右排列所得的第1行第2列三色字符串;rgb
1,3
(r)
c
表示rgb
1,3
中的c进制红色值;rgb
1,3
(g)
c
表示rgb
1,3
中的c进制绿色值;rgb
1,3
(b)
c
表示rgb
1,3
中的c进制蓝色值;rgb
1,3
(r)
c
rgb
1,3
(g)
c
rgb
1,3
(b)
c
表示红色值rgb
1,3
(r)
c
、绿色值rgb
1,3
(g)
c
和蓝色值rgb
1,3
(b)
c
按照从左向右排列所得的第1行第3列三色字符串;rgb
1,b
(r)
c
表示rgb
1,b
中的c进制红色值;rgb
1,b
(g)
c
表示rgb
1,b
中的c进制绿色值;rgb
1,b
(b)
c
表示rgb
1,b
中的c进制蓝色值;rgb
1,b
(r)
c
rgb
1,b
(g)
c
rgb
1,b
(b)
c
表示红色值rgb
1,b
(r)
c
、绿色值rgb
1,b
(g)
c
和蓝色值rgb
1,b
(b)
c
按照从左向右排列所得的第1行第b列三色字符串;rgb
2,1
(r)
c
表示rgb
2,1
中的c进制红色值;rgb
2,1
(g)
c
表示rgb
2,1
中的c进制绿色值;rgb
2,1
(b)
c
表示rgb
2,1
中的c进制蓝色值;rgb
2,1
(r)
c
rgb
2,1
(g)
c
rgb
2,1
(b)
c
表示红色值rgb
2,1
(r)
c
、绿色值rgb
2,1
(g)
c
和蓝色值rgb
2,1
(b)
c
按照从左向右排列所得的第2行第1列三色字符串;rgb
2,2
(r)
c
表示rgb
2,2
中的c进制红色值;rgb
2,2
(g)
c
表示rgb
2,2
中的c进制绿色值;rgb
2,2
(b)
c
表示rgb
2,2
中的c进制蓝色值;rgb
2,2
(r)
c
rgb
2,2
(g)
c
rgb
2,2
(b)
c
表示红色值rgb
2,2
(r)
c
、绿色值rgb
2,2
(g)
c
和蓝色值rgb
2,2
(b)
c
按照从左向右排列所得的第2行第2列三色字符串;rgb
2,3
(r)
c
表示rgb
2,3
中的c进制红色值;rgb
2,3
(g)
c
表示rgb
2,3
中的c进制绿色值;rgb
2,3
(b)
c
表示rgb
2,3
中的c进制蓝色值;rgb
2,3
(r)
c
rgb
2,3
(g)
c
rgb
2,3
(b)
c
表示红色值rgb
2,3
(r)
c
、绿色值rgb
2,3
(g)
c
和蓝色值rgb
2,3
(b)
c
按照从左向右排列所得的第2行第3列三色字符串;rgb
2,b
(r)
c
表示rgb
2,b
中的c进制红色值;rgb
2,b
(g)
c
表示rgb
2,b
中的c进制绿色值;rgb
2,b
(b)
c
表示rgb
2,b
中的c进制蓝色值;rgb
2,b
(r)
c
rgb
2,b
(g)
c
rgb
2,b
(b)
c
表示红色值rgb
2,b
(r)
c
、绿色值rgb
2,b
(g)
c
和蓝色值rgb
2,b
(b)
c
按照从左向右排列所得的第2行第b列三色字符串;rgb
3,1
(r)
c
表示rgb
3,1
中的c进制红色值;rgb
3,1
(g)
c
表示rgb
3,1
中的c进制绿色值;rgb
3,1
(b)
c
表示rgb
3,1
中的c进制蓝色值;rgb
3,1
(r)
c
rgb
3,1
(g)
c
rgb
3,1
(b)
c
表示红色值rgb
3,1
(r)
c
、绿色值rgb
3,1
(g)
c
和蓝色值rgb
3,1
(b)
c
按照从左向右排列所得的第3行第1列三色字符串;rgb
3,2
(r)
c
表示rgb
3,2
中的c进制红色值;rgb
3,2
(g)
c
表示rgb
3,2
中的c进制绿色值;rgb
3,2
(b)
c
表示rgb
3,2
中的c进制蓝色值;rgb
3,2
(r)
c
rgb
3,2
(g)
c
rgb
3,2
(b)
c
表示红色值rgb
3,2
(r)
c
、绿色值rgb
3,2
(g)
c
和蓝色值rgb
3,2
(b)
c
按照从左向右排列所得的第3行第2列三色字符串;rgb
3,3
(r)
c
表示rgb
3,3
中的c进制红色值;rgb
3,3
(g)
c
表示rgb
3,3
中的c进制绿色值;rgb
3,3
(b)
c
表示rgb
3,3
中的c进制蓝色值;rgb
3,3
(r)
c
rgb
3,3
(g)
c
rgb
3,3
(b)
c
表示红色值rgb
3,3
(r)
c
、绿色值rgb
3,3
(g)
c
和蓝色值rgb
3,3
(b)
c
按照从左向右排列所得的第3行第3列三色字符串;rgb
3,b
(r)
c
表示rgb
3,b
中的c进制红色值;rgb
3,b
(g)
c
表示rgb
3,b
中的c进制绿色值;rgb
3,b
(b)
c
表示rgb
3,b
中的c进制蓝色值;rgb
3,b
(r)
c
rgb
3,b
(g)
c
rgb
3,b
(b)
c
表示红色值rgb
3,b
(r)
c
、绿色值rgb
3,b
(g)
c
和蓝色值rgb
3,b
(b)
c
按照从左向右排列所得的第3行第b列三色字符串;rgb
a,1
(r)
c
表示rgb
a,1
中的c进制红色值;rgb
a,1
(g)
c
表示rgb
a,1
中的c进制绿色值;rgb
a,1
(b)
c
表示rgb
a,1
中的c进制蓝色值;rgb
a,1
(r)
c
rgb
a,1
(g)
c
rgb
a,1
(b)
c
表示红色值rgb
a,1
(r)
c
、绿色值rgb
a,1
(g)
c
和蓝色值rgb
a,1
(b)
c
按照从左向右排列所得的第a行第1列三色字符串;rgb
a,2
(r)
c
表示rgb
a,2
中的c进制红色值;rgb
a,2
(g)
c
表示rgb
a,2
中的c进制绿色值;rgb
a,2
(b)
c
表示rgb
a,2
中的c进制蓝色值;rgb
a,2
(r)
c
rgb
a,2
(g)
c
rgb
a,2
(b)
c
表示红色值rgb
a,2
(r)
c
、绿色值rgb
a,2
(g)
c
和蓝色值rgb
a,2
(b)
c
按照从左向右排列所得的第a行第2列三色字符串;rgb
a,3
(r)
c
表示rgb
a,3
中的c进制红色值;rgb
a,3
(g)
c
表示rgb
a,3
中的c进制绿色值;rgb
a,3
(b)
c
表示rgb
a,3
中的c进制蓝色值;
rgb
a,3
(r)
c
rgb
a,3
(g)
c
rgb
a,3
(b)
c
表示红色值rgb
a,3
(r)
c
、绿色值rgb
a,3
(g)
c
和蓝色值rgb
a,3
(b)
c
按照从左向右排列所得的第a行第3列三色字符串;rgb
a,b
(r)
c
表示rgb
a,b
中的c进制红色值;rgb
a,b
(g)
c
表示rgb
a,b
中的c进制绿色值;rgb
a,b
(b)
c
表示rgb
a,b
中的c进制蓝色值;rgb
a,b
(r)
c
rgb
a,b
(g)
c
rgb
a,b
(b)
c
表示红色值rgb
a,b
(r)
c
、绿色值rgb
a,b
(g)
c
和蓝色值rgb
a,b
(b)
c
按照从左向右排列所得的第a行第b列三色字符串;若a<a,则a=a+1,返回步骤s32。9.根据权利要求6所述的基于geotools工具修复自相交的地理图像输出方法,其特征在于,在步骤s33中,将rgb
a,b
中的红色值、绿色值和蓝色值变换为d位数的方法包括以下步骤:s331,若||rgb
a,b
(r)||=d,rgb
a,b
(r)表示rgb
a,b
中的红色值,|| ||表示求数值的位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则执行下一步;若||rgb
a,b
(r)||<d,rgb
a,b
(r)表示rgb
a,b
中的红色值,|| ||表示求数值的位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则在rgb
a,b
(r)的左侧补充d-||rgb
a,b
(r)||个标识符;s332,若||rgb
a,b
(g)||=d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,|| ||表示求数值的位数,||rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则执行下一步;若||rgb
a,b
(g)||<d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,|| ||表示求数值的位数,||rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则在rgb
a,b
(g)的左侧补充d-||rgb
a,b
(g)||个标识符;s333,若||rgb
a,b
(b)||=d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,|| ||表示求数值的位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则执行下一步;若||rgb
a,b
(b)||<d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,|| ||表示求数值的位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则在rgb
a,b
(b)的左侧补充d-||rgb
a,b
(b)||个标识符;或者,s331,若||rgb
a,b
(r)||=d,rgb
a,b
(r)表示rgb
a,b
中的红色值,|| ||表示求数值的位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则执行下一步;若||rgb
a,b
(r)||<d,rgb
a,b
(r)表示rgb
a,b
中的红色值,||||表示求数值的位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则在rgb
a,b
(r)的左侧补充d-||rgb
a,b
(r)||个标识符;s332,若||rgb
a,b
(b)||=d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,|| ||表示求数值的位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则执行下一步;若||rgb
a,b
(b)||<d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,|| ||表示求数值的位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则在rgb
a,b
(b)的左侧补充d-||rgb
a,b
(b)||个标识符;s333,若||rgb
a,b
(g)||=d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,|| ||表示求数值的位数,||rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则执行下一步;若||rgb
a,b
(g)||<d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,|| ||表示求数值的位数,||
rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则在rgb
a,b
(g)的左侧补充d-||rgb
a,b
(g)||个标识符;或者,s331,若||rgb
a,b
(g)||=d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,|| ||表示求数值的位数,||rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则执行下一步;若||rgb
a,b
(g)||<d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,|| ||表示求数值的位数,||rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则在rgb
a,b
(g)的左侧补充d-||rgb
a,b
(g)||个标识符;s332,若||rgb
a,b
(b)||=d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,||||表示求数值的位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则执行下一步;若||rgb
a,b
(b)||<d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,||||表示求数值的位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则在rgb
a,b
(b)的左侧补充d-||rgb
a,b
(b)||个标识符;s333,若||rgb
a,b
(r)||=d,rgb
a,b
(r)表示rgb
a,b
中的红色值,|| ||表示求数值的位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则执行下一步;若||rgb
a,b
(r)||<d,rgb
a,b
(r)表示rgb
a,b
中的红色值,|| ||表示求数值的位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则在rgb
a,b
(r)的左侧补充d-||rgb
a,b
(r)||个标识符;或者,s331,若||rgb
a,b
(g)||=d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,|| ||表示求数值的位数,||rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则执行下一步;若||rgb
a,b
(g)||<d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,|| ||表示求数值的位数,||rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则在rgb
a,b
(g)的左侧补充d-||rgb
a,b
(g)||个标识符;s332,若||rgb
a,b
(r)||=d,rgb
a,b
(r)表示rgb
a,b
中的红色值,|| ||表示求数值的位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则执行下一步;若||rgb
a,b
(r)||<d,rgb
a,b
(r)表示rgb
a,b
中的红色值,|| ||表示求数值的位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则在rgb
a,b
(r)的左侧补充d-||rgb
a,b
(r)||个标识符;s333,若||rgb
a,b
(b)||=d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,||||表示求数值的位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则执行下一步;若||rgb
a,b
(b)||<d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,||||表示求数值的位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则在rgb
a,b
(b)的左侧补充d-||rgb
a,b
(b)||个标识符;或者,s331,若||rgb
a,b
(b)||=d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,|| ||表示求数值的位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则执行下一步;若||rgb
a,b
(b)||<d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,|| ||表示求数值的位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则在rgb
a,b
(b)的左侧补充d-||rgb
a,b
(b)||个标识符;s332,若||rgb
a,b
(r)||=d,rgb
a,b
(r)表示rgb
a,b
中的红色值,|| ||表示求数值的位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则执行下一步;
若||rgb
a,b
(r)||<d,rgb
a,b
(r)表示rgb
a,b
中的红色值,|| ||表示求数值的位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则在rgb
a,b
(r)的左侧补充d-||rgb
a,b
(r)||个标识符;s333,若||rgb
a,b
(g)||=d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,|| ||表示求数值的位数,||rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则执行下一步;若||rgb
a,b
(g)||<d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,|| ||表示求数值的位数,||rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则在rgb
a,b
(g)的左侧补充d-||rgb
a,b
(g)||个标识符;或者,s331,若||rgb
a,b
(b)||=d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,||||表示求数值的位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则执行下一步;若||rgb
a,b
(b)||<d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,||||表示求数值的位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则在rgb
a,b
(b)的左侧补充d-||rgb
a,b
(b)||个标识符;s332,若||rgb
a,b
(g)||=d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,|| ||表示求数值的位数,||rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则执行下一步;若||rgb
a,b
(g)||<d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,|| ||表示求数值的位数,||rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则在rgb
a,b
(g)的左侧补充d-||rgb
a,b
(g)||个标识符;s333,若||rgb
a,b
(r)||=d,rgb
a,b
(r)表示rgb
a,b
中的红色值,|| ||表示求数值的位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则执行下一步;若||rgb
a,b
(r)||<d,rgb
a,b
(r)表示rgb
a,b
中的红色值,|| ||表示求数值的位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则在rgb
a,b
(r)的左侧补充d-||rgb
a,b
(r)||个标识符;或者,s331,若||rgb
a,b
(r)||=d,rgb
a,b
(r)表示rgb
a,b
中的红色值,|| ||表示求数值的位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则执行下一步;若||rgb
a,b
(r)||<d,rgb
a,b
(r)表示rgb
a,b
中的红色值,|| ||表示求数值的位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则在rgb
a,b
(r)的左侧补充d-||rgb
a,b
(r)||个标识符;s332,若||rgb
a,b
(g)||=d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,||||表示求数值的位数,||rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则执行下一步;若||rgb
a,b
(g)||<d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,|| ||表示求数值的位数,||rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则在rgb
a,b
(g)的左侧补充d-||rgb
a,b
(g)||个标识符;s333,若||rgb
a,b
(b)||=d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,||||表示求数值的位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则执行下一步;若||rgb
a,b
(b)||<d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,||||表示求数值的位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则在rgb
a,b
(b)的左侧补充d-||rgb
a,b
(b)||个标识符;或者,s331,若||rgb
a,b
(r)||=d,rgb
a,b
(r)表示rgb
a,b
中的红色值,|| ||表示求数值的
位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则执行下一步;若||rgb
a,b
(r)||<d,rgb
a,b
(r)表示rgb
a,b
中的红色值,|| ||表示求数值的位数,||rgb
a,b
(r)||表示rgb
a,b
中的红色值的位数,则在rgb
a,b
(r)的左侧补充d-||rgb
a,b
(r)||个标识符;s332,若||rgb
a,b
(g)||=d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,|| ||表示求数值的位数,||rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则执行下一步;若||rgb
a,b
(g)||<d,rgb
a,b
(g)表示rgb
a,b
中的绿色值,|| ||表示求数值的位数,||rgb
a,b
(g)||表示rgb
a,b
中的绿色值的位数,则在rgb
a,b
(g)的左侧补充d-||rgb
a,b
(g)||个标识符;s333,若||rgb
a,b
(b)||=d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,|| ||表示求数值的位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则执行下一步;若||rgb
a,b
(b)||<d,rgb
a,b
(b)表示rgb
a,b
中的蓝色值,|| ||表示求数值的位数,||rgb
a,b
(b)||表示rgb
a,b
中的蓝色值的位数,则在rgb
a,b
(b)的左侧补充d-||rgb
a,b
(b)||个标识符。10.根据权利要求2所述的基于geotools工具修复自相交的地理图像输出方法,其特征在于,在步骤s32中,将rgb
a,b
中的红色值、绿色值和蓝色值变换为c进制的方法为:s321,获取rgb
a,b
中的红色值、绿色值和蓝色值的位数和进制;s322,根据步骤s321获取的红色值、绿色值和蓝色值的位数和进制,计算得到红色第一值rgb
a,b
(r)|
10
、绿色第一值rgb
a,b
(g)|
10
和蓝色第一值rgb
a,b
(b)|
10
,红色第一值rgb
a,b
(r)|
10
、绿色第一值rgb
a,b
(g)|
10
和蓝色第一值rgb
a,b
(b)|
10
的计算方法为:其中,rgb
a,b
(c)|
10
表示第一值,c=r、g和b,c为r时,rgb
a,b
(c)|
10
表示红色第一值,c为g时,rgb
a,b
(c)|
10
表示绿色第一值,c为b时,rgb
a,b
(c)|
10
表示蓝色第一值;表示对应的红色值、绿色值和蓝色值按照从右向左第1位所对应的值;c为r时,表示红色值按照从右向左第1位所对应的值;c为g时,表示绿色值按照从右向左第1位所对应的值;c为b时,表示蓝色值按照从右向左第1位所对应的值;表示对应的红色值、绿色值和蓝色值按照从右向左第2位所对应的值;c为r时,表示红色值按照从右向左第2位所对应的值;c为g时,表示绿色值按照从右向左第2位所对应的值;c为b时,表示蓝色值按照从右向左第2位所对应的值;表示对应的红色值、绿色值和蓝色值按照从右向左第3位所对应的值;
c为r时,表示红色值按照从右向左第3位所对应的值;c为g时,表示绿色值按照从右向左第3位所对应的值;c为b时,表示蓝色值按照从右向左第3位所对应的值;表示对应的红色值、绿色值和蓝色值按照从右向左第||rgb
a,b
(c)||位所对应的值;||rgb
a,b
(c)||表示rgb
a,b
中的对应的红色值、绿色值和蓝色值的位数;c为r时,||rgb
a,b
(c)||表示rgb
a,b
中的红色值的位数;c为g时,||rgb
a,b
(c)||表示rgb
a,b
中的绿色值的位数;c为b时,||rgb
a,b
(c)||表示rgb
a,b
中的蓝色值的位数;c为r时,表示红色值按照从右向左第||rgb
a,b
(c)||位所对应的值;c为g时,表示绿色值按照从右向左第||rgb
a,b
(c)||位所对应的值;c为b时,表示蓝色值按照从右向左第||rgb
a,b
(c)||位所对应的值;<c>表示对应的红色值、绿色值和蓝色值的进制数值;c为r时,<c>表示红色值的进制数值;c为g时,<c>表示绿色值的进制数值;c为b时,<c>表示蓝色值的进制数值;s323,根据步骤s322中得到的红色第一值rgb
a,b
(r)|
10
、绿色第一值rgb
a,b
(g)|
10
和蓝色第一值rgb
a,b
(b)|
10
,计算得到红色第二值rgb
a,b
(r)|
c
、绿色第二值rgb
a,b
(g)|
c
和蓝色第二值rgb
a,b
(b)|
c
,红色第二值rgb
a,b
(r)|
c
、绿色第二值rgb
a,b
(g)|
c
和蓝色第二值rgb
a,b
(b)|
c
的计算方法包括以下步骤:s3231,令初始值e0=rgb
a,b
(c)|
10
,递增第一值e=1;递增第二值f=1;s3232,其中,e
e
表示下一次计算值;e
e-1
表示本次计算值;c表示c进制对应的数值;表示向下取整;if表示逻辑条件如果;∈表示元素与集合的逻辑符号,属于;n表示自然数所组成的集合;int()表示取整数部分;
表示元素与集合的逻辑符号,不属于;s3233,判断e
e
与c的关系:若e
e
≥c,则e=e+1,返回步骤s3232;若e
e
<c-1,则执行下一步;s3234,f
f
=e
f-1
%c,其中,f
f
表示第二值从右到左第f位所对应的数值;e
f-1
表示替换值;%表示取余数部分;c表示c进制对应的数值;s3235,判断f与e的关系:若f≥e,则第二值即为e
e
f
e

f3f2f1;其中,e
e
表示下一次计算值;f
e
表示第二值从右到左第e位所对应的数值;f3表示第二值从右到左第3位所对应的数值;f2表示第二值从右到左第2位所对应的数值;f1表示第二值从右到左第1位所对应的数值;若f<e,则f=f+1,返回步骤s3234。

技术总结
本发明提出了一种基于geotools工具修复自相交的地理图像输出方法,包括以下步骤:S-1,获取待处理的地理数据;S-2,将步骤S-1中的地理数据进行去自相交后,得到去自相交地理数据。本发明能够对自相交进行识别,得到一个修复后的地理数据。复后的地理数据。复后的地理数据。


技术研发人员:赵根 张治清 汪蓓 戴一明 曾航 罗波 谭龙生 沙漠 孙小琴 雷秋霞 杨晗 唐小洪 张小敏 王俊秀 柴垚 段美超 罗鲜华 向友云 谢显奇 唐险峰 秦邹婧 余春靓
受保护的技术使用者:重庆市规划和自然资源信息中心
技术研发日:2023.06.19
技术公布日:2023/10/8
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐