CN116842117B - 一种基于geotools工具修复自相交的地理图像输出方法 - Google Patents
一种基于geotools工具修复自相交的地理图像输出方法 Download PDFInfo
- Publication number
- CN116842117B CN116842117B CN202310723913.5A CN202310723913A CN116842117B CN 116842117 B CN116842117 B CN 116842117B CN 202310723913 A CN202310723913 A CN 202310723913A CN 116842117 B CN116842117 B CN 116842117B
- Authority
- CN
- China
- Prior art keywords
- rgb
- value
- representing
- bits
- row
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 73
- 239000011159 matrix material Substances 0.000 claims description 318
- 239000013589 supplement Substances 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 11
- 230000008439 repair process Effects 0.000 claims description 11
- 150000001875 compounds Chemical class 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 4
- 239000003550 marker Substances 0.000 claims description 4
- 229910002056 binary alloy Inorganic materials 0.000 claims description 2
- 230000001502 supplementing effect Effects 0.000 claims description 2
- 230000008676 import Effects 0.000 description 16
- 230000001154 acute effect Effects 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 238000010420 art technique Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
Abstract
本发明提出了一种基于geotools工具修复自相交的地理图像输出方法,包括以下步骤:S‑1,获取待处理的地理数据;S‑2,将步骤S‑1中的地理数据进行去自相交后,得到去自相交地理数据。本发明能够对自相交进行识别,得到一个修复后的地理数据。
Description
技术领域
本发明涉及一种地理数据技术领域,特别是涉及一种基于geotools工具修复自相交的地理图像输出方法。
背景技术
目前,地图数据在定位、导航等技术中广泛使用。地图数据中通常包含多个地理要素,地理要素可以分为点状地理要素(比如兴趣点)、线状地理要素(比如道路)或面状地理要素(例如湖泊、公园、或者建筑物),面状地理要素可以呈各种形状,面状地理要素的形状与其对应地理要素在现实世界中的形状有关,比如,一栋现实世界的大楼的形状可以是规则的四边形,也可以是不规则的多边形。专利申请号2020104735479,名称为“面状地理要素的处理方法、装置和存储介质”,包括:获取地图数据中面状地理要素的多边形;对所述面状地理要素的多边形相交的非相邻边,用所述非相邻边的交点分割所述非相邻边;确定分割得到的所述面状地理要素的边和顶点构成的多边形;从确定的所述多边形中,获取所述面状地理要素的目标多边形,所述目标多边形的非相邻边不相交。
发明内容
本发明旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种基于geotools工具修复自相交的地理图像输出方法。
为了实现本发明的上述目的,本发明提供了一种基于geotools工具修复自相交的地理图像输出方法,包括以下步骤:
S-1,获取待处理的地理数据;
S-2,将步骤S-1中的地理数据进行去自相交后,得到去自相交地理数据。
在本发明的一种优选实施方式中,在步骤S-2之后还包括步骤S-3,将去自相交的地理数据生成地理图像,将生成的地理图像进行图像输出。
综上所述,由于采用了上述技术方案,本发明能够对自相交进行识别,得到一个修复后的地理数据,并能确保输出图像的安全。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明流程示意框图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
本发明公开了一种基于geotools工具修复自相交的地理图像输出方法,如图1所示,包括以下步骤:
S-1,获取待处理的地理数据;
S-2,将步骤S-1中的地理数据进行去自相交后,得到去自相交地理数据。
在本发明的一种优选实施方式中,在步骤S-2之后还包括步骤S-3,将去自相交的地理数据生成地理图像,将生成的地理图像进行图像输出。
在本发明的一种优选实施方式中,在步骤S-2中得到去自相交地理数据的方法为:
针对图形自相交的几何图形,使用geotools工具,找到自相交几何图形自相交的部分,再使用原始几何图形将自相交的部分去除,得到的几何图形便去除了自相交的部分。
在本发明的一种优选实施方式中,还包括过锐角修复,过锐角修复的方法为:
针对存在该情况的几何图形,使用geotools工具,遍历几何图形的顶点,以顶点生成一个缓冲为一厘米的圆,该圆与原图形的相交的两个点如果长度过短则认为是过锐角,使用相交两个点的连线切割该角,得到的新的几何图形中过锐角被去除。
在本发明的一种优选实施方式中,还包括对地理数据进行外环与内环相交修复,对外环与内环相交修复方法为:
使用geotools工具,遍历几何图形的坐标,找到内环与外环相交的点坐标,将内环相交的坐标位置向内进行毫米级微调,调整后内环与外环将不存在相交的点,得到新的几何图形与原几何图形几乎没有区别。
在本发明的一种优选实施方式中,还包括去面相交地理数据,其去面相交地理数据的方法包括以下步骤:
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;
S-22,将第q′面的坐标点数据放入坐标系中并按照次序连接起来构成闭合的面,构成闭合的面的方法为:
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′面坐标点数据中的终点坐标点,且/>
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相连;
S-223,经过步骤S-222后,得到在线条以及由线条围成的图形以内的坐标点属于第q′面;
S-23,判断q′与q的大小关系:
若q′≥q,则执行下一步;
若q′<q,则q′=q′+1,返回步骤S-22;
S-24,判断第q″面与第q″′面间的坐标点关系:
若Rq″表示第q″面所包含的坐标点集合;Rq″′表示第q″′面所包含的坐标点集合;∩表示逻辑关系并集,/>表示空集,q″∈{1,2,3,...,wq′},q″′∈{1,2,3,...,wq′},且q″≠q″′,则第q″面Rq″与第q″′面Rq″′不相交;不对其处理;
若Rq″表示第q″面所包含的坐标点集合;Rq″′表示第q″′面所包含的坐标点集合;∩表示逻辑关系并集,/>表示非空集集合,q″∈{1,2,3,...,wq′},q″′∈{1,2,3,...,wq′},且q″≠q″′,则第q″面Rq″与第q″′面Rq″′相交:
若中的元素个数等于1,则不对其处理;
若中的元素个数大于或者等于2,则执行下一步;
S-24,从或者/>取中的任一点W,判断W是否属于Rq″和Rq″′:
若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″′坐标点;
若或/>执行下一步;
S-25,以W为起点坐标点,搜索围成第q″面Rq″和第q″′面Rq″′的折线点所对应的坐标点,以回到W作为终点坐标,得到去除相交面的坐标点。
例如,待处理的地理数据为MULTIPOLYGON((11,15,55,51,11),(44,42,62,64,44),(91,82,71,91))。
第一步,待处理的地理数据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);
第二步,第1面坐标点数据中的坐标点个数为4,从左到右依次分别为W1,1=(1,1)、W1,2=(1,5)、W1,3=(5,5)、W1,4=(5,1)、W1,5=(1,1);
第2面坐标点数据中的坐标点个数为4,从左到右依次分别为W2,1=(4,4)、W2,2=(4,2)、W2,3=(6,2)、W2,4=(6,4)、W2,5=(4,4);
第3面坐标点数据中的坐标点个数为3,从左到右依次分别为W3,1=(9,1)、W3,2=(8,2)、W3,3=(7,1)、W3,4=(9,1);
第三步,将坐标点(1,1)与坐标点(1,5)直线相连,将坐标点(1,5)与坐标点(5,5)直线相连,将坐标点(5,5)与坐标点(5,1)直线相连,将坐标点(5,1)与坐标点(1,1)直线相连;得到第1面;
将坐标点(4,4)与坐标点(4,2)直线相连,将坐标点(4,2)与坐标点(6,2)直线相连,将坐标点(6,2)与坐标点(6,4)直线相连,将坐标点(6,4)与坐标点(4,4)直线相连;得到第2面;
将坐标点(9,1)与坐标点(8,2)直线相连,将坐标点(8,2)与坐标点(7,1)直线相连,将坐标点(7,1)与坐标点(9,1)相连;得到第3面。
第四步,由于第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的缓冲,相交的两个面进行缓冲后与原几何图形一致并且没有相交。面相交、自相交、内环与外环相交和过锐角的修复也可以采用现有技术。
在本发明的一种优选实施方式中,将生成的地理图像进行图像输出的方法包括以下步骤:
S1,获取待导出图像的宽度、高度和分辨率,分别记作Kpicture、Gpicture和Rpicture,Kpicture表示待导出图像的宽度,单位为cm,cm表示长度单位厘米,Gpicture表示待导出图像的高度,单位为cm,cm表示长度单位厘米,Rpicture表示待导出图像的分辨率;单位为cm-1,cm-1表示分辨率单位每厘米像素个数;
S2,根据步骤S1中获取的待导出图像的宽度、高度和分辨率,生成待导出图像的颜色矩阵,记作:
其中,RGB1,1表示待导出图像中的第1行第1列的颜色值;RGB1,2表示待导出图像中的第1行第2列的颜色值;RGB1,3表示待导出图像中的第1行第3列的颜色值;RGB1,B表示待导出图像中的第1行第B列的颜色值;B=Kpicture×Rpicture;B表示待导出图像横向像素总个数,Kpicture表示待导出图像的宽度,单位为cm,cm表示长度单位厘米,Rpicture表示待导出图像的分辨率;单位为cm-1,cm-1表示分辨率单位每厘米像素个数;当A、B包括整数部分和小数部分时,取整数部分数值+1,即向上取整。RGB2,1表示待导出图像中的第2行第1列的颜色值;RGB2,2表示待导出图像中的第2行第2列的颜色值;RGB2,3表示待导出图像中的第2行第3列的颜色值;RGB2,B表示待导出图像中的第2行第B列的颜色值;RGB3,1表示待导出图像中的第3行第1列的颜色值;RGB3,2表示待导出图像中的第3行第2列的颜色值;RGB3,3表示待导出图像中的第3行第3列的颜色值;RGB3,B表示待导出图像中的第3行第B列的颜色值;RGBA,1表示待导出图像中的第A行第1列的颜色值;A=Gpicture×Rpicture;A表示待导出图像纵向像素总个数,Gpicture表示待导出图像的高度,单位为cm,cm表示长度单位厘米,Rpicture表示待导出图像的分辨率;单位为cm-1,cm-1表示分辨率单位每厘米像素个数;RGBA,2表示待导出图像中的第A行第2列的颜色值;RGBA,3表示待导出图像中的第A行第3列的颜色值;RGBA,B表示待导出图像中的第A行第B列的颜色值;
若A>B,可以在颜色矩阵的最右侧增加A-B列,构成A×A矩阵:
在颜色矩阵的后侧增加A-B列的颜色值均为0,即R=0,G=0,B=0;也可以在颜色矩阵的最左侧增加A-B列,构成A×A矩阵。
若B>A,可以在颜色矩阵的最下侧增加B-A行,构成B×B矩阵:
在颜色矩阵的下侧增加B-A行的颜色值均为0;也可以在颜色矩阵的最上侧增加B-A行,构成B×B矩阵。
S3,根据步骤S2中的颜色矩阵生成三色字符串矩阵;
S4,根据步骤S2中的颜色矩阵的行列数生成行列字符串矩阵;
S5,根据步骤S3中的三色字符串矩阵与步骤S4中的行列字符串矩阵生成行列三色字符串矩阵;
S6,对行列三色字符串矩阵中的行列三色字符串转换为三色行列字符串,得到三色行列字符串矩阵;
S7,对三色行列字符串矩阵中的字符串进行行列调整,行列调整的方式可以是三色行列字符串进行位置随机调换,得到行列字符串调整矩阵;
S8,将行列调整字符串矩阵中的字符串按照从左至右、从上到下的顺序写入文本,得到字符串文本。此为图像数据的导出,其图像数据的导入为图像数据的导出的逆运算。
在本发明的一种优选实施方式中,行列字符串调整矩阵的得到方法包括以下步骤:
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;
其中,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′列矩阵块;
S72,选择三色行列字符串矩阵的第a″″行第b″″列三色行列字符串所在矩阵块矩阵中的矩阵块K′a″″′,b″″′,1≤a″″′≤A′,1≤b″″′≤B′,且a″″′和b″″′为正整数;
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′}中:
若K′a″″′,b″″′在矩阵块集合中,则执行下一步;
若K′a″″′,b″″′不在矩阵块集合中,则执行步骤S75;
S74,计算得到其矩阵结果块K′a″″″,b″″″,if表示逻辑条件如果,&表示逻辑条件且,A″表示行设定值,B″表示列设定值,1≤A″≤A′,1≤B″≤B′,且A″、B″为正整数;
S75,判断K′a″″″,b″″″与矩阵块集合的逻辑关系:
若K′a″″″,b″″″属于矩阵块集合,则将矩阵块矩阵中的K′a″″″,b″″″与K′a″″′,b″″′进行位置互换,再将K′a″″″,b″″″和K′a″″′,b″″′从矩阵块集合中删除,更新矩阵块集合,执行下一步;
若K′a″″″,b″″″不属于矩阵块集合,则执行下一步;
S76,判断a″″与A′间的大小关系:
若a″″≥A′,则执行下一步;
若a″″<A′,则a″″=a″″+1,返回步骤S72;
S77,判断b″″与B′间的大小关系:
若b″″≥B′,则此时得到行列字符串调整矩阵:
其中,K1,1′表示行列字符串调整矩阵中的第1行第1列矩阵块;K1,2′表示行列字符串调整矩阵中的第1行第2列矩阵块;K1,3′表示行列字符串调整矩阵中的第1行第3列矩阵块;K1,B′′表示行列字符串调整矩阵中的第1行第B′列矩阵块;K2,1′表示行列字符串调整矩阵中的第2行第1列矩阵块;K2,2′表示行列字符串调整矩阵中的第2行第2列矩阵块;K2,3′表示行列字符串调整矩阵中的第2行第3列矩阵块;K2,B′′表示行列字符串调整矩阵中的第2行第B′列矩阵块;K3,1′表示行列字符串调整矩阵中的第3行第1列矩阵块;K3,2′表示行列字符串调整矩阵中的第3行第2列矩阵块;K3,3′表示行列字符串调整矩阵中的第3行第3列矩阵块;K3,B′′表示行列字符串调整矩阵中的第3行第B′列矩阵块;KA′,1′表示行列字符串调整矩阵中的第A′行第1列矩阵块;KA′,2′表示行列字符串调整矩阵中的第A′行第2列矩阵块;KA′,3′表示行列字符串调整矩阵中的第A′行第3列矩阵块;KA′,B′′表示行列字符串调整矩阵中的第A′行第B′列矩阵块;
将行列字符串调整矩阵改为一般式的矩阵;
若b″″<B′,则b″″=b″″+1,返回步骤S72。
S76,S77,也可以为:
S76,判断b″″与B′间的大小关系:
若b″″≥B′,则执行下一步;
若b″″<B′,则b″″=b″″+1,返回步骤S72;
S77,判断a″″与A′间的大小关系:
若a″″≥A′,则此时得到行列字符串调整矩阵:
将行列字符串调整矩阵改为一般式的矩阵;
若a″″<A′,则a″″=a″″+1,返回步骤S72。
假设三色行列字符串矩阵为8×6三色行列字符串矩阵,矩阵块矩阵为4×2矩阵块矩阵,A″=2,B″=1;
此时若三色行列字符串矩阵为
对应的矩阵块矩阵为
即是
行列字符串调整矩阵为:
将行列字符串调整矩阵改为一般式的矩阵:
在本发明的一种优选实施方式中,在步骤S72中,选择三色行列字符串矩阵的第a″″行第b″″列三色行列字符串所在的矩阵块Ka″″′,b″″′的方法为:
其中,表示向上取整;if表示逻辑条件如果;∈表示元素与集合的逻辑符号,属于;N表示自然数所组成的集合;int()表示取整数部分;/>表示元素与集合的逻辑符号,不属于;
例如,第一步,假设获取待导出图像的宽度为0.15mm、高度为0.1mm和分辨率为200cm-1,此时纵向像素总个数A=Gpicture×Rpicture=0.01×200=2,横向像素总个数B=Kpicture×Rpicture=0.015×200=3。
第二步,待导出图像的颜色矩阵为2×3矩阵:
该待导出图像的颜色矩阵的颜色值均为八进制;
数值-字符进制对照表
数值 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
字符 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d |
数值 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
字符 | e | f | g | h | i | j | k | l | m | n | o | p | q | r |
数值 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 |
字符 | s | t | u | v | w | x | y | z | A | B | C | D | E | F |
数值 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 |
字符 | G | H | I | J | K | L | M | N | O | P | Q | R | S | T |
数值 | 56 | 57 | 58 | 59 | 60 | 61 | ||||||||
字符 | U | V | W | X | Y | Z |
第三步,将2×3矩阵变为3×3矩阵:
第四步,将八进制矩阵变为十进制矩阵:
第五步,将十进制矩阵变为十六进制矩阵:
第六步,将十六进制矩阵变为位数(此处为四位,相当于R、G、B均为16位深度RGB,也可以是8位深度RGB,8位深度RGB的十六进制位数为2位,还可以是32位深度RGB,32位深度RGB的十六进制位数为8位)相同的十六进制矩阵:
第七步,将位数相同的十六进制矩阵变为三色字符串矩阵:
第八步,生成颜色矩阵的行号矩阵:
第九步,将行号矩阵变为十进制矩阵:
第十步,将十进制矩阵变为十六进制矩阵:
第十一步,将十六进制矩阵变为四位十六进制矩阵:
第十二步,将四位十六进制矩阵变为行列字符串矩阵:
第十三步,将三色字符串矩阵与行列字符串矩阵生成行列三色字符串矩阵:
第十四步,将行列三色字符串矩阵变为六十二进制矩阵:
第十五步,将六十二进制矩阵变为十二位六十二进制矩阵,即为三色行列字符串矩阵:
第十六步,将矩阵中的字符串按照从左至右、从上到下的顺序写入文本,得到字符串文本:
0lYHOz1k4N050lYJ6SJDeqgx0lYKPuIRSNHr0HXnWg17zhB70HXpoB4p0XbV0HXqr198SqdV13W48FzPS1eU13W5qB6nfbP213W6IwCUCmpa。
也可以是从右至左、从上到下的顺序写入文本,得到字符串文本:
0lYKPuIRSNHr0lYJ6SJDeqgx0lYHOz1k4N050HXqr198SqdV0HXpoB4p0XbV0HXnWg17zhB713W6IwCUCmpa13W5qB6nfbP213W48FzPS1eU。
还可以是从上至下、从左到右的顺序写入文本,得到字符串文本:
0lYHOz1k4N050HXnWg17zhB713W48FzPS1eU0lYJ6SJDeqgx0HXpoB4p0XbV13W5qB6nfbP20lYKPuIRSNHr0HXqr198SqdV13W6IwCUCmpa。其它写入顺序不再列举。
上述第十六步,也可以为以下步骤:
第十六步,对三色行列字符串矩阵中的字符串进行行列调整,得到行列字符串调整矩阵:
此时A″=2,B″=1。
第十七步,将矩阵中的字符串按照从左至右、从上到下的顺序写入文本,得到字符串文本:
0lYHOz1k4N050lYJ6SJDeqgx0lYKPuIRSNHr13W5qB6nfbP213W6IwCUCmpa0HXqr198SqdV13W48FzPS1eU0HXnWg17zhB70HXpoB4p0XbV。
上述第十六步,也可以为以下步骤:
第十六步,将三色行列字符串矩阵通过随机的方式(随机方式不宜解密,不推荐这种方式)变为随机矩阵:
第十七步,将矩阵中的字符串按照从左至右、从上到下的顺序写入文本,得到字符串文本:
0HXpoB4p0XbV13W6IwCUCmpa13W48FzPS1eU13W5qB6nfbP20lYHOz1k4N050HXqr198SqdV0lYKPuIRSNHr0HXnWg17zhB70lYJ6SJDeqgx。
在本发明的一种优选实施方式中,在步骤S6中,三色行列字符串矩阵的得到方法包括以下步骤:
S60,令行排数a″′=1,列排数b″′=1;
S61,获取行列三色字符串矩阵中的第a″′行第b″′列行列三色字符串;
S62,将行列三色字符串矩阵中的第a″′行第b″′列行列三色字符串转换为I进制,I>C;优选的,I=62,C=16。
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,则在三色列行字符串矩阵中各行各列字符串的左侧添加标识符,标识符为0,也可以为除大写字母A~Z、小写字母a~z和数字0~9以外的其它字符,例如!、@、#、$、Z、%、^、&、*等等,使三色列行字符串矩阵中各行各列字符串的位数均等于h;此时即得到A×B三色行列字符串矩阵。
在本发明的一种优选实施方式中,根据三色字符串矩阵与行列字符串矩阵生成行列三色字符串矩阵的方法包括以下步骤:
S51,令行组合数a″=1,列组合数b″=1;
S52,将三色字符串矩阵中的第a″行第b″列的三色字符串放置在行列字符串矩阵中的第a″行第b″列的行列字符串右侧,也可以将三色字符串矩阵中的第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。
在本发明的一种优选实施方式中,根据颜色矩阵的行列数生成行列字符串矩阵的方法包括以下步骤:
S40,令行序数a′=1,列序数b′=1;
S41,获取颜色值RGBa′,b′的矩阵行列号,矩阵行列号包括行号数和列号数;
S42,判断行号数和列号数是否为C进制:
若行号数和列号数均为C进制,则执行下一步;
若行号数和列号数不全为C进制,则将行号数和列号数变换为C进制;执行下一步;
S43,判断行号数和列号数是否为H位数:
若行号数和列号数均为H位数,优选的H=4,则执行下一步;
若行号数和列号数不全为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表示颜色值RGB1,1的行号数所对应的C进制行号数;C1表示颜色值RGB1,1的列号数所对应的C进制列号数;R1C1表示R1、C1按照从左向右排列所得的第1行第1列行列字符串;C2表示颜色值RGB1,2的列号数所对应的C进制列号数;R1C2表示R1、C2按照从左向右排列所得的第1行第2列行列字符串;C3表示颜色值RGB1,3的列号数所对应的C进制列号数;R1C3表示R1、C3按照从左向右排列所得的第1行第3列行列字符串;CB表示颜色值RGB1,B的列号数所对应的C进制列号数;R1CB表示R1、CB按照从左向右排列所得的第1行第B列行列字符串;R2表示颜色值RGB2,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列行列字符串;
若a′<A,则a′=a′+1,返回步骤S41。
在本发明的一种优选实施方式中,根据颜色矩阵生成三色字符串矩阵的方法包括以下步骤:
S31,令行增数a=1,列增数b=1;
S32,判断RGBa,b中的红色值、绿色值和蓝色值是否为C进制:
若RGBa,b中的红色值、绿色值和蓝色值均为C进制,则执行下一步;
若RGBa,b中的红色值、绿色值和蓝色值不全为C进制,则将RGBa,b中的红色值、绿色值和蓝色值变换为C进制;执行下一步;
S33,判断RGBa,b中的红色值、绿色值和蓝色值是否为D位数:
若RGBa,b中的红色值、绿色值和蓝色值均为D位数,优选的,D=4,则执行下一步;
若RGBa,b中的红色值、绿色值和蓝色值不全为D位数,则将RGBa,b中的红色值、绿色值和蓝色值变换为D位数;执行下一步;
S34,将RGBa,b中的绿色值放置在RGBa,b中的红色值的右侧,将RGBa,b中的蓝色值放置在RGBa,b中的绿色值的右侧,此时构成第a行第b列三色字符串;
S35,判断b与B间的大小关系:
若b≥B,则执行下一步;
若b<B,则b=b+1,返回步骤S32;
S36,判断a与A间的大小关系:
若a≥A,则构成三色字符串矩阵:
其中,RGB1,1(R)C表示RGB1,1中的C进制红色值;RGB1,1(G)C表示RGB1,1中的C进制绿色值;RGB1,1(B)C表示RGB1,1中的C进制蓝色值;RGB1,1(R)CRGB1,1(G)CRGB1,1(B)C表示红色值RGB1,1(R)C、绿色值RGB1,1(G)C和蓝色值RGB1,1(B)C按照从左向右排列所得的第1行第1列三色字符串;RGB1,2(R)C表示RGB1,2中的C进制红色值;RGB1,2(G)C表示RGB1,2中的C进制绿色值;RGB1,2(B)C表示RGB1,2中的C进制蓝色值;RGB1,2(R)CRGB1,2(G)CRGB1,2(B)C表示红色值RGB1,2(R)C、绿色值RGB1,2(G)C和蓝色值RGB1,2(B)C按照从左向右排列所得的第1行第2列三色字符串;RGB1,3(R)C表示RGB1,3中的C进制红色值;RGB1,3(G)C表示RGB1,3中的C进制绿色值;RGB1,3(B)C表示RGB1,3中的C进制蓝色值;RGB1,3(R)CRGB1,3(G)CRGB1,3(B)C表示红色值RGB1,3(R)C、绿色值RGB1,3(G)C和蓝色值RGB1,3(B)C按照从左向右排列所得的第1行第3列三色字符串;RGB1,B(R)C表示RGB1,B中的C进制红色值;RGB1,B(G)C表示RGB1,B中的C进制绿色值;RGB1,B(B)C表示RGB1,B中的C进制蓝色值;RGB1,B(R)CRGB1,B(G)CRGB1,B(B)C表示红色值RGB1,B(R)C、绿色值RGB1,B(G)C和蓝色值RGB1,B(B)C按照从左向右排列所得的第1行第B列三色字符串;RGB2,1(R)C表示RGB2,1中的C进制红色值;RGB2,1(G)C表示RGB2,1中的C进制绿色值;RGB2,1(B)C表示RGB2,1中的C进制蓝色值;RGB2,1(R)CRGB2,1(G)CRGB2,1(B)C表示红色值RGB2,1(R)C、绿色值RGB2,1(G)C和蓝色值RGB2,1(B)C按照从左向右排列所得的第2行第1列三色字符串;RGB2,2(R)C表示RGB2,2中的C进制红色值;RGB2,2(G)C表示RGB2,2中的C进制绿色值;RGB2,2(B)C表示RGB2,2中的C进制蓝色值;RGB2,2(R)CRGB2,2(G)CRGB2,2(B)C表示红色值RGB2,2(R)C、绿色值RGB2,2(G)C和蓝色值RGB2,2(B)C按照从左向右排列所得的第2行第2列三色字符串;RGB2,3(R)C表示RGB2,3中的C进制红色值;RGB2,3(G)C表示RGB2,3中的C进制绿色值;RGB2,3(B)C表示RGB2,3中的C进制蓝色值;RGB2,3(R)CRGB2,3(G)CRGB2,3(B)C表示红色值RGB2,3(R)C、绿色值RGB2,3(G)C和蓝色值RGB2,3(B)C按照从左向右排列所得的第2行第3列三色字符串;RGB2,B(R)C表示RGB2,B中的C进制红色值;RGB2,B(G)C表示RGB2,B中的C进制绿色值;RGB2,B(B)C表示RGB2,B中的C进制蓝色值;RGB2,B(R)CRGB2,B(G)CRGB2,B(B)C表示红色值RGB2,B(R)C、绿色值RGB2,B(G)C和蓝色值RGB2,B(B)C按照从左向右排列所得的第2行第B列三色字符串;RGB3,1(R)C表示RGB3,1中的C进制红色值;RGB3,1(G)C表示RGB3,1中的C进制绿色值;RGB3,1(B)C表示RGB3,1中的C进制蓝色值;RGB3,1(R)CRGB3,1(G)CRGB3,1(B)C表示红色值RGB3,1(R)C、绿色值RGB3,1(G)C和蓝色值RGB3,1(B)C按照从左向右排列所得的第3行第1列三色字符串;RGB3,2(R)C表示RGB3,2中的C进制红色值;RGB3,2(G)C表示RGB3,2中的C进制绿色值;RGB3,2(B)C表示RGB3,2中的C进制蓝色值;RGB3,2(R)CRGB3,2(G)CRGB3,2(B)C表示红色值RGB3,2(R)C、绿色值RGB3,2(G)C和蓝色值RGB3,2(B)C按照从左向右排列所得的第3行第2列三色字符串;RGB3,3(R)C表示RGB3,3中的C进制红色值;RGB3,3(G)C表示RGB3,3中的C进制绿色值;RGB3,3(B)C表示RGB3,3中的C进制蓝色值;RGB3,3(R)CRGB3,3(G)CRGB3,3(B)C表示红色值RGB3,3(R)C、绿色值RGB3,3(G)C和蓝色值RGB3,3(B)C按照从左向右排列所得的第3行第3列三色字符串;RGB3,B(R)C表示RGB3,B中的C进制红色值;RGB3,B(G)C表示RGB3,B中的C进制绿色值;RGB3,B(B)C表示RGB3,B中的C进制蓝色值;RGB3,B(R)CRGB3,B(G)CRGB3,B(B)C表示红色值RGB3,B(R)C、绿色值RGB3,B(G)C和蓝色值RGB3,B(B)C按照从左向右排列所得的第3行第B列三色字符串;RGBA,1(R)C表示RGBA,1中的C进制红色值;RGBA,1(G)C表示RGBA,1中的C进制绿色值;RGBA,1(B)C表示RGBA,1中的C进制蓝色值;RGBA,1(R)CRGBA,1(G)CRGBA,1(B)C表示红色值RGBA,1(R)C、绿色值RGBA,1(G)C和蓝色值RGBA,1(B)C按照从左向右排列所得的第A行第1列三色字符串;RGBA,2(R)C表示RGBA,2中的C进制红色值;RGBA,2(G)C表示RGBA,2中的C进制绿色值;RGBA,2(B)C表示RGBA,2中的C进制蓝色值;RGBA,2(R)CRGBA,2(G)CRGBA,2(B)C表示红色值RGBA,2(R)C、绿色值RGBA,2(G)C和蓝色值RGBA,2(B)C按照从左向右排列所得的第A行第2列三色字符串;RGBA,3(R)C表示RGBA,3中的C进制红色值;RGBA,3(G)C表示RGBA,3中的C进制绿色值;RGBA,3(B)C表示RGBA,3中的C进制蓝色值;RGBA,3(R)CRGBA,3(G)CRGBA,3(B)C表示红色值RGBA,3(R)C、绿色值RGBA,3(G)C和蓝色值RGBA,3(B)C按照从左向右排列所得的第A行第3列三色字符串;RGBA,B(R)C表示RGBA,B中的C进制红色值;RGBA,B(G)C表示RGBA,B中的C进制绿色值;RGBA,B(B)C表示RGBA,B中的C进制蓝色值;RGBA,B(R)CRGBA,B(G)CRGBA,B(B)C表示红色值RGBA,B(R)C、绿色值RGBA,B(G)C和蓝色值RGBA,B(B)C按照从左向右排列所得的第A行第B列三色字符串;
若a<A,则a=a+1,返回步骤S32。
在本发明的一种优选实施方式中,在步骤S33中,将RGBa,b中的红色值、绿色值和蓝色值变换为D位数的方法包括以下步骤:
S331,若||RGBa,b(R)||=D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则执行下一步;
若||RGBa,b(R)||<D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则在RGBa,b(R)的左侧补充D-||RGBa,b(R)||个标识符,标识符为0;
S332,若||RGBa,b(G)||=D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则执行下一步;
若||RGBa,b(G)||<D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则在RGBa,b(G)的左侧补充D-||RGBa,b(G)||个标识符;
S333,若||RGBa,b(B)||=D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则执行下一步;
若||RGBa,b(B)||<D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则在RGBa,b(B)的左侧补充D-||RGBa,b(B)||个标识符;
或者,S331,若||RGBa,b(R)||=D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则执行下一步;
若||RGBa,b(R)||<D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则在RGBa,b(R)的左侧补充D-||RGBa,b(R)||个标识符,标识符为0;
S332,若||RGBa,b(B)||=D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则执行下一步;
若||RGBa,b(B)||<D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则在RGBa,b(B)的左侧补充D-||RGBa,b(B)||个标识符;
S333,若||RGBa,b(G)||=D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则执行下一步;
若||RGBa,b(G)||<D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则在RGBa,b(G)的左侧补充D-||RGBa,b(G)||个标识符;
或者,S331,若||RGBa,b(G)||=D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则执行下一步;
若||RGBa,b(G)||<D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则在RGBa,b(G)的左侧补充D-||RGBa,b(G)||个标识符,标识符为0;
S332,若||RGBa,b(B)||=D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则执行下一步;
若||RGBa,b(B)||<D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则在RGBa,b(B)的左侧补充D-||RGBa,b(B)||个标识符;
S333,若||RGBa,b(R)||=D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则执行下一步;
若||RGBa,b(R)||<D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则在RGBa,b(R)的左侧补充D-||RGBa,b(R)||个标识符;
或者,S331,若||RGBa,b(G)||=D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则执行下一步;
若||RGBa,b(G)||<D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则在RGBa,b(G)的左侧补充D-||RGBa,b(G)||个标识符,标识符为0;
S332,若||RGBa,b(R)||=D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则执行下一步;
若||RGBa,b(R)||<D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则在RGBa,b(R)的左侧补充D-||RGBa,b(R)||个标识符;
S333,若||RGBa,b(B)||=D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则执行下一步;
若||RGBa,b(B)||<D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则在RGBa,b(B)的左侧补充D-||RGBa,b(B)||个标识符;
或者,S331,若||RGBa,b(B)||=D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则执行下一步;
若||RGBa,b(B)||<D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则在RGBa,b(B)的左侧补充D-||RGBa,b(B)||个标识符,标识符为0;
S332,若||RGBa,b(R)||=D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则执行下一步;
若||RGBa,b(R)||<D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则在RGBa,b(R)的左侧补充D-||RGBa,b(R)||个标识符;
S333,若||RGBa,b(G)||=D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则执行下一步;
若||RGBa,b(G)||<D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则在RGBa,b(G)的左侧补充D-||RGBa,b(G)||个标识符;
或者,S331,若||RGBa,b(B)||=D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则执行下一步;
若||RGBa,b(B)||<D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则在RGBa,b(B)的左侧补充D-||RGBa,b(B)||个标识符,标识符为0;
S332,若||RGBa,b(G)||=D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则执行下一步;
若||RGBa,b(G)||<D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则在RGBa,b(G)的左侧补充D-||RGBa,b(G)||个标识符;
S333,若||RGBa,b(R)||=D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则执行下一步;
若||RGBa,b(R)||<D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则在RGBa,b(R)的左侧补充D-||RGBa,b(R)||个标识符。
或者,S331,若||RGBa,b(R)||=D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则执行下一步;
若||RGBa,b(R)||<D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则在RGBa,b(R)的左侧补充D-||RGBa,b(R)||个标识符,标识符为0;
S332,若||RGBa,b(G)||=D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则执行下一步;
若||RGBa,b(G)||<D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则在RGBa,b(G)的左侧补充D-||RGBa,b(G)||个标识符;
S333,若||RGBa,b(B)||=D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则执行下一步;
若||RGBa,b(B)||<D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则在RGBa,b(B)的左侧补充D-||RGBa,b(B)||个标识符;
或者,S331,若||RGBa,b(R)||=D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则执行下一步;
若||RGBa,b(R)||<D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则在RGBa,b(R)的左侧补充D-||RGBa,b(R)||个标识符,标识符为0;
S332,若||RGBa,b(G)||=D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则执行下一步;
若||RGBa,b(G)||<D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则在RGBa,b(G)的左侧补充D-||RGBa,b(G)||个标识符;
S333,若||RGBa,b(B)||=D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则执行下一步;
若||RGBa,b(B)||<D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则在RGBa,b(B)的左侧补充D-||RGBa,b(B)||个标识符;
在本发明的一种优选实施方式中,在步骤S32中,将RGBa,b中的红色值、绿色值和蓝色值变换为C进制的方法为:
S321,获取RGBa,b中的红色值、绿色值和蓝色值的位数和进制;
S322,根据步骤S321获取的红色值、绿色值和蓝色值的位数和进制,计算得到红色第一值RGBa,b(R)|10、绿色第一值RGBa,b(G)|10和蓝色第一值RGBa,b(B)|10,红色第一值RGBa,b(R)|10、绿色第一值RGBa,b(G)|10和蓝色第一值RGBa,b(B)|10的计算方法为:
其中,RGBa,b(c)|10表示第一值,c=R、G和B,c为R时,RGBa,b(c)|10表示红色第一值,c为G时,RGBa,b(c)|10表示绿色第一值,c为B时,RGBa,b(c)|10表示蓝色第一值;
[[RGBa,b(c)]]1表示对应的红色值、绿色值和蓝色值按照从右向左第1位所对应的值;
c为R时,[[RGBa,b(c)]]1表示红色值按照从右向左第1位所对应的值;
c为G时,[[RGBa,b(c)]]1表示绿色值按照从右向左第1位所对应的值;
c为B时,[[RGBa,b(c)]]1表示蓝色值按照从右向左第1位所对应的值;
[[RGBa,b(c)]]2表示对应的红色值、绿色值和蓝色值按照从右向左第2位所对应的值;
c为R时,[[RGBa,b(c)]]2表示红色值按照从右向左第2位所对应的值;
c为G时,[[RGBa,b(c)]]2表示绿色值按照从右向左第2位所对应的值;
c为B时,[[RGBa,b(c)]]2表示蓝色值按照从右向左第2位所对应的值;
[[RGBa,b(c)]]3表示对应的红色值、绿色值和蓝色值按照从右向左第3位所对应的值;
c为R时,[[RGBa,b(c)]]3表示红色值按照从右向左第3位所对应的值;
c为G时,[[RGBa,b(c)]]3表示绿色值按照从右向左第3位所对应的值;
c为B时,[[RGBa,b(c)]]3表示蓝色值按照从右向左第3位所对应的值;
表示对应的红色值、绿色值和蓝色值按照从右向左第||RGBa,b(c)||位所对应的值;||RGBa,b(c)||表示RGBa,b中的对应的红色值、绿色值和蓝色值的位数;c为R时,||RGBa,b(c)||表示RGBa,b中的红色值的位数;c为G时,||RGBa,b(c)||表示RGBa,b中的绿色值的位数;c为B时,||RGBa,b(c)||表示RGBa,b中的蓝色值的位数;
c为R时,表示红色值按照从右向左第||RGBa,b(c)||位所对应的值;
c为G时,表示绿色值按照从右向左第||RGBa,b(c)||位所对应的值;
c为B时,表示蓝色值按照从右向左第||RGBa,b(c)||位所对应的值;
<c>表示对应的红色值、绿色值和蓝色值的进制数值;c为R时,<c>表示红色值的进制数值;c为G时,<c>表示绿色值的进制数值;c为B时,<c>表示蓝色值的进制数值;
S323,根据步骤S322中得到的红色第一值RGBa,b(R)|10、绿色第一值RGBa,b(G)|10和蓝色第一值RGBa,b(B)|10,计算得到红色第二值RGBa,b(R)|C、绿色第二值RGBa,b(G)|C和蓝色第二值RGBa,b(B)|C,红色第二值RGBa,b(R)|C、绿色第二值RGBa,b(G)|C和蓝色第二值RGBa,b(B)|C的计算方法包括以下步骤:
S3231,令初始值E0=RGBa,b(c)|10,递增第一值e=1;递增第二值f=1;
其中,Ee表示下一次计算值;Ee-1表示本次计算值;C表示C进制对应的数值;表示向下取整;if表示逻辑条件如果;∈表示元素与集合的逻辑符号,属于;N表示自然数所组成的集合;int()表示取整数部分;/>表示元素与集合的逻辑符号,不属于;
S3233,判断Ee与C的关系:
若Ee≥C,则e=e+1,返回步骤S3232;
若Ee<C-1,则执行下一步;
S3234,Ff=Ef-1%C,
其中,Ff表示第二值从右到左第f位所对应的数值;Ef-1表示替换值;%表示取余数部分;C表示C进制对应的数值;
S3235,判断f与e的关系:
若f≥e,则第二值即为EeFe…F3F2F1;其中,Ee表示下一次计算值;Fe表示第二值从右到左第e位所对应的数值;F3表示第二值从右到左第3位所对应的数值;F2表示第二值从右到左第2位所对应的数值;F1表示第二值从右到左第1位所对应的数值;
若f<e,则f=f+1,返回步骤S3234;
例如,将RGBa,b中的红色值为八进制的333333变换为十六进制为例(C=16):
第一步,
第二步,E0=112347,e=1,f=1。
第三步,由于因此/>所以
第四步,由于E1=7021≥C=16,因此e=e+1=1+1=2。
第五步,由于因此/>所以
第六步,由于E2=438≥C=16,因此e=e+1=2+1=3。
第七步,由于因此/>所以/>
第八步,由于E3=27≥C=16,因此e=e+1=3+1=4。
第九步,由于因此/>所以
第十步,由于E4=11<C=16,执行下一步,此时E4=11,e=4,f=1。
第十一步,
第十二步,由于f=1<e=4,因此f=f+1=1+1=2。
第十三步,
第十四步,由于f=2<e=4,因此f=f+1=2+1=3。
第十五步,
第十六步,由于f=3<e=4,因此f=f+1=3+1=4。
第十七步,
第十八步,由于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。
第十九步,红色第二值RGBa,b(R)|16即为EeFe…F3F2F1=E4F4F3F2F1=1B6DB。
该地理图像的输入方法,包括以下步骤:
S1,构建两个A″′×B″′矩阵,分别为第一矩阵和第二矩阵,其中,A″′、B″′可以是A″′=B″′=max(A,B),max(,)表示取最大者,也可以是A″′=A,B″′=B,A表示待导出图像纵向像素总个数,A=Gpicture×Rpicture;B表示待导出图像横向像素总个数,B=Kpicture×Rpicture;Gpicture表示待导出图像的高度Rpicture表示待导出图像的分辨率,Kpicture表示待导出图像的宽度;
S2,将字符串文本中的字符串依次分割成每个字符串位数为J表示字符串文本中字符串的总位数;
S3,将分割后的字符串按照从左至右、从上到下的顺序依次写入第一矩阵中,得到第一导入矩阵;
S4,将第一导入矩阵中的字符串变为C进制的字符串,得到位数相同的C进制第一导入矩阵;
S5,将第一导入矩阵中的每个字符串按照从右至左第1到D位作为对应字符串的蓝色值,将第一导入矩阵中的对应字符串按照从右至左第D+1到2D位作为每个字符串的绿色值,将第一导入矩阵中的每个字符串按照从右至左第2D+1到3D位作为对应字符串的红色值;
将第一导入矩阵中的每个字符串按照从右至左第3D+1到3D+H位作为对应字符串的列号,将第一导入矩阵中的每个字符串按照从右至左第3D+H+1到首位作为对应字符串的行号;
S6,按照行号和列号,将红色值、绿色值和蓝色值对应的写入行号和列号所对应的第二矩阵中,此时得到三色矩阵;
S7,根据三色矩阵的顺序将三色矩阵变为图像。
第一步,由于A″′=B″′=max(A,B)=max(2,3)=3,因此构建两个3×3矩阵,分别为第一矩阵和第二矩阵。
第二步,将字符串文本中的字符串0HXpoB4p0XbV13W6IwCUCmpa13W48FzPS1eU13W5qB6nfbP20lYHOz1k4N050HXqr198SqdV0lYKPuIRSNHr0HXnWg17zhB70lYJ6SJDeqgx依次分割成每个字符串位数为个:
0HXpoB4p0XbV 13W6IwCUCmpa 13W48FzPS1eU 13W5qB6nfbP2 0lYHOz1k4N050HXqr198SqdV 0lYKPuIRSNHr 0HXnWg17zhB7 0lYJ6SJDeqgx
第三步,将分割后的字符串按照从左至右、从上到下的顺序依次写入第一矩阵中,得到第一导入矩阵:
第四步,将第一导入矩阵中的字符串变为十六进制的字符串,得到位数相同的十六进制第一导入矩阵;
第五步,将第一导入矩阵中的每个字符串按照从右至左第1到4(此时D=4)位作为对应字符串的蓝色值,将第一导入矩阵中的对应字符串按照从右至左第5到8位作为每个字符串的绿色值,将第一导入矩阵中的每个字符串按照从右至左第9到12位作为对应字符串的红色值;
将第一导入矩阵中的每个字符串按照从右至左第13到16(此时H=4)位作为对应字符串的列号,将第一导入矩阵中的每个字符串按照从右至左第17到首位作为对应字符串的行号;
第六步,将行号、列号以及红色值、绿色值和蓝色值变为十进制:
第七步,按照行号和列号,将红色值、绿色值和蓝色值对应的写入行号和列号所对应的第二矩阵中,此时得到三色矩阵:
第八步,根据三色矩阵的顺序将三色矩阵变为图像。
该地理图像的输入方法,还可以是以下步骤:
S1,构建两个A″′×B″′矩阵,分别为第一矩阵和第二矩阵,其中,A″′、B″′可以是A″′=B″′=max(A,B),max(,)表示取最大者,也可以是A″′=A,B″′=B,A表示待导出图像纵向像素总个数,A=Gpicture×Rpicture;B表示待导出图像横向像素总个数,B=Kpicture×Rpicture;Gpicture表示待导出图像的高度Rpicture表示待导出图像的分辨率,Kpicture表示待导出图像的宽度;
S2,将字符串文本中的字符串依次分割成每个字符串位数为J表示字符串文本中字符串的总位数;
S3,将分割后的字符串按照从左至右、从上到下的顺序依次写入第一矩阵中,得到第一导入矩阵;
S4,将第一导入矩阵中的字符串变为C进制的字符串,得到位数相同的C进制第一导入矩阵;
S5,将第一导入矩阵中的每个字符串按照从右至左第1到D位作为对应字符串的蓝色值,将第一导入矩阵中的对应字符串按照从右至左第D+1到2D位作为每个字符串的绿色值,将第一导入矩阵中的每个字符串按照从右至左第2D+1到3D位作为对应字符串的红色值;
将第一导入矩阵中的每个字符串按照从右至左第3D+1到3D+H位作为对应字符串的列号,将第一导入矩阵中的每个字符串按照从右至左第3D+H+1到首位作为对应字符串的行号;
S6,按照行号和列号,将红色值、绿色值和蓝色值对应的写入行号和列号所对应的第二矩阵中,此时得到三色矩阵;
S7,将三色矩阵进行调整,得到三色调整矩阵;
S8,根据三色调整矩阵的顺序将三色调整矩阵变为图像。
在本发明的一种优选实施方式中,对三色矩阵进行调整的方法包括以下步骤:
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;
S72,选择三色矩阵的第a″″行第b″″列字符串所在矩阵块矩阵中的矩阵块Ka″″′,b″″′,1≤a″″′≤A′,1≤b″″′≤B′,且a″″′和b″″′为正整数;
S73,判断Ka″″′,b″″′是否在矩阵块集合{K1,1,K1,2,K1,3,…,K1,B′,K2,1,K2,2,K2,3,…,K2,B′,K3,1,K3,2,K3,3,…,K3,B′,…,KA′,1,KA′,2,KA′,3,…,KA′,B′}中:
若Ka″″′,b″″′在矩阵块集合中,则执行下一步;
若Ka″″′,b″″′不在矩阵块集合中,则执行步骤S75;
S73,计算得到其矩阵结果块Ka″″″,b″″″,if表示逻辑条件如果,&表示逻辑条件且,A″表示行设定值,B″表示列设定值,1≤A″≤A′,1≤B″≤B′,且A″、B″为正整数;
S75,判断Ka″″″,b″″″与矩阵块集合的逻辑关系:
若Ka″″″,b″″″属于矩阵块集合,则将Ka″″″,b″″″与Ka″″′,b″″′进行位置互换,将Ka″″″,b″″″和Ka″″′,b″″′从矩阵块集合中删除,更新矩阵块集合,执行下一步;
若Ka″″″,b″″″不属于矩阵块集合,则执行下一步;
S74,判断a″″与A′间的大小关系:
若a″″≥A′,则执行下一步;
若a″″<A′,则a″″=a″″+1,返回步骤S72;
S75,判断b″″与B′间的大小关系:
若b″″≥B′,则此时得到三色调整矩阵:
若b″″<B′,则b″″=b″″+1,返回步骤S72。
同样S76,S77,也可以为:
S76,判断b″″与B′间的大小关系:
若b″″≥B′,则执行下一步;
若b″″<B′,则b″″=b″″+1,返回步骤S72;
S77,判断a″″与A′间的大小关系:
若a″″≥A′,则此时得到行列字符串调整矩阵:
若a″″<A′,则a″″=a″″+1,返回步骤S72。
在本发明的一种优选实施方式中,在步骤S72中,选择三色矩阵的第a″″行第b″″列字符串所在的矩阵块Ka″″′,b″″′的方法为:
其中,表示向上取整;if表示逻辑条件如果;∈表示元素与集合的逻辑符号,属于;N表示自然数所组成的集合;int()表示取整数部分;/>表示元素与集合的逻辑符号,不属于;
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
Claims (8)
1.一种基于geotools工具修复自相交的地理图像输出方法,其特征在于,包括以下步骤:
S-1,获取待处理的地理数据;
S-2,将步骤S-1中的地理数据进行去自相交后,得到去自相交地理数据;
S-3,将去自相交的地理数据生成地理图像,将生成的地理图像进行图像输出,将生成的地理图像进行图像输出的方法包括以下步骤:
S1,获取待导出图像的宽度、高度和分辨率,分别记作Kpicture、Gpicture和Rpicture,Kpicture表示待导出图像的宽度,单位为cm,cm表示长度单位厘米,Gpicture表示待导出图像的高度,单位为cm,cm表示长度单位厘米,Rpicture表示待导出图像的分辨率;单位为cm-1,cm-1表示分辨率单位每厘米像素个数;
S2,根据步骤S1中获取的待导出图像的宽度、高度和分辨率,生成待导出图像的颜色矩阵,记作:
其中,RGB1,1表示待导出图像中的第1行第1列的颜色值;
RGB1,2表示待导出图像中的第1行第2列的颜色值;
RGB1,3表示待导出图像中的第1行第3列的颜色值;
RGB1,B表示待导出图像中的第1行第B列的颜色值;B=Kpicture×Rpicture;B表示待导出图像横向像素总个数,Kpicture表示待导出图像的宽度,单位为cm,cm表示长度单位厘米,Rpicture表示待导出图像的分辨率;单位为cm-1,cm-1表示分辨率单位每厘米像素个数;
RGB2,1表示待导出图像中的第2行第1列的颜色值;
RGB2,2表示待导出图像中的第2行第2列的颜色值;
RGB2,3表示待导出图像中的第2行第3列的颜色值;
RGB2,B表示待导出图像中的第2行第B列的颜色值;
RGB3,1表示待导出图像中的第3行第1列的颜色值;
RGB3,2表示待导出图像中的第3行第2列的颜色值;
RGB3,3表示待导出图像中的第3行第3列的颜色值;
RGB3,B表示待导出图像中的第3行第B列的颜色值;
RGBA,1表示待导出图像中的第A行第1列的颜色值;A=Gpicture×Rpicture;A表示待导出图像纵向像素总个数,Gpicture表示待导出图像的高度,单位为cm,cm表示长度单位厘米,Rpicture表示待导出图像的分辨率;单位为cm-1,cm-1表示分辨率单位每厘米像素个数;
RGBA,2表示待导出图像中的第A行第2列的颜色值;
RGBA,3表示待导出图像中的第A行第3列的颜色值;
RGBA,B表示待导出图像中的第A行第B列的颜色值;
S3,根据步骤S2中的颜色矩阵生成三色字符串矩阵;
S4,根据步骤S2中的颜色矩阵的行列数生成行列字符串矩阵;
S5,根据步骤S3中的三色字符串矩阵与步骤S4中的行列字符串矩阵生成行列三色字符串矩阵;
S6,对行列三色字符串矩阵中的行列三色字符串转换为三色行列字符串,得到三色行列字符串矩阵;
S7,将三色行列字符串矩阵中的字符串按照从左至右、从上到下的顺序写入文本,得到字符串文本。
2.根据权利要求1所述的基于geotools工具修复自相交的地理图像输出方法,其特征在于,在步骤S-2中得到去自相交地理数据的方法为:
使用geotools工具,找到自相交几何图形自相交的部分,再使用原始几何图形将自相交的部分去除,得到的几何图形便去除了自相交的部分。
3.根据权利要求1所述的基于geotools工具修复自相交的地理图像输出方法,其特征在于,在步骤S6中,三色行列字符串矩阵的得到方法包括以下步骤:
S60,令行排数a″′=1,列排数b″′=1;
S61,获取行列三色字符串矩阵中的第a″′行第b″′列行列三色字符串;
S62,将行列三色字符串矩阵中的第a″′行第b″′列行列三色字符串转换为I进制,I>C;将行列三色字符串矩阵中的第a″′行第b″′列行列三色字符串转换为I进制的方法与将RGBa,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;此时即得到三色行列字符串矩阵。
4.根据权利要求1所述的基于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。
5.根据权利要求1所述的基于geotools工具修复自相交的地理图像输出方法,其特征在于,在步骤S4中,根据颜色矩阵的行列数生成行列字符串矩阵的方法包括以下步骤:
S40,令行序数a′=1,列序数b′=1;
S41,获取颜色值RGBa′,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表示颜色值RGB1,1的行号数所对应的C进制行号数;
C1表示颜色值RGB1,1的列号数所对应的C进制列号数;
R1C1表示R1、C1按照从左向右排列所得的第1行第1列行列字符串;
C2表示颜色值RGB1,2的列号数所对应的C进制列号数;
R1C2表示R1、C2按照从左向右排列所得的第1行第2列行列字符串;
C3表示颜色值RGB1,3的列号数所对应的C进制列号数;
R1C3表示R1、C3按照从左向右排列所得的第1行第3列行列字符串;
CB表示颜色值RGB1,B的列号数所对应的C进制列号数;
R1CB表示R1、CB按照从左向右排列所得的第1行第B列行列字符串;
R2表示颜色值RGB2,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列行列字符串;
若a′<A,则a′=a′+1,返回步骤S41。
6.根据权利要求1所述的基于geotools工具修复自相交的地理图像输出方法,其特征在于,在步骤S3中,根据颜色矩阵生成三色字符串矩阵的方法包括以下步骤:
S31,令行增数a=1,列增数b=1;
S32,判断RGBa,b中的红色值、绿色值和蓝色值是否为C进制:
若RGBa,b中的红色值、绿色值和蓝色值均为C进制,则执行下一步;
若RGBa,b中的红色值、绿色值和蓝色值不全为C进制,则将RGBa,b中的红色值、绿色值和蓝色值变换为C进制;执行下一步;
S33,判断RGBa,b中的红色值、绿色值和蓝色值是否为D位数:
若RGBa,b中的红色值、绿色值和蓝色值均为D位数,则执行下一步;
若RGBa,b中的红色值、绿色值和蓝色值不全为D位数,则将RGBa,b中的红色值、绿色值和蓝色值变换为D位数;执行下一步;
S34,将RGBa,b中的绿色值放置在RGBa,b中的红色值的右侧,将RGBa,b中的蓝色值放置在RGBa,b中的绿色值的右侧,此时构成第a行第b列三色字符串;
S35,判断b与B间的大小关系:
若b≥B,则执行下一步;
若b<B,则b=b+1,返回步骤S32;
S36,判断a与A间的大小关系:
若a≥A,则构成三色字符串矩阵:
其中,RGB1,1(R)C表示RGB1,1中的C进制红色值;
RGB1,1(G)C表示RGB1,1中的C进制绿色值;
RGB1,1(B)C表示RGB1,1中的C进制蓝色值;
RGB1,1(R)CRGB1,1(G)CRGB1,1(B)C表示红色值RGB1,1(R)C、绿色值RGB1,1(G)C和蓝色值RGB1,1(B)C按照从左向右排列所得的第1行第1列三色字符串;
RGB1,2(R)C表示RGB1,2中的C进制红色值;
RGB1,2(G)C表示RGB1,2中的C进制绿色值;
RGB1,2(B)C表示RGB1,2中的C进制蓝色值;
RGB1,2(R)CRGB1,2(G)CRGB1,2(B)C表示红色值RGB1,2(R)C、绿色值RGB1,2(G)C和蓝色值RGB1,2(B)C按照从左向右排列所得的第1行第2列三色字符串;
RGB1,3(R)C表示RGB1,3中的C进制红色值;
RGB1,3(G)C表示RGB1,3中的C进制绿色值;
RGB1,3(B)C表示RGB1,3中的C进制蓝色值;
RGB1,3(R)CRGB1,3(G)CRGB1,3(B)C表示红色值RGB1,3(R)C、绿色值RGB1,3(G)C和蓝色值RGB1,3(B)C按照从左向右排列所得的第1行第3列三色字符串;
RGB1,B(R)C表示RGB1,B中的C进制红色值;
RGB1,B(G)C表示RGB1,B中的C进制绿色值;
RGB1,B(B)C表示RGB1,B中的C进制蓝色值;
RGB1,B(R)CRGB1,B(G)CRGB1,B(B)C表示红色值RGB1,B(R)C、绿色值RGB1,B(G)C和蓝色值RGB1,B(B)C按照从左向右排列所得的第1行第B列三色字符串;
RGB2,1(R)C表示RGB2,1中的C进制红色值;
RGB2,1(G)C表示RGB2,1中的C进制绿色值;
RGB2,1(B)C表示RGB2,1中的C进制蓝色值;
RGB2,1(R)CRGB2,1(G)CRGB2,1(B)C表示红色值RGB2,1(R)C、绿色值RGB2,1(G)C和蓝色值RGB2,1(B)C按照从左向右排列所得的第2行第1列三色字符串;
RGB2,2(R)C表示RGB2,2中的C进制红色值;
RGB2,2(G)C表示RGB2,2中的C进制绿色值;
RGB2,2(B)C表示RGB2,2中的C进制蓝色值;
RGB2,2(R)CRGB2,2(G)CRGB2,2(B)C表示红色值RGB2,2(R)C、绿色值RGB2,2(G)C和蓝色值RGB2,2(B)C按照从左向右排列所得的第2行第2列三色字符串;
RGB2,3(R)C表示RGB2,3中的C进制红色值;
RGB2,3(G)C表示RGB2,3中的C进制绿色值;
RGB2,3(B)C表示RGB2,3中的C进制蓝色值;
RGB2,3(R)CRGB2,3(G)CRGB2,3(B)C表示红色值RGB2,3(R)C、绿色值RGB2,3(G)C和蓝色值RGB2,3(B)C按照从左向右排列所得的第2行第3列三色字符串;
RGB2,B(R)C表示RGB2,B中的C进制红色值;
RGB2,B(G)C表示RGB2,B中的C进制绿色值;
RGB2,B(B)C表示RGB2,B中的C进制蓝色值;
RGB2,B(R)CRGB2,B(G)CRGB2,B(B)C表示红色值RGB2,B(R)C、绿色值RGB2,B(G)C和蓝色值RGB2,B(B)C按照从左向右排列所得的第2行第B列三色字符串;
RGB3,1(R)C表示RGB3,1中的C进制红色值;
RGB3,1(G)C表示RGB3,1中的C进制绿色值;
RGB3,1(B)C表示RGB3,1中的C进制蓝色值;
RGB3,1(R)CRGB3,1(G)CRGB3,1(B)C表示红色值RGB3,1(R)C、绿色值RGB3,1(G)C和蓝色值RGB3,1(B)C按照从左向右排列所得的第3行第1列三色字符串;
RGB3,2(R)C表示RGB3,2中的C进制红色值;
RGB3,2(G)C表示RGB3,2中的C进制绿色值;
RGB3,2(B)C表示RGB3,2中的C进制蓝色值;
RGB3,2(R)CRGB3,2(G)CRGB3,2(B)C表示红色值RGB3,2(R)C、绿色值RGB3,2(G)C和蓝色值RGB3,2(B)C按照从左向右排列所得的第3行第2列三色字符串;
RGB3,3(R)C表示RGB3,3中的C进制红色值;
RGB3,3(G)C表示RGB3,3中的C进制绿色值;
RGB3,3(B)C表示RGB3,3中的C进制蓝色值;
RGB3,3(R)CRGB3,3(G)CRGB3,3(B)C表示红色值RGB3,3(R)C、绿色值RGB3,3(G)C和蓝色值RGB3,3(B)C按照从左向右排列所得的第3行第3列三色字符串;
RGB3,B(R)C表示RGB3,B中的C进制红色值;
RGB3,B(G)C表示RGB3,B中的C进制绿色值;
RGB3,B(B)C表示RGB3,B中的C进制蓝色值;
RGB3,B(R)CRGB3,B(G)CRGB3,B(B)C表示红色值RGB3,B(R)C、绿色值RGB3,B(G)C和蓝色值RGB3,B(B)C按照从左向右排列所得的第3行第B列三色字符串;
RGBA,1(R)C表示RGBA,1中的C进制红色值;
RGBA,1(G)C表示RGBA,1中的C进制绿色值;
RGBA,1(B)C表示RGBA,1中的C进制蓝色值;
RGBA,1(R)CRGBA,1(G)CRGBA,1(B)C表示红色值RGBA,1(R)C、绿色值RGBA,1(G)C和蓝色值RGBA,1(B)C按照从左向右排列所得的第A行第1列三色字符串;
RGBA,2(R)C表示RGBA,2中的C进制红色值;
RGBA,2(G)C表示RGBA,2中的C进制绿色值;
RGBA,2(B)C表示RGBA,2中的C进制蓝色值;
RGBA,2(R)CRGBA,2(G)CRGBA,2(B)C表示红色值RGBA,2(R)C、绿色值RGBA,2(G)C和蓝色值RGBA,2(B)C按照从左向右排列所得的第A行第2列三色字符串;
RGBA,3(R)C表示RGBA,3中的C进制红色值;
RGBA,3(G)C表示RGBA,3中的C进制绿色值;
RGBA,3(B)C表示RGBA,3中的C进制蓝色值;
RGBA,3(R)CRGBA,3(G)CRGBA,3(B)C表示红色值RGBA,3(R)C、绿色值RGBA,3(G)C和蓝色值RGBA,3(B)C按照从左向右排列所得的第A行第3列三色字符串;
RGBA,B(R)C表示RGBA,B中的C进制红色值;
RGBA,B(G)C表示RGBA,B中的C进制绿色值;
RGBA,B(B)C表示RGBA,B中的C进制蓝色值;
RGBA,B(R)CRGBA,B(G)CRGBA,B(B)C表示红色值RGBA,B(R)C、绿色值RGBA,B(G)C和蓝色值RGBA,B(B)C按照从左向右排列所得的第A行第B列三色字符串;
若a<A,则a=a+1,返回步骤S32。
7.根据权利要求6所述的基于geotools工具修复自相交的地理图像输出方法,其特征在于,在步骤S33中,将RGBa,b中的红色值、绿色值和蓝色值变换为D位数的方法包括以下步骤:
S331,若||RGBa,b(R)||=D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则执行下一步;
若||RGBa,b(R)||<D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则在RGBa,b(R)的左侧补充D-||RGBa,b(R)||个标识符;
S332,若||RGBa,b(G)||=D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则执行下一步;
若||RGBa,b(G)||<D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则在RGBa,b(G)的左侧补充D-||RGBa,b(G)||个标识符;
S333,若||RGBa,b(B)||=D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则执行下一步;
若||RGBa,b(B)||<D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则在RGBa,b(B)的左侧补充D-||RGBa,b(B)||个标识符;
或者,S331,若||RGBa,b(R)||=D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则执行下一步;
若||RGBa,b(R)||<D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则在RGBa,b(R)的左侧补充D-||RGBa,b(R)||个标识符;
S332,若||RGBa,b(B)||=D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则执行下一步;
若||RGBa,b(B)||<D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则在RGBa,b(B)的左侧补充D-||RGBa,b(B)||个标识符;
S333,若||RGBa,b(G)||=D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则执行下一步;
若||RGBa,b(G)||<D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则在RGBa,b(G)的左侧补充D-||RGBa,b(G)||个标识符;
或者,S331,若||RGBa,b(G)||=D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则执行下一步;
若||RGBa,b(G)||<D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则在RGBa,b(G)的左侧补充D-||RGBa,b(G)||个标识符;
S332,若||RGBa,b(B)||=D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则执行下一步;
若||RGBa,b(B)||<D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则在RGBa,b(B)的左侧补充D-||RGBa,b(B)||个标识符;
S333,若||RGBa,b(R)||=D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则执行下一步;
若||RGBa,b(R)||<D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则在RGBa,b(R)的左侧补充D-||RGBa,b(R)||个标识符;
或者,S331,若||RGBa,b(G)||=D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则执行下一步;
若||RGBa,b(G)||<D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则在RGBa,b(G)的左侧补充D-||RGBa,b(G)||个标识符;
S332,若||RGBa,b(R)||=D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则执行下一步;
若||RGBa,b(R)||<D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则在RGBa,b(R)的左侧补充D-||RGBa,b(R)||个标识符;
S333,若||RGBa,b(B)||=D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则执行下一步;
若||RGBa,b(B)||<D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则在RGBa,b(B)的左侧补充D-||RGBa,b(B)||个标识符;
或者,S331,若||RGBa,b(B)||=D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则执行下一步;
若||RGBa,b(B)||<D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则在RGBa,b(B)的左侧补充D-||RGBa,b(B)||个标识符;
S332,若||RGBa,b(R)||=D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则执行下一步;
若||RGBa,b(R)||<D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则在RGBa,b(R)的左侧补充D-||RGBa,b(R)||个标识符;
S333,若||RGBa,b(G)||=D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则执行下一步;
若||RGBa,b(G)||<D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则在RGBa,b(G)的左侧补充D-||RGBa,b(G)||个标识符;
或者,S331,若‖RGBa,b(B)||=D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则执行下一步;
若||RGBa,b(B)||<D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则在RGBa,b(B)的左侧补充D-||RGBa,b(B)||个标识符;
S332,若||RGBa,b(G)||=D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则执行下一步;
若||RGBa,b(G)||<D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则在RGBa,b(G)的左侧补充D-||RGBa,b(G)||个标识符;
S333,若||RGBa,b(R)||=D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则执行下一步;
若||RGBa,b(R)||<D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则在RGBa,b(R)的左侧补充D-||RGBa,b(R)||个标识符;
或者,S331,若||RGBa,b(R)||=D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则执行下一步;
若||RGBa,b(R)||<D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则在RGBa,b(R)的左侧补充D-||RGBa,b(R)||个标识符;
S332,若||RGBa,b(G)||=D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则执行下一步;
若||RGBa,b(G)||<D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则在RGBa,b(G)的左侧补充D-||RGBa,b(G)||个标识符;
S333,若||RGBa,b(B)||=D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则执行下一步;
若||RGBa,b(B)||<D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则在RGBa,b(B)的左侧补充D-||RGBa,b(B)||个标识符;
或者,S331,若||RGBa,b(R)||=D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则执行下一步;
若||RGBa,b(R)||<D,RGBa,b(R)表示RGBa,b中的红色值,|| ||表示求数值的位数,||RGBa,b(R)||表示RGBa,b中的红色值的位数,则在RGBa,b(R)的左侧补充D-||RGBa,b(R)||个标识符;
S332,若||RGBa,b(G)||=D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则执行下一步;
若||RGBa,b(G)||<D,RGBa,b(G)表示RGBa,b中的绿色值,|| ||表示求数值的位数,||RGBa,b(G)||表示RGBa,b中的绿色值的位数,则在RGBa,b(G)的左侧补充D-||RGBa,b(G)||个标识符;
S333,若||RGBa,b(B)||=D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则执行下一步;
若||RGBa,b(B)||<D,RGBa,b(B)表示RGBa,b中的蓝色值,|| ||表示求数值的位数,||RGBa,b(B)||表示RGBa,b中的蓝色值的位数,则在RGBa,b(B)的左侧补充D-||RGBa,b(B)||个标识符。
8.根据权利要求6所述的基于geotools工具修复自相交的地理图像输出方法,其特征在于,在步骤S32中,将RGBa,b中的红色值、绿色值和蓝色值变换为C进制的方法为:
S321,获取RGBa,b中的红色值、绿色值和蓝色值的位数和进制;
S322,根据步骤S321获取的红色值、绿色值和蓝色值的位数和进制,计算得到红色第一值RGBa,b(R)|10、绿色第一值RGBa,b(G)|10和蓝色第一值RGBa,b(B)|10,红色第一值RGBa,b(R)|10、绿色第一值RGBa,b(G)|10和蓝色第一值RGBa,b(B)|10的计算方法为:
其中,RGBa,b(c)|10表示第一值,c=R、G和B,c为R时,RGBa,b(c)|10表示红色第一值,c为G时,RGBa,b(c)|10表示绿色第一值,c为B时,RGBa,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位所对应的值;
表示对应的红色值、绿色值和蓝色值按照从右向左第||RGBa,b(c)||位所对应的值;||RGBa,b(c)||表示RGBa,b中的对应的红色值、绿色值和蓝色值的位数;c为R时,||RGBa,b(c)||表示RGBa,b中的红色值的位数;c为G时,||RGBa,b(c)||表示RGBa,b中的绿色值的位数;c为B时,||RGBa,b(c)||表示RGBa,b中的蓝色值的位数;
c为R时,表示红色值按照从右向左第||RGBa,b(c)||位所对应的值;
c为G时,表示绿色值按照从右向左第||RGBa,b(c)||位所对应的值;
c为B时,表示蓝色值按照从右向左第||RGBa,b(c)||位所对应的值;
<c>表示对应的红色值、绿色值和蓝色值的进制数值;c为R时,<c>表示红色值的进制数值;c为G时,<c>表示绿色值的进制数值;c为B时,<c>表示蓝色值的进制数值;
S323,根据步骤S322中得到的红色第一值RGBa,b(R)|10、绿色第一值RGBa,b(G)|10和蓝色第一值RGBa,b(B)|10,计算得到红色第二值RGBa,b(R)|C、绿色第二值RGBa,b(G)|C和蓝色第二值RGBa,b(B)|C,红色第二值RGBa,b(R)|C、绿色第二值RGBa,b(G)|C和蓝色第二值RGBa,b(B)|C的计算方法包括以下步骤:
S3231,令初始值E0=RGBa,b(c)|10,递增第一值e=1;递增第二值f=1;
S3232,
其中,Ee表示下一次计算值;
Ee-1表示本次计算值;
C表示C进制对应的数值;
表示向下取整;
if表示逻辑条件如果;
∈表示元素与集合的逻辑符号,属于;
N表示自然数所组成的集合;
int()表示取整数部分;
表示元素与集合的逻辑符号,不属于;
S3233,判断Ee与C的关系:
若Ee≥C,则e=e+1,返回步骤S3232;
若Ee<C-1,则执行下一步;
S3234,Ff=Ef-1%C,
其中,Ff表示第二值从右到左第f位所对应的数值;
Ef-1表示替换值;
%表示取余数部分;
C表示C进制对应的数值;
S3235,判断f与e的关系:
若f≥e,则第二值即为EeFe…F3F2F1;其中,Ee表示下一次计算值;Fe表示第二值从右到左第e位所对应的数值;F3表示第二值从右到左第3位所对应的数值;F2表示第二值从右到左第2位所对应的数值;F1表示第二值从右到左第1位所对应的数值;
若f<e,则f=f+1,返回步骤S3234。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310723913.5A CN116842117B (zh) | 2023-06-19 | 2023-06-19 | 一种基于geotools工具修复自相交的地理图像输出方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310723913.5A CN116842117B (zh) | 2023-06-19 | 2023-06-19 | 一种基于geotools工具修复自相交的地理图像输出方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116842117A CN116842117A (zh) | 2023-10-03 |
CN116842117B true CN116842117B (zh) | 2024-03-12 |
Family
ID=88164512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310723913.5A Active CN116842117B (zh) | 2023-06-19 | 2023-06-19 | 一种基于geotools工具修复自相交的地理图像输出方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116842117B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0210764D0 (en) * | 2002-05-10 | 2002-06-19 | Nec Electronics Europ Gmbh | Graphics engine,and display driver IC and display module incorporating the graphics engine |
WO2010103888A1 (ja) * | 2009-03-10 | 2010-09-16 | シャープ株式会社 | コンテンツ表示装置、コンテンツ表示方法、およびコンテンツ表示プログラムを記録するコンピュータ読取可能な記録媒体 |
CN108174193A (zh) * | 2018-01-03 | 2018-06-15 | 京东方科技集团股份有限公司 | 一种图像处理方法和图像处理装置 |
CN109559270A (zh) * | 2018-11-06 | 2019-04-02 | 华为技术有限公司 | 一种图像处理方法及电子设备 |
CN112330768A (zh) * | 2020-11-27 | 2021-02-05 | 安徽信息工程学院 | 基于数据特征的图像快速合成方法 |
CN112396128A (zh) * | 2020-12-08 | 2021-02-23 | 中国铁路设计集团有限公司 | 一种铁路外部环境风险源样本自动标注方法 |
CN113298726A (zh) * | 2021-05-14 | 2021-08-24 | 漳州万利达科技有限公司 | 一种图像显示调整方法、装置、显示设备和存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050212806A1 (en) * | 2002-05-10 | 2005-09-29 | Metod Koselj | Graphics engine converting individual commands to spatial image information, and electrical device and memory incorporating the graphics engine |
US8345117B2 (en) * | 2010-06-30 | 2013-01-01 | Hand Held Products, Inc. | Terminal outputting monochrome image data and color image data |
-
2023
- 2023-06-19 CN CN202310723913.5A patent/CN116842117B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0210764D0 (en) * | 2002-05-10 | 2002-06-19 | Nec Electronics Europ Gmbh | Graphics engine,and display driver IC and display module incorporating the graphics engine |
WO2010103888A1 (ja) * | 2009-03-10 | 2010-09-16 | シャープ株式会社 | コンテンツ表示装置、コンテンツ表示方法、およびコンテンツ表示プログラムを記録するコンピュータ読取可能な記録媒体 |
CN108174193A (zh) * | 2018-01-03 | 2018-06-15 | 京东方科技集团股份有限公司 | 一种图像处理方法和图像处理装置 |
CN109559270A (zh) * | 2018-11-06 | 2019-04-02 | 华为技术有限公司 | 一种图像处理方法及电子设备 |
CN112330768A (zh) * | 2020-11-27 | 2021-02-05 | 安徽信息工程学院 | 基于数据特征的图像快速合成方法 |
CN112396128A (zh) * | 2020-12-08 | 2021-02-23 | 中国铁路设计集团有限公司 | 一种铁路外部环境风险源样本自动标注方法 |
CN113298726A (zh) * | 2021-05-14 | 2021-08-24 | 漳州万利达科技有限公司 | 一种图像显示调整方法、装置、显示设备和存储介质 |
Non-Patent Citations (3)
Title |
---|
A hash-based image encryption algorithm;Abbas Cheddad 等;《Optics Communications》;20100315;879-893 * |
CMYK图像的TIFF格式存储及编程实现;胡涛 等;《出版与印刷》;20061215(第04期);37-39+51 * |
基于以太网传输的图像处理系统设计及FPGA实现;高尚尚 等;《计算机测量与控制》;20220507;第30卷(第07期);213-218 * |
Also Published As
Publication number | Publication date |
---|---|
CN116842117A (zh) | 2023-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112001469B (zh) | 一种二维码编码方法、解码方法和二维码 | |
CN107292936B (zh) | 一种汉字字体矢量化方法 | |
TWI810393B (zh) | 距離場調色板 | |
CN109767479B (zh) | 一种基于动态边界组序列的图元填充方法和系统 | |
CN107563475B (zh) | 一种二维码的编码方法和装置 | |
CN107578078B (zh) | 用于单目视觉定位的非镜像对称二维码标志图形校验及布局方法 | |
CN107103225A (zh) | 一种生成图形验证码的方法 | |
CN109785221A (zh) | 一种数字图像隐写方法及秘密信息提取方法 | |
EP0827114A2 (en) | Method and apparatus for texture data | |
CN101216944A (zh) | 在排版过程中实现渐变底纹的方法及装置 | |
CN116842117B (zh) | 一种基于geotools工具修复自相交的地理图像输出方法 | |
CN116775788B (zh) | 一种基于geotools工具修复多面中若干面相交的地理图像生成方法 | |
CN116775787B (zh) | 一种基于geotools工具修复外环与内环相交的地理图像导出方法 | |
CN116775786B (zh) | 一种基于geotools工具修复过锐角的地理数据图像工作方法 | |
CN116795939B (zh) | 一种基于geotools工具实现地理数据修复的方法 | |
CN115952252B (zh) | 基于动态渲染的语义瓦片数据处理方法、装置和电子设备 | |
CN102542528A (zh) | 一种图像转换处理方法及系统 | |
JP2828592B2 (ja) | カーニング処理方法 | |
CN114360449B (zh) | 一种显示器Mura校准的多像素融合压缩方法 | |
CN108182702B (zh) | 基于深度图像采集设备的实时三维建模方法及系统 | |
CN110070591B (zh) | 一种计算机绘图用的多边形填充方法 | |
CN110728345B (zh) | 一种抗背景文字干扰的识别码及其生成方法 | |
CN112991516A (zh) | 一种用于三维重建的纹理编码影像生成方法 | |
CN102074004A (zh) | 空间实体遮挡类型的判定方法及装置 | |
Xin et al. | Encoding and compressing hexagonal raster data by the Gosper curve |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |