基于弯曲面积及头尾断裂分类的曲线化简方法与流程

文档序号:17332481发布日期:2019-04-05 22:10阅读:451来源:国知局
基于弯曲面积及头尾断裂分类的曲线化简方法与流程

本发明涉及矢量曲线图形的化简和压缩的技术领域,更具体的说是涉及一种基于弯曲面积及头尾断裂分类的曲线化简方法。



背景技术:

曲线常用于等高线、海岸线以及道路网络等线状地图符号的表示,在地图中广泛存在,其化简问题是地图生产自动化和gis中多尺度显示的核心与关键。因此,自地图学诞生以来一直广受学者们的关注。

早期的曲线化简算法主要从减少顶点数量的角度考虑,以实现曲线的化简,从而达到减少数据存储量、提高图形渲染的效率的目的。例如:第n点选取法、douglas-peucker算法、lang化简法和opheim算法等。但是,这些算法并不完善,如douglas-peucker算法就存在着化简后曲线自相交的问题。于是,后人又提出了诸如基于最小可视对象的li-openshaw算法、基于最小面积的重复式点删除法和渐进式化简算法等,以弥补早期算法的缺陷。但是,上述算法都忽略了弯曲是曲线的结构特征之一,化简时必须保留或夸大特征弯曲,舍去细小弯曲,否则会造成化简结果的失真。

因此,近年来为了不破坏曲线中的特征弯曲,尽可能地保持曲线的形状特征,又有学者提出了如采用斜拉式弯曲划分的曲线化简方法、采用三元弯曲组划分的线要素化简方法和采用双向斜拉式弯曲划分的曲线渐进化简方法等基于曲线弯曲划分的化简算法。这些算法较好地解决了经典算法的问题,使化简结果相较经典算法有了大幅改进,但是仍存在一些不足。譬如,注重局部相邻弯曲之间的关系,将弯曲分组进行比较,而忽略整体弯曲之间的关系,不同分组策略下的化简结果也不同;用于筛选弯曲的阈值设置不够科学合理;算法大多较为复杂,计算量大,不易实现。

因此,如何提供一种充分考虑到曲线形态特征和计算复杂度的曲线化简方法是本领域技术人员亟需解决的问题。



技术实现要素:

有鉴于此,本发明提供了一种基于弯曲面积及头尾断裂分类的曲线化简方法,在顾及整体弯曲数据且不使用经验阈值的情况下,舍去细小弯曲,避免破坏原有曲线的特征弯曲,以获取不同细节层次下都符合自然规律的综合结果,解决了传统曲线化简方法阈值设置不合理、未顾及曲线形态特征、复杂计算量大等问题。

为了实现上述目的,本发明采用如下技术方案:

一种基于弯曲面积及头尾断裂分类的曲线化简方法,包括:

s1:利用斜拉式曲线划分方法将曲线划分为若干弯曲弧段;

s2:计算弯曲弧段与其首尾点连线围成的面积;

s3:计算所有弯曲弧段面积的算术平均值,提取面积大于算术平均值的弯曲弧段;

s4:若面积大于算术平均值的弯曲弧段数小于弯曲弧段总数的40%,则将面积大于算术平均值的弯曲弧段作为特征弯曲,并作为头尾断裂分类中的头部弯曲予以保留;其余弯曲弧段作为尾部弯曲,并计算每个弯曲弧段中各点到弯曲首尾点连线的距离,取距离最大者作为特征点予以保留;执行步骤s5;

若面积大于算术平均值的弯曲弧段数大于或等于弯曲弧段总数的40%,则执行步骤s6;

s5:合并头部弯曲和尾部弯曲的特征点,得到综合结果;

s6:结束。

优选的,在步骤s2中,利用定积分原理中的梯形公式计算弯曲弧段与其首尾点连线围成的面积。

优选的,在步骤s5中,得到综合结果之后,还包括:在综合结果的基础上重复执行步骤s1~s5,直至面积大于算术平均值的弯曲弧段数大于或等于弯曲弧段总数的40%,停止迭代。

经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种基于弯曲面积及头尾断裂分类的曲线化简方法,该方法易于实现,可以迭代地在顾及整体弯曲数据且不使用经验阈值的情况下,舍去细小弯曲,避免破坏原有曲线的特征弯曲,以获取不同细节层次下都符合自然规律的综合结果,解决了传统曲线化简方法阈值设置不合理、未顾及曲线形态特征、复杂计算量大等问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明提供的基于弯曲面积及头尾断裂分类的曲线化简方法的流程图;

图2为本发明提供的弯曲划分的示意图;

图3为本发明提供的划分弯曲后计算面积的示意图;

图4为本发明提供的原图和多次化简的效果图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见附图1,本发明实施例公开了一种基于弯曲面积及头尾断裂分类的曲线化简方法,包括:

s1:利用斜拉式曲线划分方法将曲线划分为若干弯曲弧段;

s2:计算弯曲弧段与其首尾点连线围成的面积;

s3:计算所有弯曲弧段面积的算术平均值,提取面积大于算术平均值的弯曲弧段;

s4:若面积大于算术平均值的弯曲弧段数小于弯曲弧段总数的40%,则将面积大于算术平均值的弯曲弧段作为特征弯曲,并作为头尾断裂分类中的头部弯曲予以保留;其余弯曲弧段作为尾部弯曲,并计算每个弯曲弧段中各点到弯曲首尾点连线的距离,取距离最大者为特征点予以保留;执行步骤s5;

若面积大于算术平均值的弯曲弧段数大于或等于弯曲弧段总数的40%,则执行步骤s6;

s5:合并头部弯曲和尾部弯曲的特征点,得到综合结果;

s6:结束。

为了进一步优化上述技术方案,在步骤s2中,利用定积分原理中的梯形公式计算弯曲弧段与其首尾点连线围成的面积。

为了进一步优化上述技术方案,在步骤s5中,得到综合结果之后,还包括:在综合结果的基础上重复执行步骤s1~s5,直至面积大于算术平均值的弯曲弧段数大于或等于弯曲弧段总数的40%,停止迭代。

下面对本发明中涉及到的方法做进一步说明。

本发明选择斜拉式弯曲划分法作为曲线弯曲划分的算法,是因为从曲线不同的起点使用此方法划分弯曲,除了前三个弯曲有细微的差异以外,其他所有划分结果均一致,说明该方法具有较好的稳健性和通用性,这对于划分没有固定起点的等高线、国界线这类闭合曲线十分适用。此外,该方法也易于实现,计算简单。

斜拉式弯曲划分法的关键是把寻找弯曲分割点的问题转化为判断部分弯曲首尾连线与其内部相邻两点连线是否相交的问题,如果首尾连线与所有内部相邻两点连线都不相交,则说明该弯曲仅仅只是一部分,将该弯曲后的点依次加入弯曲,继续上述判断;如果在某一点加入后出现了相交的情况,则说明之前所有通过不相交测试的点组成一段完整的弯曲。

如图2是弯曲划分的示意图,线段p1p11与其内部线段p1p2、p2p3、p3p4……p9p10、p10p11全都不相交,再加入后续点p12,继续判断线段是否相交,发现线段p10p11与线段p1p12是相交的。因此,可以将点p1到p11中所有点划分为一个弯曲。线段是否相交可以利用向量的外积来判断,请参见公式(1)。如果符合公式(1)中的条件,线段p1p12和线段p10p11相交,否则两线段不相交。

定义弯曲面积为一段弯曲与其首尾连线所围成的面积,以其面积大小作为判断弯曲特征明显程度的指标。将弯曲内所有顶点的坐标转换为以弯曲起始点为原点,首尾连线为x轴的直角坐标系下的坐标,根据定积分原理,一段弯曲面积等于图3中阴影部分的面积,近似地等于弯曲内所有相邻两顶点与其在x轴的投影点所组成的梯形或三角形面积之和。

使用上述方法划分弯曲和计算面积后,对其进行头尾断裂分类,计算所有弯曲弧段面积的算术平均值,提取其中面积大于算术平均值的弯曲弧段,如果面积大于平均值的弯曲弧段数小于总弯曲弧段的40%,则这些弯曲弧段被作为特征弯曲,即头尾断裂分类中的“头部”予以保留,并且对于面积小于算术平均值的弯曲弧段即分类为“尾部”弯曲。对于尾部弯曲,为了防止删除连续弧段导致曲线的局部化简过度,计算并保留每个弯曲弧段中距离弯曲首尾点连线最远的点作为特征点保留。如果面积大于平均值的弯曲弧段数大于40%,则算法结束。最后,将特征弯曲与特征点合并,即可得到一次化简的结果。

如图1所示,本发明提供的方法的主要步骤如下:

(1)利用斜拉式弯曲划分法将曲线划分成若干弯曲弧段。

(2)对每个弯曲都使用定积分中的梯形公式计算近似面积。

(3)计算弯曲弧段面积的算术平均值。

(4)如果面积大于算术平均值的弯曲弧段数占总数的百分比小于40%,则将大于算术平均值的弯曲弧段分为“头部”,其余弯曲弧段作为“尾部”;将“头部”弯曲不做任何处理直接保留,考虑到如果“尾部”弯曲存在相邻的连续弯曲,若直接舍去,会导致综合后的曲线局部化简过度,因此,计算每个“尾部”弯曲弧段中点到弯曲首尾点连线的距离,取距离最大者作为特征点予以保留,执行步骤(5);

否则,执行步骤(6)。

(5)合并“头部”弯曲和“尾部”特征点,得到综合结果。

(6)结束。

本发明提供的方法可以在化简结果上迭代执行,以获取不同细节层次下的曲线化简结果,请参见附图4,直至迭代中某次化简结果不再满足面积大于平均值的弯曲弧段数占总弯曲弧段数的百分比小于40%这一条件,终止迭代。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1