电子海图矢量图形简化方法

文档序号:2647257阅读:297来源:国知局
专利名称:电子海图矢量图形简化方法
技术领域
本发明涉及的是地理信息系统空间数据分析和处理方法。
背景技术
电子海图系统(Electronic Chart System. ECS)是随着航海事业的发展而产生的 一种集成式的实时导航信息系统,被认为是继雷达/ARPA之后近10年来在航海领域又一项 伟大的技术革命。按照国际海道测量组织(IHO)的定义电子海图系统是一种将海图信息、 定位信息、雷达信息、船舶动态参数集于一体的图文并茂的航海自动化系统。它由电子海图 数据文件、控制显示设备、专用软件和外接传感器构成。电子海图系统作为海洋信息的显示平台,可以详尽的描述指定海域的实际地物特 征信息。岛屿等要素大量存在于海图中,在现今的矢量电子海图中,描述岛屿等矢量要素使 用的是一系列密集的离散点列。由于数据点越多,描述原始地物的能力越强,越能真实的反 映原物体。因此,在海图数据文件中存储着大量的点数据,用来详尽的描述岛屿的形态特 征。随着电子海图技术的日益发展,其应用领域不断扩大。由前面叙述可知,电子海图 中描述岛屿等要素使用的是一系列离散点数据,在具体的实际应用中,直接应用海图中海 量的数据进行数学计算必然会导致运算速度慢且效率低下。例如,在电子海图服务于近水 面飞行器航路规划时对岛屿等进行规避的特定应用中,对于路径规划来说应用矢量海图中 大量的点数据进行航路规划显然数据量太大,规避计算时占用机时过多,效率极低。为此, 有必要对描述岛屿等要素的大量点数据在保证其几何形状不变的前提下进行特征点的提 取,即对海图要素进行简化处理。电子海图矢量图形化简属于矢量数据压缩的范畴。目前,从收集到的文献资料来 看,有关矢量图形简化的算法大都集中在地图自动综合领域。在该领域中,通常采取矢量 数据压缩的技术实现要素空间信息与地图比例尺的自适应,即若地图比例尺较大(比例尺 分母较大),则描述要素的数据量大,若降低地图比例尺,则通过一定的算法减少描述同一 要素的数据量,使要素数据信息与地图比例尺互相适应。仔细分析现有的矢量图形简化算 法可清晰的看出,当前算法都存在一定的缺陷,主要表现在(1)化简后的图形可能出现相 交;(2)化简阈值的选取问题。Douglas-Peucker算法作为目前公认的矢量图形化简经典算法,由D. Douglas和 T. Peucker于1973年提出,简称D-P算法,现有的化简算法中,有相当一部分都是在该算法 基础上进行改进产生的。它的优点是具有平移和旋转不变性,给定曲线与阈值后,化简结果 一定。该算法的基本思想是事先给定阈值、在曲线首、末两点之间连线,依次计算中间 点到该线段的距离,找出最大距离点,并判断该距离是否小于δ,若是,则舍去该曲线的所 有中间点;否则,保留该点,并以该点为界,将曲线分为两部分,对这两部分重复使用上述操 作。从基本思想可以看出该方法具有明显的递归特性,是一种由整体到局部,由粗到细化简 矢量图形的方法。
Douglas-Peucker算法在不同的领域中获得了广泛的应用。例如,申请号为 200810243866的专利申请中应用该算法实现了一种电子地图数据处理方法,该应用中直接 采用了 Douglas-Peucker算法进行矢量数据压缩,没有考虑Douglas-Peucker算法自身的 缺陷(化简后结果可能存在自相交,化简阈值的适当选取等问题)和在特定应用上的局限 性。矢量图形化简的根本目的是在保持图形基本特征的前提下,通过减少构成图形的 点的数量,完成图形的化简。对于化简过程,应遵循“三个保持”一是保持化简前后图形的 相似性,即保持弯曲形状的基本特征;二是保持弯曲特征转折点的精确性;三是保持不同 地段弯曲程度的对比。

发明内容
本发明的目的在于提供一种更加完备、精确、通用性更强的电子海图矢量图形简 化方法。本发明的目的是这样实现的(1)提取给定的矢量图形的凸壳;(2)将由凸壳划分出的图形凸部和凹部分类处理,分别进行化简;(3)直接应用Douglas-Peucker算法对图形凸部进行化简;图形凹部采用逐层化 简的方法进行化简,对于存在复杂弯曲的凹部,应用基于直线段绕动方向的弯曲识别方法 识别出不同层次的弯曲,然后对每一层次的弯曲分别进行化简,直至所有弯曲处理完毕;(4)、增加一个化简阈值,实施对凹部的化简。本发明是针对应用基本Douglas-Peucker算法进行矢量图形化简时可能出现的 图形自相交和图形凹部保形性差等缺陷,结合电子海图中矢量图形化简的需要,设计的新 的矢量图形化简方法。本发明中提供的方法区别于现有方法的显著特征在于采用提取凸 壳和改进Douglas-Peucker算法的方法有效地保证了化简后的图形整体和局部(特别是凹 部)保形性;采取基于直线段绕动方向的弯曲识别方法和弯曲逐层化简的方式,可以从根 本上解决化简后图形可能出现的自相交问题。该方法包含以下要点1、提取给定的矢量图形的凸壳。由于凸壳能够较好的描述图形的基本几何形态, 因此首先对待化简的图形建立凸壳,利用凸壳识别图形的整体形态特点,特别地,凸壳能够 表达出图形的弯曲特性;2、将由凸壳划分出的图形凸部和凹部分类处理,分别进行化简。由于描述矢量图 形的数据点大部分集中于图形的凹部,用于详细描述图形的弯曲形态特征,而凸部数据点 数较少,因此可直接应用Douglas-Peucker算法对图形凸部进行化简。对于凹部,按要点3 所述方法化简;3、图形凹部采用逐层化简的方法进行化简。对于存在复杂弯曲的凹部,可应用基 于直线段绕动方向的弯曲识别方法(该方法的实现过程见具体实施方式
部分)识别出不同 层次的弯曲,然后对每一层次的弯曲分别进行化简,直至所有弯曲处理完毕。通过这种方法 可以有效的避免化简后的图形出现自相交现象。4、增加一个化简阈值,实施对凹部的化简。应用改进Douglas-Peucker算法对图 形凹部进行化简时,在传统算法的基础上增加一个宽度阈值控制化简进程。由弯曲深度和宽度两个阈值共同决定描述弯曲数据点的取舍。本发明的有益效果体现在对矢量图形的简化,主要是针对图形凹部的化简处理。本发明中,通过构建图形的凸壳和采用基于直线段绕动方向的弯曲识别方法可以逐层分解 出图形凹部的弯曲,针对每一个弯曲分别进行化简,可以准确地度量弯曲的特征并进行最 大限度且合理的化简,从而提高了化简后图形的保形性。本发明采用基于直线段绕动方向 的方法识别出的每一个弯曲都是星形区域,而由充分的理论证明,星形区域进行化简后不 会出现自相交,因此本发明有效地解决了传统化简算法易出现自相交的缺陷。


图1为本发明所述矢量图形简化方法的流程图。图2A-2B用于解释本发明中采用的多边形凸壳生成算法的实现步骤。图3用于说明基于直线段扰动方向识别曲线弯曲的方法。图4A-4F分别为岛屿原形(4A)、岛屿凸壳(4B)和采取不同化简阈值的化简结果图 (4C-4F)。图5为C10013海图岛屿数据化简结果的局部图。
具体实施例方式下面结合附图举例对本发明做更详细地描述本发明公开了一种电子海图矢量图形化简方法,该方法的具体实施内容包括构建 凸壳,基于直线段绕动方向识别弯曲和应用提出的改进Douglas-Peucker算法对矢量图形 逐层化简等关键内容。下面将按照化简流程详述本发明提出的技术方案的具体实施方式
, 化简流程如图1所示。该实施方式主要包含以下几个关键步骤一、构建凸壳凸壳是数据点集的自然极限边界,为包含所有数据点的最小凸多边形,连接任意 两点的线段必须完全位于该凸多边形中,同时区域的面积也达到最小值。关于凸壳的计算 方法很多,可参见计算几何、计算机图形学方面的书籍,下面介绍本发明中应用的多边形凸 壳生成算法,该算法包含以下两个步骤步骤1 对于给定的多边形,找出所有数据点中纵坐标最小的点,记为Pl。设从P1 开始多边形沿顺时针方向的有向顶点序列为(P1, P2,…,pn)。步骤2 搜索凸壳顶点记?1为第一个凸壳上的顶点,然后从有向线段P1P2开始查 找,若多边形的所有顶点均在有向线段P1P2的右侧,则P2也为凸壳顶点,否则顺次查找有向 线段P1P3,P1P4,…,直至找到满足多边形的所有顶点均在P1Pi的右侧的点Pi,则记Pi为凸 壳顶点,然后Wpi开始,按照上述和P1开始同样的步骤顺次查找凸壳顶点,直到返回P1点 为止,依次记录所有凸壳顶点,并顺次连线就完成了多边形凸壳的生成过程。如图2A和图 2B,初始多边形顶点为(Pl,P2,…,P9),生成的凸壳顶点为(Ρ^Ρ^Ρ^Ρ^Ρ^ΡΚ!)。二、基于直线段绕动方向识别弯曲弯曲的识别方法有很多种,例如基于拐点识别弯曲和采用斜拉式弯曲划分的方法 识别弯曲等。不同的弯曲识别方法适用于不同的应用环境。针对电子海图中矢量图形简化 的要求和特点,应用基于直线段绕动方向的方法识别弯曲。在海图中由一系列连续的数据点描述矢量图形,规定这些数据点按照顺时针的顺序组成了一个点集C= {P1;P2,...,Plri, pn},其中P1S曲线的起点,PnS曲线的终点。P1和Pn两点重合,表示该点集是一条闭合的 曲线。规定对 于给定曲线S = (v0, . . . , vn) (0 ^ η <°o ), Sk = (vi ...,Vj) e S,(i < j),如果结点Vi,、与结点vi+1,…,Vy1所在直线段的绕动方向相反,则Sk就是曲线S的 一个弯曲,结点Vi是该弯曲的起点,结点\是该弯曲的终点。图3中,曲线由Pl,p2,…,P12共12个点组成。“ + ”和“_”分别表示曲线上一条 后继直线段相对于当前直线段的两个不同绕动方向。不失一般性,设定向顺时针方向绕动 为“ + ”,例如P2点处;向逆时针方向绕动为“-”,例如P3点处。则以绕动点方向发生变化的 点处作为分界点,可以划分出不同弯曲。如图3,点p2,P3, P4, P5, P6构成了一个弯曲;点P8, P9,Pltl,P11构成了另一个弯曲。三、图形凹部(弯曲)的逐层化简过程凸壳将矢量图形划分出了一系列的凸部和凹部,我们将凸部和凹部划分开来分别 进行化简处理。对于凸部,可以直接采用Douglas-Peucker算法进行化简。对于凹部,由于 存在复杂弯曲的情况,需要运用(2)中描述的基于直线段绕动方向的弯曲识别方法识别出 不同层次的弯曲,然后对每一层次的弯曲分别进行化简,直至所有弯曲处理完毕。曲线凹部 化简的具体实现步骤详述如下步骤1 对于给定的曲线进行弯曲划分,识别出第一层次的弯曲;步骤2 判断弯曲的个数是否大于1,若否,则该曲线组成的弯曲是一个简单弯曲, 直接化简即可。否则,对于每一个弯曲分别进行化简,并记录每一个数据点的处理信息(是 否在化简后保留)。步骤3 第一层次的弯曲化简后,遍历曲线上没有被处理的点,再次进行弯曲识 另IJ,划分出下一层次的弯曲,然后按照步骤2中描述的方式再次化简。步骤4:重复上述化简过程,直至所有数据点均被处理,完成了整个化简过程。四、改进Douglas-Peucker算法的实现过程本发明中在设计Douglas-Peucker化简算法实现过程中,发现如果不记录中间的 距离最大顶点,会造成单个数据在循环过程中的多次判断,增加了算法实现的时间复杂性。 为了克服这个问题,在设计算法实现过程中将判断所得的中间最大距离顶点保存起来,这 样可以较少算法的运算量,提高算法的执行效率。另外,根据电子海图矢量图形简化的需 要,在Douglas-Peucker化简算法实现过程中增加曲线弯曲宽度的限制,即将曲线宽度作 为一个阈值用于限定曲线化简结果。满足以上两点要求的改进算法实现过程描述如下(1)设矢量曲线由离散点列(PQ,P1,-,pn)表示,用数组T存放特征点列,将起点 P0和末点Pn按顺序存入T的首位和末尾,令A — P(1,B — pn,连接AB ;(2)判断线段AB之间的距离是否大于给定的宽度阈值,若否,转(4),若是,在AB 之间的点列中寻找与线段AB具有最大距离的点,若存在满足条件的点,则转(3),否则转 (5);(3)判断该点到线段AB的距离是否大于给定的高度阈值,若是,设该点为C,并按 其顺序存入T中,令B —C,返回⑵;(4)在AB之间的点列中寻找与线段AB具有最大距离的点,若该点到线段AB的距离大于给定的高度阈值并且此点在有向线段AB的左侧,设该点为C,并按其顺序存入T中, 令B —C,返回(2);(5)判断B是否为pn,若否,令A — B,B — T‘ (T的下一个特征点),连接AB,返回 (2);(6)将A、B存入特征点列中,结束。依照以上阐述的具体实施方式
,提取图号为C10015的电子海图中海坛岛的数据 如图4A所示。该岛屿由534个离散的原始矢量数据点描述。图4B中虚线为该岛屿的凸壳。 选取不同的深度阈值和宽度阈值对该岛屿进行化简操作,结果如图4C-4F所示。表1不同化简阈值下海坛岛化简结果统计表

为更进一步说明本发明提出的电子海图矢量图形简化方法的有效性和实用性,在 主频为2. 8GHz,内存为4G的电子计算机上,选取比例尺为1 100万的C10013海图进行不 同阈值下的全图岛屿数据化简,化简结果见表2。图5为深度阈值和宽度阈值分别选取为 Ikm和1. 5km时该图岛屿化简结果的局部图。表2不同化简阈值下C10013海图全图岛屿化简结果统计表
效果分析仔细分析表2中的化简结果数据可以看出,岛屿数据点化简的比率与 化简时选取的阈值密切相关。阈值选取的越大,化简后数据点保留的越少,化简率越高,但 岛屿的保形性也越差。因此,在实际应用中,应该根据不同的应用需求,结合具体情况通过 大量的试验分析,确定满足应用条件的适当阈值。从图5可以清晰的看到,应用本发明提出 的电子海图矢量图形简化方法进行矢量图形化简,可以有效的保证矢量图形的基本几何形 态不变,化简后的几何图形空间拓扑关系和化简前一致。并且应用本发明提出的方法进行 矢量图形化简可以有效的避免化简结果出现自相交和互相交的可能性。
权利要求
一种电子海图矢量图形简化方法,其特征是(1)提取给定的矢量图形的凸壳;(2)将由凸壳划分出的图形凸部和凹部分类处理,分别进行化简;(3)直接应用Douglas-Peucker算法对图形凸部进行化简;图形凹部采用逐层化简的方法进行化简,对于存在复杂弯曲的凹部,应用基于直线段绕动方向的弯曲识别方法识别出不同层次的弯曲,然后对每一层次的弯曲分别进行化简,直至所有弯曲处理完毕;(4)、增加一个化简阈值,实施对凹部的化简。
2.根据权利要求1所述的电子海图矢量图形简化方法,其特征是所述提取给定的矢量 图形的凸壳的方法包括步骤1 对于给定的多边形,找出所有数据点中纵坐标最小的点,记为Pl,从?1开始多边 形沿顺时针方向的有向顶点序列为(P1, P2,…,Pn);步骤2 搜索凸壳顶点记P1为第一个凸壳上的顶点,然后从有向线段P1P2开始查找, 若多边形的所有顶点均在有向线段P1P2的右侧,则P2也为凸壳顶点,否则顺次查找有向线 段P1P3,P1P4,…,直至找到满足多边形的所有顶点均在P1Pi的右侧的点Pi,则记Pi为凸壳 顶点,然后从Pi开始,按照上述和P1开始同样的步骤顺次查找凸壳顶点,直到返回P1点为 止,依次记录所有凸壳顶点,并顺次连线就完成了多边形凸壳的生成过程。
3.根据权利要求2所述的电子海图矢量图形简化方法,其特征是所述图形凹部采用逐 层化简的方法进行化简的方法包括步骤1 对于给定的凹部曲线进行弯曲划分,识别出第一层次的弯曲;步骤2 判断弯曲的个数是否大于1,若否,则该曲线组成的弯曲是一个简单弯曲,直接 化简;否则,对于每一个弯曲分别进行化简,并记录每一个数据点的处理信息即是否在化简 后保留;步骤3:第一层次的弯曲化简后,遍历曲线上没有被处理的点,再次进行弯曲识别,划 分出下一层次的弯曲,然后按照步骤2中描述的方式再次化简;步骤4 重复步骤1-3的化简过程,直至所有数据点均被处理,完成了整个化简过程。
4.根据权利要求3所述的电子海图矢量图形简化方法,其特征是所述 Douglas-Peucker算法为改进算法,其实现过程描述如下1)设矢量曲线由离散点列(PyP1,…,Pn)表示,用数组T存放特征点列,将起点Ptl和 末点Pn按顺序存入T的首位和末尾,令A — pQ,B — pn,连接AB ;2)判断线段AB之间的距离是否大于给定的宽度阈值,若否,转4),若是,在AB之间的 点列中寻找与线段AB具有最大距离的点,若存在满足条件的点,则转3),否则转5);3)判断该点到线段AB的距离是否大于给定的高度阈值,若是,设该点为C,并按其顺序 存入T中,令B —C,返回2);4)在AB之间的点列中寻找与线段AB具有最大距离的点,若该点到线段AB的距离大 于给定的高度阈值并且此点在有向线段AB的左侧,设该点为C,并按其顺序存入T中,令 B — C,返回 2);5)判断B是否为pn,若否,令A—B,B —T',连接AB,返回2);6)将A、B存入特征点列中,结束。
全文摘要
本发明提供的是一种电子海图矢量图形简化方法。(1)提取给定的矢量图形的凸壳;(2)将由凸壳划分出的图形凸部和凹部分类处理,分别进行化简;(3)直接应用Douglas-Peucker算法对图形凸部进行化简;图形凹部采用逐层化简的方法进行化简,对于存在复杂弯曲的凹部,应用基于直线段绕动方向的弯曲识别方法识别出不同层次的弯曲,然后对每一层次的弯曲分别进行化简,直至所有弯曲处理完毕;(4)增加一个化简阈值,实施对凹部的化简。本发明是一种在保持矢量图形几何形态不变的前提下,通过减少描述矢量图形数据点的方式简化矢量图形的方法。有效地解决了传统化简算法易出现自相交的缺陷。
文档编号G09B29/00GK101887451SQ20101020366
公开日2010年11月17日 申请日期2010年6月21日 优先权日2010年6月21日
发明者刘厂, 张振兴, 沈志峰, 郝燕玲, 高峰 申请人:哈尔滨工程大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1