CN113111612A - 一种基于自适应空间剖分的离散点云重复点快速查找方法 - Google Patents

一种基于自适应空间剖分的离散点云重复点快速查找方法 Download PDF

Info

Publication number
CN113111612A
CN113111612A CN202110658491.9A CN202110658491A CN113111612A CN 113111612 A CN113111612 A CN 113111612A CN 202110658491 A CN202110658491 A CN 202110658491A CN 113111612 A CN113111612 A CN 113111612A
Authority
CN
China
Prior art keywords
space
cuboid
point
grid
points
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.)
Granted
Application number
CN202110658491.9A
Other languages
English (en)
Other versions
CN113111612B (zh
Inventor
陈坚强
孙岩
武文军
白汉利
邓学霖
江盟
赵莹
邓彦增
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Computational Aerodynamics Institute of China Aerodynamics Research and Development Center
Original Assignee
Computational Aerodynamics Institute of China Aerodynamics Research and Development Center
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Computational Aerodynamics Institute of China Aerodynamics Research and Development Center filed Critical Computational Aerodynamics Institute of China Aerodynamics Research and Development Center
Priority to CN202110658491.9A priority Critical patent/CN113111612B/zh
Publication of CN113111612A publication Critical patent/CN113111612A/zh
Application granted granted Critical
Publication of CN113111612B publication Critical patent/CN113111612B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/28Design optimisation, verification or simulation using fluid dynamics, e.g. using Navier-Stokes equations or computational fluid dynamics [CFD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/10Numerical modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2113/00Details relating to the application field
    • G06F2113/08Fluids
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/14Force analysis or force optimisation, e.g. static or dynamic forces

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Fluid Mechanics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明公开了一种基于自适应空间剖分的离散点云重复点快速查找方法,通过构建一个包括所有网格点的长方体空间,通过限定重复点查找问题的规模,对离散点超出限定规模的长方体空间按照八叉树方式进行剖分,并采用双向链表的方式将新剖分出的长方体空间添加到链表的两端。然后循环遍历长方体空间链表,对网格点数超出限定规模的长方体空间不断进行剖分,直至所有长方体空间的离散点规模均低于限定值;通过自适应空间剖分,既可以快速有效地降低重复点查找的规模、提高重复点查找的效率,还可以减少无效长方体空间的数量,从而降低方法的内存消耗,提高方法处理离散点云的规模。

Description

一种基于自适应空间剖分的离散点云重复点快速查找方法
技术领域
本发明涉及计算力学中网格生成和网格变形,尤其涉及计算流体力学中的网格生成和网格变形领域中的一种基于自适应空间剖分的离散点云重复点快速查找方法。
背景技术
计算流体力学CFD(Computational Fluid Dynamics)是开展流体力学机理研究的重要手段之一,在航空航天飞行器设计与性能评估中发挥着愈来愈重要的作用。CFD通过计算网格对流场空间进行离散,然后求解代数离散方程获取流动变量,如密度、压力和温度等,并沿飞行器表面积分得到飞行器整体的性能特性。因此,计算网格是开展CFD数值仿真的基础,决定着数值分析的计算精度和仿真效率,良好的计算网格不仅可以加速收敛,还可以改善预测精度。对于气动外形设计优化、非定常流动和气动弹性等外形需要发生变化的特殊问题,网格变形是开展对应数值仿真的关键技术。
在网格生成和变形中,均可能遇到多个不同点集的合并和匹配问题,就需要对点集中存在的重复点进行标记和删除,以建立统一的点云集合。在实际应用过程中,多采用循环遍历的方式,逐个点进行对比,然后将相互之间重合的点进行标记。对于规模较小的点云问题,该方法能够比较快速地获得重复点的信息。但该算法的时间复杂度是点云中网格点数量的平方,随着点云规模的增大,重复点查找时间迅速增加,将极大地增加网格生成或网格变形的时间消耗,提高数值仿真的计算成本。作者等人曾提出一种离散点云重复点快速查找方法[ZL202110308512.4],通过空间剖分的方式,将离散点云所在的长方体空间剖分为多个规则的空间小格,然后在空间小格内查找重复点,并组装得到整个离散点云的重复点信息。该专利所提方法通过对空间进行剖分,降低重复点查找问题的规模,从而能够有效降低重复点查找的时间消耗。专利[ZL202110308512.4]中方法对于网格点均匀分布的离散点云具有很好的处理效果,但对于工程应用中常见的网格点非均匀分布的情况,需要人工调整空间的剖分参数,才能将重复点查找的规模降低、有效减少重复点查找的时间消耗,并且很多不包含网格点的无效空间的开辟,将极大地增加方法的计算机内存开销,降低处理问题的规模。
发明内容
本发明的目的是通过构建长方体空间双向链表结构和限定长方体空间中离散网格点的数量,大幅降低重复点查找的计算量,提高重复点查找效率,并且通过减少无效长方体空间的数量,有效降低方法的计算机内存消耗,显著提升处理离散点云问题的规模。
为了实现上述目的,本发明采用如下技术方案:
一种基于自适应空间剖分的离散点云重复点快速查找方法,用于计算流体力学仿真前的离散网格生成,构建网格点拓扑连接关系,生成获取压力、速度、密度物理量的网格,包括以下步骤:
S1: 循环遍历离散点云中的所有空间点,计算出所有空间点在三个坐标方向的最大值和最小值,确定离散点云所在空间的边界;
S2:根据全部空间点三个坐标方向的最大值和最小值构建离散点云所在的长方体空间;
S3:将构建的长方体空间作为节点加入双向链表结构,初始化长方体空间双向链表;
S4:检查当前指针指向的当前长方体空间,当网格点数量规模超过限定值时,对长方体空间进行剖分;
S5:从双向链表中删除被剖分的长方体空间,修改当前指针的指向,更新链表信息,并添加新剖分的长方体空间;
S6:循环遍历双向链表,对双向链表中超出限定网格点数量的长方体空间进行剖分,直至全部长方体空间的网格点数量低于限定阈值;
S7:遍历双向链表结构,完成每个长方体空间内部网格点的重复点查重;
S8: 组装双向链表中全部长方体空间内的网格点重复信息,得到离散点云中全部网格点重复信息。
在上述技术方案中:在S2中包括:
S21:设定空间点在坐标系中的三个方向的最小值为
Figure 345989DEST_PATH_IMAGE001
,最大值为
Figure 338829DEST_PATH_IMAGE002
,
S22:根据空间点坐标构建点
Figure 852987DEST_PATH_IMAGE003
Figure 841671DEST_PATH_IMAGE004
和点
Figure 124885DEST_PATH_IMAGE005
Figure 291555DEST_PATH_IMAGE006
其中,
Figure 27430DEST_PATH_IMAGE007
Figure 819806DEST_PATH_IMAGE008
Figure 957526DEST_PATH_IMAGE009
Figure 560677DEST_PATH_IMAGE010
为大于零的系数;
S23:以点
Figure 783848DEST_PATH_IMAGE003
Figure 114335DEST_PATH_IMAGE005
作为角点,构建长方体空间,并计算长方体空间的信息,长方体空间信息包括空间边界位置、网格点数量、网格点在离散点云中的编号。
在上述技术方案中:在S4中:设定网格点数量的限定阈值,如果当前指针指向长方体空间的网格点数量大于限定阈值,则对该长方体空间进行剖分,沿着三个坐标方向将长方体空间均匀分割成八个大小相同的长方体空间,根据原长方体空间的空间边界信息计算新的八个长方体空间的空间边界信息,并统计八个长方体空间中网格点的数量和网格点在离散点云中的编号。
在上述技术方案中:将被剖分的长方体空间从双向链表中删除,更新双向链表的头指针、尾指针的指向信息,如果被剖分的长方体空间的后续节点存在,将当前指针指向后续的长方体空间,如果不存在,当前指针指向为空。
在上述技术方案中:当剖分后的八个长方体空间中:
网格点数量仍大于限定阈值的长方体空间,依次添加到双向链表的起始位置,并更新头指针的指向;
网格点数量大于零且小于等于限定阈值的长方体空间,依次添加到双向链表的结束位置,并更新尾指针的指向;
网格点数量等于零的长方体空间,不加入双向链表,直接舍弃。
在上述技术方案中:在S6中包括:
S61:不停的循环S4和S5,调整当前指针的指向,从链表头部顺序遍历整个链表结构,对链表中大于限定网格点数量的长方体空间进行剖分,并更新链表信息;
S62:当当前指针指向空或当前指针指向的长方体空间网格点数量小于等于限定阈值时,将当前指针指向头指针,循环S61;
S63:不断对链表中不符合网格点数量的长方体空间进行剖分,直至链表头指针指向的长方体空间的网格点数量低于限定阈值,结束循环遍历,完成整个双向链表数据的创建。
在上述技术方案中:重复点查重的方法包括以下步骤:
S71:将当前指针指向头指针,根据S2和S4中构建的网格点在离散点云中的编号,访问离散点云,获取当前指针指向长方体空间中网格点的三维空间坐标;
S72:对当前长方体空间中的第m个点
Figure 106562DEST_PATH_IMAGE011
,遍历第1至第m-1个点,分别计算第i个遍历点
Figure 880614DEST_PATH_IMAGE012
与第m个点
Figure 856660DEST_PATH_IMAGE013
之间的空间距离
Figure 600625DEST_PATH_IMAGE014
如果距离
Figure 837571DEST_PATH_IMAGE015
小于阈值
Figure 641579DEST_PATH_IMAGE016
,则
Figure 711779DEST_PATH_IMAGE011
Figure 525014DEST_PATH_IMAGE012
重合,将
Figure 616467DEST_PATH_IMAGE011
标记为重复点,并将重复编号记录为i,退出遍历,
如果距离
Figure 856955DEST_PATH_IMAGE015
大于阈值
Figure 542015DEST_PATH_IMAGE016
,则
Figure 768728DEST_PATH_IMAGE011
Figure 590053DEST_PATH_IMAGE012
不重合,遍历下一个点,直至遍历结束,
如果
Figure 126077DEST_PATH_IMAGE013
Figure 32853DEST_PATH_IMAGE012
均不重合,
Figure 63257DEST_PATH_IMAGE011
标记为非重复点,所述阈值
Figure 4668DEST_PATH_IMAGE016
为正实数,本方案取值0.0000001;
S73:循环上一步遍历过程,对长方体空间内的全部网格点进行遍历查重,获取长方体空间内全部网格点的重复信息;
S74:向后移动当前指针,改变当前长方体空间,重复上述循环遍历过程,直至当前指针指向为空,完成整个双向链表结构中全部长方体空间内的重复点查找。
在上述技术方案中:
S81:将当前指针指向头指针,对于当前长方体空间内部的全部网格点,若第m个空间点
Figure 711593DEST_PATH_IMAGE011
被标记为重复点,且重复点的编号为n;
S82:根据S2和S4得到的网格点在离散点云中的编号,获得当前长方体空间内部第m、n个网格点在离散点云中的编号mp、np,则将离散点云中的第mp个网格点标记为重复点,重复点的编号为np;
S83:依次移动当前指针,遍历双向链表中的全部长方体空间,重复上述过程,获得离散点云中全部网格点的重复信息。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
本发明通过自适应空间剖分,既可以快速有效地降低重复点查找的规模、提高重复点查找的效率,还可以减少无效长方体空间的数量,从而降低方法的内存消耗,提高方法处理离散点云的规模;
本发明采用自适应空间剖分方法,可以根据长方体空间网格点限定的数量自动对空间进行剖分,不再需要根据离散点云分布情况人工选择空间剖分参数,能够实现方法流程的全自动化,大幅提高方法的适用性和鲁棒性。
附图说明
本发明将通过例子并参照附图的方式说明,其中:
图1是离散点云的示意图;
图2 是离散点云空间边界的示意图;
图3是初始长方体空间的示意图;
图4是双向链表初始化的示意图;
图5是长方体空间剖分及双向链表更新的示意图;
图6a是长方体空间双向链表循环遍历剖分的示意图;
图6b是长方体空间双向链表循环遍历剖分的示意图;
图6c是长方体空间双向链表循环遍历剖分的示意图;
图7是长方体空间中网格点在离散点云中的编号的示意图;
图8是长方体空间中网格点重复信息的示意图;
图9是离散点云中网格点重复信息的示意图;
其中:1是离散点云,2是网格点,3是长方体空间,4是长方体空间内网格点数量,5是长方体空间网格点顺序编号,6是网格点在离散点云中的编号,7是长方体空间中网格点重复编号,8是离散点云中网格点重复编号。
具体实施方式
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
本实施例针对的离散点云1如图1所示,首先需要确定离散点云1的三维空间的边界。如图2所示,循环遍历离散点云1中的所有网格点2,采用对比交换的方式计算出所有网格点2在三个坐标方向X、Y、Z的最大值和最小值
Figure 105665DEST_PATH_IMAGE017
,即对于任一网格点2,对比现有的
Figure 64394DEST_PATH_IMAGE018
值与网格点2的坐标X、Y、Z的大小,然后根据对比结果更新
Figure 470099DEST_PATH_IMAGE019
值,直至全部网格点2完成遍历。图1中的离散点云1最后更新得到的-1.0、1.0、-1.0、1.0、-1.0、1.0。
根据全部网格点2三个坐标方向X、Y、Z的最大值和最小值
Figure 223291DEST_PATH_IMAGE018
构建如图3所示中的角点
Figure 229293DEST_PATH_IMAGE003
Figure 991713DEST_PATH_IMAGE020
和角点
Figure 514574DEST_PATH_IMAGE005
Figure 173088DEST_PATH_IMAGE006
。其中,
Figure 666386DEST_PATH_IMAGE021
Figure 701338DEST_PATH_IMAGE022
Figure 737427DEST_PATH_IMAGE023
Figure 442209DEST_PATH_IMAGE024
为大于零的系数,用于消除数值误差可能带来的将网格点划分在长方体空间外面的问题。针对离散点云1,
Figure 298170DEST_PATH_IMAGE024
值取为0.05,获得角点
Figure 261447DEST_PATH_IMAGE003
Figure 620884DEST_PATH_IMAGE005
的坐标为(-1.1,-1.1,-1.1)和(1.1,1.1,1.1)。然后,以图3中点
Figure 762146DEST_PATH_IMAGE003
Figure 105403DEST_PATH_IMAGE005
作为长方体的两个角点,构建离散点云1所在的长方体空间3,如图3所示。图3中初始长方体空间的边界为
Figure 872371DEST_PATH_IMAGE025
,网格点数量为37,网格点在离散点云中的编号从1~37。
初始化长方体空间双向链表结构。将步骤二构建的初始长方体空间3作为节点加入双向链表结构,用ps,head和tail表示长方体空间双向链表结构的当前指针、头指针和尾指针,分别指向链表中的当前长方体空间、头长方体空间和尾长方体空间,头指针head的前向指针指向为空,尾指针tail的后向指针指向为空,如图4所示。当前双向链表仅有1个长方体空间,ps、head和tail指针均指向该长方体空间,从而实现长方体空间双向链表的初始化。
检查当前指针ps指向的当前长方体空间3,当网格点数量4规模超过限定值时,对该长方体空间进行剖分。为了便于说明算法,对于当前离散点云算例,指定网格点数量限定阈值等于10,ps指向长方体空间的网格点数量为37,大于限定阈值的值,因此对该长方体空间进行八叉树剖分。沿着3个坐标方向将长方体空间均匀分割成8个大小相同的长方体空间,八个长方体空间中的第2~第7个没有网格点,第1个长方体空间有15个网格点,空间边界是
Figure 351894DEST_PATH_IMAGE026
,网格点在离散点云中的编号是2、5、7、12、15、19、23、24、28、29、30、32、34、36、37,第8个长方体空间有22个网格点,空间边界是
Figure 664057DEST_PATH_IMAGE027
,网格点在离散点云中的编号是1、3、4、6、8、9、10、11、13、14、16、17、18、20、21、22、25、26、27、31、33、35。
从双向链表中删除被剖分的长方体空间3,修改当前指针ps的指向,更新链表信息,并添加新剖分的长方体空间3。将被剖分的网格点数量为37的长方体空间从双向链表中删除,此时链表为空链表,头指针head、尾指针tail和当前指针ps均指向为空。剖分后的8个长方体空间中,第1个长方体空间有15个网格点,网格点数量大于限定阈值,将该长方体空间添加到链表的头部,链表节点数变为1,头指针head和尾指针tail均指向该长方体空间,当前指针ps指向为空;第2~第7个长方体空间的网格点数量均为零,直接舍弃,不加入双向链表结构;第8个长方体空间有22个网格点,网格点数量大于限定阈值,将该长方体空间添加到链表的头部,链表节点数变为2,头指针head指向网格点数为22的长方体空间,尾指针tail指向网格点数为15的长方体空间,当前指针ps指向为空,长方体空间剖分和添加后的双向链表如图5所示。
循环遍历双向链表,不断对双向链表中超出限定网格点数量的长方体空间进行剖分,直至全部长方体空间的网格点数量均低于限定阈值。循环步骤四和步骤五,通过调整当前指针ps的指向,从链表头部顺序遍历整个链表结构,对链表中大于限定网格点数量的长方体空间进行剖分,并更新链表信息。当当前指针ps指向头指针head时,当前指针ps指向的长方体空间有22个网格点,大于网格点数量限定阈值,对网格点数为22的长方体空间进行八叉树剖分,得到的8个长方体空间中:
第1个长方体空间有9个网格点,空间边界是
Figure 229031DEST_PATH_IMAGE028
,网格点在离散点云中的编号是1、3、4、8、11、16、25、26、27,添加到网格点数为15的长方体空间后;第2~第3个长方体空间的网格点数量为零,舍弃不加入链表;
第4个长方体空间有5个网格点,空间边界是
Figure 534110DEST_PATH_IMAGE029
,网格点在离散点云中的编号是17、18、20、22、33,添加到网格点数为9的长方体空间后;第5、第6、第8个长方体空间的网格点数量为零,舍弃不加入链表;
第7个长方体空间有8个网格点,空间边界是
Figure 133719DEST_PATH_IMAGE030
,网格点在离散点云中的编号是6、9、10、13、14、21、31、35,添加到网格点数为5的长方体空间后,如图6a所示。
当网格点数量为22的长方体空间剖分完成后,将当前指针ps指向网格点数为15的长方体空间,因其网格点数量大于限定阈值,对网格点数为15个的长方体空间进行八叉树剖分,得到的8个长方体空间中:
第1个长方体空间有6个网格点,空间边界是
Figure 741418DEST_PATH_IMAGE032
,网格点在离散点云中的编号是2、5、7、15、30、32,添加到网格点数为8的长方体空间后;第2~第7个长方体空间的网格点数量为零,舍弃不加入链表;
第8个长方体空间有9个网格点,空间边界是
Figure 666124DEST_PATH_IMAGE033
,网格点在离散点云中的编号是12、19、23、24、28、29、34、36、37,添加到网格点数为6的长方体空间后,如图6b所示。
此时网格点数为15的长方体空间从双向链表删除,当前指针ps指向网格点数量为9的长方体空间,低于限定阈值,当前链表遍历结束。头指针head也指向网格点数量为9的长方体空间,网格点数量也低于限定阈值,循环遍历双向链表结束。此时完整长方体空间双向链表构建完成,如图6c所示,每个长方体空间内的网格点数量均低于限定阈值,网格点在长方体空间内部的序号5和在离散点云中的编号6如图7所示。
遍历双向链表结构,完成每个长方体空间内部网格点的重复点查重。首先,将当前指针ps指向头指针head,根据前述步骤构建的网格点在离散点云中的编号(如图7所示),访问离散点云,获取当前指针ps指向长方体空间中网格点的三维空间坐标数据(X, Y, Z)。然后遍历当前长方体空间中的全部网格点,获取长方体空间的重复点。以图7中双向链表的第3个节点的长方体空间为例,有8个网格点,遍历第2至第8个网格点,每个网格点与前面之前的网格点进行对比,例如第5个网格点与第1~第4个网格点对比,如果存在重复,将该点的重复点编号7的值取为与之重复点的序号5的值,如果不存在重复,将该点的重复点编号7的值取为零。遍历完成后,第3个长方体空间中序号为6的网格点与序号为2的网格点重复,网格为6的重复点编号7的值取为2,如图8所示。调整当前指针ps指向,循环执行前述遍历过程,完成全部长方体空间内网格点的遍历查重,得到的重复点编号7,如图8所示。
组装双向链表中全部长方体空间内的网格点重复信息,得到离散点云中全部网格点重复信息。将当前指针ps指向头指针head,通过调整当前指针ps指向,遍历全部长方体空间,完成全部重复点信息的收集和组装。仍以图8中双向链表的第3个节点的长方体空间为例,序号为6的网格点被标记为重复点,重复点的序号为2。根据图7中构建的长方体空间内网格点在离散点云中的编号,序号为6的网格点在离散点云中的编号为21,序号为6的网格点在离散点云中的编号为9。因此,离散点云中编号为21的点被记录为重复点,重复点编号8的值为9。遍历全部长方体空间,获取离散点云共有3个重复点,编号为11、21、36,分别与编号3、9、29的网格点重复,如图9所示。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。

Claims (8)

1.一种基于自适应空间剖分的离散点云重复点快速查找方法,用于计算流体力学仿真前的离散网格生成,构建网格点拓扑连接关系,生成获取压力、速度、密度物理量的网格,其特征在于包括以下步骤:
S1: 循环遍历离散点云中的所有空间点,计算出所有空间点在三个坐标方向的最大值和最小值,确定离散点云所在空间的边界;
S2:根据全部空间点三个坐标方向的最大值和最小值构建离散点云所在的长方体空间;
S3:将构建的长方体空间作为节点加入双向链表结构,初始化长方体空间双向链表;
S4:检查当前指针指向的当前长方体空间,当网格点数量规模超过限定值时,对长方体空间进行剖分;
S5:从双向链表中删除被剖分的长方体空间,修改当前指针的指向,更新链表信息,并添加新剖分的长方体空间;
S6:循环遍历双向链表,对双向链表中超出限定网格点数量的长方体空间进行剖分,直至全部长方体空间的网格点数量低于限定阈值;
S7:遍历双向链表结构,完成每个长方体空间内部网格点的重复点查重;
S8: 组装双向链表中全部长方体空间内的网格点重复信息,得到离散点云中全部网格点重复信息。
2.根据权利要求1所述的一种基于自适应空间剖分的离散点云重复点快速查找方法,其特征在于在S2中包括:
S21:设定空间点在坐标系中的三个方向的最小值为
Figure 872784DEST_PATH_IMAGE001
,最大值为
Figure 540657DEST_PATH_IMAGE002
S22:根据空间点坐标构建点
Figure 648290DEST_PATH_IMAGE003
Figure 36373DEST_PATH_IMAGE004
,和点
Figure 585166DEST_PATH_IMAGE005
Figure 532263DEST_PATH_IMAGE006
其中,
Figure 799296DEST_PATH_IMAGE007
Figure 624295DEST_PATH_IMAGE008
Figure 512747DEST_PATH_IMAGE009
Figure 693062DEST_PATH_IMAGE010
为大于零的系数;
S23:以点
Figure 807911DEST_PATH_IMAGE003
Figure 669556DEST_PATH_IMAGE005
作为角点,构建长方体空间,并计算长方体空间的信息,长方体空间信息包括空间边界位置、网格点数量、网格点在离散点云中的编号。
3.根据权利要求1所述的一种基于自适应空间剖分的离散点云重复点快速查找方法,其特征在于:在S4中:设定网格点数量的限定阈值,如果当前指针指向长方体空间的网格点数量大于限定阈值,则对该长方体空间进行剖分,沿着三个坐标方向将长方体空间均匀分割成八个大小相同的长方体空间,根据原长方体空间的空间边界信息计算新的八个长方体空间的空间边界信息,并统计八个长方体空间中网格点的数量和网格点在离散点云中的编号。
4.根据权利要1或3所述的一种基于自适应空间剖分的离散点云重复点快速查找方法,其特征在于:将被剖分的长方体空间从双向链表中删除,更新双向链表的头指针、尾指针的指向信息,如果被剖分的长方体空间的后续节点存在,将当前指针指向后续的长方体空间,如果不存在,当前指针指向为空。
5.根据权利要4所述的一种基于自适应空间剖分的离散点云重复点快速查找方法,其特征在于当剖分后的八个长方体空间中:
网格点数量仍大于限定阈值的长方体空间,依次添加到双向链表的起始位置,并更新头指针的指向;
网格点数量大于零且小于等于限定阈值的长方体空间,依次添加到双向链表的结束位置,并更新尾指针的指向;
网格点数量等于零的长方体空间,不加入双向链表,直接舍弃。
6.根据权利要求1所述的一种基于自适应空间剖分的离散点云重复点快速查找方法,其特征在于在S6中包括:
S61:不停的循环S4和S5,调整当前指针的指向,从链表头部顺序遍历整个链表结构,对链表中大于限定网格点数量的长方体空间进行剖分,并更新链表信息;
S62:当当前指针指向空或当前指针指向的长方体空间网格点数量小于等于限定阈值时,将当前指针指向头指针,循环S61;
S63:不断对链表中不符合网格点数量的长方体空间进行剖分,直至链表头指针指向的长方体空间的网格点数量低于限定阈值,结束循环遍历,完成整个双向链表数据的创建。
7.根据权利要求1所述的一种基于自适应空间剖分的离散点云重复点快速查找方法,其特征在于重复点查重的方法包括以下步骤:
S71:将当前指针指向头指针,根据S2和S4中构建的网格点在离散点云中的编号,访问离散点云,获取当前指针指向长方体空间中网格点的三维空间坐标;
S72:对当前长方体空间中的第m个点
Figure 22303DEST_PATH_IMAGE011
,遍历第1至第m-1个点,分别计算第i个遍历点
Figure 452147DEST_PATH_IMAGE012
与第m个点
Figure 552827DEST_PATH_IMAGE011
之间的空间距离
Figure 719628DEST_PATH_IMAGE013
如果距离
Figure 425416DEST_PATH_IMAGE014
小于阈值
Figure 917840DEST_PATH_IMAGE015
,则
Figure 584444DEST_PATH_IMAGE011
Figure 554937DEST_PATH_IMAGE012
重合,将
Figure 210171DEST_PATH_IMAGE011
标记为重复点,并将重复编号记录为i,退出遍历,
如果距离
Figure 575293DEST_PATH_IMAGE014
大于阈值
Figure 916145DEST_PATH_IMAGE015
,则
Figure 831274DEST_PATH_IMAGE011
Figure 262386DEST_PATH_IMAGE012
不重合,遍历下一个点,直至遍历结束,
如果
Figure 532830DEST_PATH_IMAGE011
Figure 65705DEST_PATH_IMAGE012
均不重合,则将
Figure 876535DEST_PATH_IMAGE011
标记为非重复点,所述阈值
Figure 286391DEST_PATH_IMAGE015
为正实数;
S73:循环上一步遍历过程,对长方体空间内的全部网格点进行遍历查重,获取长方体空间内全部网格点的重复信息;
S74:向后移动当前指针,改变当前长方体空间,重复上述循环遍历过程,直至当前指针指向为空,完成整个双向链表结构中全部长方体空间内的重复点查找。
8.根据权利要求7所述的一种基于自适应空间剖分的离散点云重复点快速查找方法,其特征在于:
S81:将当前指针指向头指针,对于当前长方体空间内部的全部网格点,若第m个空间点
Figure 806365DEST_PATH_IMAGE011
被标记为重复点,且重复点的编号为n
S82:根据S2和S4得到的网格点在离散点云中的编号,获得当前长方体空间内部第mn个网格点在离散点云中的编号mpnp,则将离散点云中的第mp个网格点标记为重复点,重复点的编号为np
S83:依次移动当前指针,遍历双向链表中的全部长方体空间,重复上述过程,获得离散点云中全部网格点的重复信息。
CN202110658491.9A 2021-06-15 2021-06-15 一种基于自适应空间剖分的离散点云重复点快速查找方法 Active CN113111612B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110658491.9A CN113111612B (zh) 2021-06-15 2021-06-15 一种基于自适应空间剖分的离散点云重复点快速查找方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110658491.9A CN113111612B (zh) 2021-06-15 2021-06-15 一种基于自适应空间剖分的离散点云重复点快速查找方法

Publications (2)

Publication Number Publication Date
CN113111612A true CN113111612A (zh) 2021-07-13
CN113111612B CN113111612B (zh) 2021-08-10

Family

ID=76723669

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110658491.9A Active CN113111612B (zh) 2021-06-15 2021-06-15 一种基于自适应空间剖分的离散点云重复点快速查找方法

Country Status (1)

Country Link
CN (1) CN113111612B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114299240A (zh) * 2021-12-20 2022-04-08 重庆市勘测院 一种基于距离阈值的并行点云抽稀方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105631929A (zh) * 2014-11-28 2016-06-01 富泰华工业(深圳)有限公司 点云精简方法及系统
CN105631065A (zh) * 2014-10-31 2016-06-01 北京临近空间飞行器系统工程研究所 一种基于背景网格的动网格方法
CN105719261A (zh) * 2014-12-05 2016-06-29 富泰华工业(深圳)有限公司 点云数据合并系统及方法
US9858640B1 (en) * 2015-07-15 2018-01-02 Hrl Laboratories, Llc Device and method for merging 3D point clouds from sparsely distributed viewpoints
CN107798696A (zh) * 2017-10-19 2018-03-13 北京联合大学 一种基于保局pca的三维点云配准方法
CN107958209A (zh) * 2017-11-16 2018-04-24 深圳天眼激光科技有限公司 一种违建识别方法、系统及电子设备
CN109345619A (zh) * 2018-08-10 2019-02-15 华北电力大学(保定) 基于类八叉树编码的海量点云空间管理方法
CN109870106A (zh) * 2019-02-14 2019-06-11 南京邮电大学 一种基于无人机图片的建筑物体积测量方法
CN111512342A (zh) * 2017-12-22 2020-08-07 三星电子株式会社 在点云压缩中处理重复点的方法和装置
CN112700479A (zh) * 2020-12-23 2021-04-23 北京超星未来科技有限公司 一种基于cnn点云目标检测的配准方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105631065A (zh) * 2014-10-31 2016-06-01 北京临近空间飞行器系统工程研究所 一种基于背景网格的动网格方法
CN105631929A (zh) * 2014-11-28 2016-06-01 富泰华工业(深圳)有限公司 点云精简方法及系统
CN105719261A (zh) * 2014-12-05 2016-06-29 富泰华工业(深圳)有限公司 点云数据合并系统及方法
US9858640B1 (en) * 2015-07-15 2018-01-02 Hrl Laboratories, Llc Device and method for merging 3D point clouds from sparsely distributed viewpoints
CN107798696A (zh) * 2017-10-19 2018-03-13 北京联合大学 一种基于保局pca的三维点云配准方法
CN107958209A (zh) * 2017-11-16 2018-04-24 深圳天眼激光科技有限公司 一种违建识别方法、系统及电子设备
CN111512342A (zh) * 2017-12-22 2020-08-07 三星电子株式会社 在点云压缩中处理重复点的方法和装置
CN109345619A (zh) * 2018-08-10 2019-02-15 华北电力大学(保定) 基于类八叉树编码的海量点云空间管理方法
CN109870106A (zh) * 2019-02-14 2019-06-11 南京邮电大学 一种基于无人机图片的建筑物体积测量方法
CN112700479A (zh) * 2020-12-23 2021-04-23 北京超星未来科技有限公司 一种基于cnn点云目标检测的配准方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
UNGER, MIKLOS 等: "Development of Point-cloud Processing Algorithm for Self-Driving Challenges", 《2020 IEEE 24TH INTERNATIONAL CONFERENCE ON INTELLIGENT ENGINEERING SYSTEMS (INES 2020)》 *
陈新河 等: "互动优化的增量三角剖分算法", 《巢湖学院学报》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114299240A (zh) * 2021-12-20 2022-04-08 重庆市勘测院 一种基于距离阈值的并行点云抽稀方法

Also Published As

Publication number Publication date
CN113111612B (zh) 2021-08-10

Similar Documents

Publication Publication Date Title
CN102306396B (zh) 一种三维实体模型表面有限元网格自动生成方法
CN112231961B (zh) 大规模有限元网格数据存储索引方法
CN108763827B (zh) 一种输电塔有限元模型建立方法及装置
CN112597610B (zh) 机械臂结构轻量化设计的优化方法、装置及设备
CN115661374B (zh) 一种基于空间划分和模型体素化的快速检索方法
CN113111612B (zh) 一种基于自适应空间剖分的离散点云重复点快速查找方法
CN103106313B (zh) 轧后件顺序重构方法
CN107886573B (zh) 一种复杂地质条件下边坡三维有限元网格生成方法
CN117252863A (zh) 一种地理信息异常数据快速检测分析方法
CN111695281A (zh) 一种四面体网格划分有限元粒子模拟的粒子快速定位方法
CN113342999B (zh) 一种基于多层跳序树结构的变分辨率点云简化方法
CN114510775A (zh) 一种复杂模型三维空间曲网格划分方法
CN103336858A (zh) 一种刻蚀和沉积工艺三维元胞信息存储结构及操作方法
CN110738726B (zh) 一种基于八叉树的机器人视觉引导三维物体重建方法
CN116049941B (zh) 装配式环桁架结构构件装配前多维度状态提取及分析方法
CN115330971B (zh) 一种面向渲染性能优化的几何模型轻量化方法
CN115730438A (zh) 产品nurbs曲面映射逆向求解gpu并行处理方法
CN114818128B (zh) 船体局部曲面优化神经网络建模方法及优化方法
CN114840926B (zh) 一种轮胎复杂花纹三维有限元网格的生成方法
CN110322415A (zh) 基于点云的高精度表面三维重构方法
CN114119882B (zh) 飞行器动态流场分析中高效的嵌套网格宿主单元搜索方法
CN111666689B (zh) 特征线追踪方法、堆芯中子物理计算方法和装置
CN113377883A (zh) 一种基于学习索引模型的多维数据查询方法
CN113011113B (zh) 一种离散点云重复点快速查找方法
CN117349914B (zh) 一种基于环绕数的布尔运算方法

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