一种面向任意分布大规模点云数据的快速Delaunay构网方法技术

技术编号:14971815 阅读:65 留言:0更新日期:2017-04-03 00:18
本发明专利技术提供一种面向任意分布大规模点云数据的快速Delaunay构网方法,包括以下步骤:划分多重网格,创建初始三角网;逐点插入;三角网更新;删除辅助三角形完成Delaunay三角网的构建。本发明专利技术通过多重网格划分和Hilbert曲线顺序遍历网格的排序方法,减少了点定位过程的搜索步长以及构网过程中产生的最终要删除的狭长三角形数量,并且通过对点定位过程中,采用新的算法,避免了求三角形重心和相交边的过程,减少了计算量。大大提高了点云在数据量较大以及分布不均匀的情况下构建Delaunay三角网的效率。

【技术实现步骤摘要】

本专利技术涉及信息处理
,尤其涉及一种面向任意分布大规模点云数据的快速Delaunay构网方法
技术介绍
三角剖分是计算几何领域的重要研究内容之一,而其中Delaunay三角剖分由于具有许多优良性质,在地理信息系统、数字高程插值、有限元分析,几何重构等领域有着广泛的应用。Delaunay三角网的构建方法主要可以分为逐点插入法、分治算法和三角网生长法三种。其中三角网生长法由于要频繁遍历数据点,时间效率低且算法复杂,目前已很少采用。分治算法的优点是时间效率高,但占用空间大,算法复杂。虽然分治算法可以通过并行计算的方法使算法效率得到很大提高,但是并行计算对硬件要求较高,不具有普遍性。逐点插入法由于其算法简单、占用空间小等特点成为了目前最流行的一种算法。近年来,又有许多学者在传统逐点插入法的基础上进行了改进。徐明海等利用存储三角形的邻接关系的方法在Bowyer和Watson的基础上对逐点插入法进行改进,使插入点进行外接圆判断的次数大大减少,算法效率有了很大提高,也使算法效率更大程度上取决于点插入三角网的顺序。徐道柱等提出了一种对点集划分均匀的网格,按网格加点的方法,可以使时间进一步降低。Liu和Snoeyink、Zhou和Jones、Hornus和Boissonnat、Buchin在划分均匀网格的基础上提出了依照不同的空间填充曲线(如Hilbert曲线、Peano曲线等)顺序遍历插入网格中点的方法,进一步提高了划分均匀网格加点的效率,对均匀分布点集的Delaunay构网有较好的效果。现有方法虽然比较成熟,但仍普遍存在许多不足之处,如:第一:处理对象针对少量离散点云对算法的处理效率要求不高,但当点云的数目较大时,算法处理效率普遍较低,对构网影响很大;第二:由于点云数据的分布并不均匀,规则网格方法在网格划分过程中会形成很多点集分布过密或者过疏的网格,使网格划分程度无法统一,影响了后续的处理效率;第三:目前的点定位过程中计算重心坐标求相交边的过程大大增加了计算量,降低了对海量点云数据Delaunay构网的速度。
技术实现思路
针对现有技术中存在的上述的问题,本专利技术提出一种面向任意分布大规模点云数据的快速Delaunay构网方法,对现有算法进行了改进优化,大大提高了构网效率,其具体的技术方案如下:一种面向任意分布大规模点云数据的快速Delaunay构网方法,其特征在于:包括以下步骤:步骤一:划分多重网格,并以Hilbert曲线遍历网格的方式,对插入点的顺序进行排序:A:建立控制点数组和非控制点数组,用于存储点排序数据;B:根据数据点的个数建立一级网格,并将点分配到网格中;C:对划分好的一级网格按照Hilbert曲线从左下角到右下角的顺序进行排序;D:对排序后的一级网格,按顺序对每个网格进行控制点和非控制点的提取;E:设定网格中的点数的上限阈值,如果当前网格中的点数超过该阈值,则按照步骤B至步骤D网格迭代划分,在迭代划分过程中,对网格开口方向进行调整,但不进行控制点的提取。步骤二:创建初始三角网:通过选择把数据点坐标最大值加一个较小的数,最小值减一个较小的数,找到能够包围所有数据点的初始矩形凸壳连接初始矩形凸壳的一条对角线,将其分为两个三角形,作为初始三角网,并为初始三角网添加邻接关系;步骤三:逐点插入:按照先插入控制点数组,插入顺序是原存储顺序的逆序、后插入非控制点数组,插入顺序与原存储顺序相同,逐点进行如下操作:A:对插入点进行定位;B:构建包含当前插入点所有影响域的空腔;把当前插入点所在三角形的三条边作为空腔边,分别对空腔边的邻接三角形做外接圆检测;若当前插入点位于某三角形外接圆内部,则将该三角形对应的空腔边删除,将该三角形的另两边加入到空腔边中,继续对空腔边进行判断,直到所有空腔边的邻接三角形的外接圆都不包含当前插入点;C:三角网更新:将当前插入点与得到的空腔节点相连,形成新的三角形,并更新由空腔形成的新三角形及其相邻三角形的邻接关系;步骤四:删除辅助三角形:全部点集插入后,将顶点中含有矩形凸壳四个顶点的三角形删除,即完成了Delaunay三角网的构建。进一步地,步骤一中的步骤B中建立一级网格,并将点分配到网格中按如下方法进行:A:设定平均每个网格大致的点数,用总点数除以平均点数即为网格的大致个数;B:将网格的个数调整至4的整数次幂的形式,并保持行与列的网格数相同;C:以点云数据中x,y坐标的最大最小值为边界,划分网格,并根据每个数据点的位置将点分配到一级网格中去。进一步地,步骤一中的步骤D中对于控制点和非控制点的提取按如下方法进行:A:如果当前网格有点,则将第一个点放入控制点数组;B:设定网格中的点数的上限阈值,如果当前网格中的点数小于等于所设定的阈值,则将除控制点外的其他点放入非控制点数组。进一步地,步骤一中的步骤E中对网格的迭代划分按如下方法进行:A:若当前网格中的点数超过阈值,则对目前操作的网格区域,按照与一级网格相同的划分规则,进行下级网格的迭代划分;B:在迭代划分过程中,不再进行控制点的提取,已排序的网格中的点全部放入非控制点数组;C:在对当前网格进行Hilbert排序时,通过Hilbert曲线的开口方向调整,保证对于总体的遍历顺序,把所有网格按照放入非控制点集的顺序连接起来,所形成的Hilbert曲线没有交叉。进一步地,步骤三的步骤A中,对插入点进行定位按如下方法进行:A:.找到最新更新的三角形,即对上一个插入点进行处理时三角网中最后一个新生成的三角形。设该三角形顶点为A、B、C,沿逆时针排列;B:设当前插入点坐标为P,P与三角形三边AB、BC、CA构成的三角形面积分别为SA=12AB→×AP→,SB=12BC→×BP→,SC=12CA→×CP→,]]>计算SA,SB,SC,判断其中小于0的个数。若SA,SB,SC均大于等于0,则ΔABC即为当前待插点P所在三角形,点定位过程结束;当SA,SB,SC有一个小于0时,进行步骤C,当SA,SB,SC有两个小于0时,进行步骤D;C:找到相应小于0的S,此时P应位于该小于0的S所对应的边的外侧,把该边的临边三角形作为ΔABC,返回步骤B继续判断;D:找到相应小于0的两个S中最小的S,此时把最小的S所对应的边的临边三角形作为ΔABC,返回步骤B继续判断。本专利技术的有益效果体现在:第一:在本专利技术中采用Hilbert曲线遍历网格的方式,且在遍历过程中调整曲线开口方向,减少了点定位过程的搜索步长;采用添加控制点的方式,避免一次性插入网格中所有点时插入点与初始矩形凸壳顶点以及已完成Delaunay构网的区域边界形成的大量狭长三角形,降低了构建和删除这些三角形本文档来自技高网
...

【技术保护点】
一种面向任意分布大规模点云数据的快速Delaunay构网方法,其特征在于:包括以下步骤:步骤一:划分多重网格,并以Hilbert曲线遍历网格的方式,对插入点的顺序进行排序:A:建立控制点数组和非控制点数组,用于存储点排序数据;B:根据数据点的个数建立一级网格,并将点分配到网格中;C:对划分好的一级网格按照Hilbert曲线从左下角到右下角的顺序进行排序;D:对排序后的一级网格,按顺序对每个网格进行控制点和非控制点的提取;E:设定网格中的点数的上限阈值,如果当前网格中的点数超过该阈值,则按照步骤B至步骤D网格迭代划分,在迭代划分过程中,对网格开口方向进行调整,但不进行控制点的提取。步骤二:创建初始三角网:通过选择把数据点坐标最大值加一个较小的数,最小值减一个较小的数,找到能够包围所有数据点的初始矩形凸壳连接初始矩形凸壳的一条对角线,将其分为两个三角形,作为初始三角网,并为初始三角网添加邻接关系;步骤三:逐点插入:按照先插入控制点数组,插入顺序是原存储顺序的逆序、后插入非控制点数组,插入顺序与原存储顺序相同,逐点进行如下操作:A:对插入点进行定位;B:构建包含当前插入点所有影响域的空腔;把当前插入点所在三角形的三条边作为空腔边,分别对空腔边的邻接三角形做外接圆检测;若当前插入点位于某三角形外接圆内部,则将该三角形对应的空腔边删除,将该三角形的另两边加入到空腔边中,继续对空腔边进行判断,直到所有空腔边的邻接三角形的外接圆都不包含当前插入点;C:三角网更新:将当前插入点与得到的空腔节点相连,形成新的三角形,并更新由空腔形成的新三角形及其相邻三角形的邻接关系;步骤四:删除辅助三角形:全部点集插入后,将顶点中含有矩形凸壳四个顶点的三角形删除,即完成了Delaunay三角网的构建。...

【技术特征摘要】
1.一种面向任意分布大规模点云数据的快速Delaunay构网方法,其特征在于:
包括以下步骤:
步骤一:划分多重网格,并以Hilbert曲线遍历网格的方式,对插入点的
顺序进行排序:
A:建立控制点数组和非控制点数组,用于存储点排序数据;
B:根据数据点的个数建立一级网格,并将点分配到网格中;
C:对划分好的一级网格按照Hilbert曲线从左下角到右下角的顺序进行排
序;
D:对排序后的一级网格,按顺序对每个网格进行控制点和非控制点的提取;
E:设定网格中的点数的上限阈值,如果当前网格中的点数超过该阈值,则
按照步骤B至步骤D网格迭代划分,在迭代划分过程中,对网格开口方向进行
调整,但不进行控制点的提取。
步骤二:创建初始三角网:
通过选择把数据点坐标最大值加一个较小的数,最小值减一个较小的数,找
到能够包围所有数据点的初始矩形凸壳连接初始矩形凸壳的一条对角线,将其分
为两个三角形,作为初始三角网,并为初始三角网添加邻接关系;
步骤三:逐点插入:按照先插入控制点数组,插入顺序是原存储顺序的逆序、后
插入非控制点数组,插入顺序与原存储顺序相同,逐点进行如下操作:
A:对插入点进行定位;
B:构建包含当前插入点所有影响域的空腔;把当前插入点所在三角形的三
条边作为空腔边,分别对空腔边的邻接三角形做外接圆检测;若当前插入点位于
某三角形外接圆内部,则将该三角形对应的空腔边删除,将该三角形的另两边加
入到空腔边中,继续对空腔边进行判断,直到所有空腔边的邻接三角形的外接圆
都不包含当前插入点;
C:三角网更新:将当前插入点与得到的空腔节点相连,形成新的三角形,
并更新由空腔形成的新三角形及其相邻三角形的邻接关系;
步骤四:删除辅助三角形:全部点集插入后,将顶点中含有矩形凸壳四个顶点的
三角形删除,即完成了Delaunay三角网的构建。
2.根据权利要求1所述的一种面向任意分布大规模点云数据的快速Delaunay
构网方法,其特征在于:步骤一中的步骤B中建立一级网格,并将点分配到网格

\t中按如下方法进行:
A:设定平均每个网格大致的点数,用总点数除以平均点数即为网格的大致
个数;
B:将网格的个数调整至4的整数次幂的形式,并保持行与列的网格数相同;
C:以点云数据中x,y坐标的最大最小值为边界,划分网格,并根据每个数
据点的位置...

【专利技术属性】
技术研发人员:苏天赟王雯刘海行吴蔚李新放刘加银丁明贾贞宋转玲宋庆磊周林
申请(专利权)人:国家海洋局第一海洋研究所
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1