CN103679807A - 一种带边界约束的散乱点云重构方法 - Google Patents

一种带边界约束的散乱点云重构方法 Download PDF

Info

Publication number
CN103679807A
CN103679807A CN201310717328.0A CN201310717328A CN103679807A CN 103679807 A CN103679807 A CN 103679807A CN 201310717328 A CN201310717328 A CN 201310717328A CN 103679807 A CN103679807 A CN 103679807A
Authority
CN
China
Prior art keywords
point
grid
boundary
point cloud
dimensional
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
CN201310717328.0A
Other languages
English (en)
Other versions
CN103679807B (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.)
Focus Technology Co Ltd
Original Assignee
Focus Technology Co Ltd
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 Focus Technology Co Ltd filed Critical Focus Technology Co Ltd
Priority to CN201310717328.0A priority Critical patent/CN103679807B/zh
Publication of CN103679807A publication Critical patent/CN103679807A/zh
Application granted granted Critical
Publication of CN103679807B publication Critical patent/CN103679807B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Generation (AREA)

Abstract

本发明公开了一种带边界约束的散乱点云重构方法。所述方法首先将三维散乱点云映射到二维平面上,对获取的二维点集求取最小包围盒后将包围盒划分为若干个矩形栅格,根据每个栅格的相邻栅格内是否存在二维点来判断该栅格是否为边界栅格,对每个边界栅格提取出二维边界点后通过映射关系得到三维散乱点云的边界点;将三维散乱点云中的边界点去除后利用基于模糊熵迭代的点云简化算法对剩余点云进行简化,将之与点云边界点合并后构成精简点云;利用基于Delaunay准则的优化算法对精简点云对应的二维点集进行三角剖分后将剖分结果映射到三维空间,最终实现三维散乱点云曲面重构。

Description

一种带边界约束的散乱点云重构方法
技术领域
本发明属于计算机辅助设计领域,尤其是涉及一种带边界约束的散乱点云重构方法。
背景技术
随着计算机几何技术的不断发展,逆向工程作为一种产品设计再现技术已经引起了各界的注意。由于现代光学技术和激光扫描等技术飞速发展,点云数据已经在计算机辅助设计和计算机图形学领域有了广泛应用。而曲面重构是实现后续各项功能的基础,是逆向工程研究的关键技术之一。
近年来,曲面重构技术已经有深入研究。针对三维散乱点云,目前主要存在两种三角剖分算法:二维平面投影法和直接三维三角剖分。直接三角剖分的理论和算法都不完善,算法效率不高,并不太实用;目前应用比较多的是二维平面投影法,但是对于点云边界上的点,该算法可能会将并不相邻的点构成三角形,因此在边界处无法很好地还原物体本来面貌。
三维散乱点云的曲面重构具有广泛的应用前景,同时也是一个具有挑战性工作,需要进一步的深入研究。
发明内容
本发明所要解决的技术问题在于克服现有技术的不足,本发明提出了一种带边界约束的散乱点云重构方法。
为解决上述技术问题,本发明采用的技术方案如下:一种带边界约束的散乱点云重构方法,其步骤如下:
步骤1:利用圆柱面投影法,将原始三维散乱点云Pri_PointCloud映射到二维平面上,得到二维散乱点集Pri_Dot,建立起Pri_PointCloud和Pri_Dot之间的一一对应关系;
步骤2:找到二维散乱点集Pri_Dot的最小包围盒Box后,将最小包围盒以一定的间距划分成矩形栅格,具体步骤如下:
步骤2.1:遍历二维散乱点集Pri_Dot,分别得到Pri_Dot中横向和纵向最值,记为Xmax、Xmin、Ymax和Ymin;
步骤2.2:以点(Xmax,Ymax)、点(Xmin,Ymin)、点(Xmax,Ymin)和点(Xmin,Ymax)为顶点构成一个矩形,该矩形即为最小包围盒Box;
步骤2.3:以点(Xmin,Ymin)为起始顶点,从左到右自下而上将最小包围盒Box分割成m×n个正方形栅格,每个正方形栅格的边长为Gap,将每个栅格的顶点坐标信息和栅格序号按照分割生成顺序存入栅格集合Mesh中;
步骤2.4:根据坐标位置关系,将二维散乱点集Pri_Dot中所有点划分到对应的栅格中后统计每个栅格内是否含有Pri_Dot中的点,若栅格内含有散乱点,则定义该栅格为有效栅格,否则定义为无效栅格,最小包围盒外的部分均设置为无效栅格;
步骤3:对于每个有效栅格,判定其是否为边界栅格,具体步骤如下:
步骤3.1:统计每个有效栅格上下左右四个相邻栅格是否均为有效栅格;若是,则判定该栅格不是边界栅格,若否,则判定该栅格为边界栅格;
步骤3.2:对每个边界栅格,进一步确定它的边界标记;若它的左栅格为无效栅格,则该栅格为左边界栅格,若它的上栅格与左栅格均为无效栅格,则该栅格为左上边界栅格,依此类推;定义上边界栅格的标记为1,下边界栅格的标记为2,左边界栅格的标记为3,右边界栅格的标记为4,左上边界栅格的标记为5,左下边界栅格的标记为6,右上边界栅格的标记为7,右下边界栅格的标记为8;
步骤3.3:将每个边界栅格的坐标信息和其边界标记同时加入边界栅格集合EMesh;
步骤4:遍历边界栅格集合EMesh,找出每个边界栅格中的边界点后根据映射关系得到三维散乱点云中的边界点,具体步骤如下:
步骤4.1:构造一个二维边界点容器Edge_Vector_2D用于存放二维边界点和一个点云边界点容器Edge_Vector_3D用于存放散乱点云中的边界点;
步骤4.2:任取一个边界栅格,确定其边界标记,根据边界标记找出该栅格内边界点;若边界标记为1-4,在每个栅格内找一次边界点,以边界标记值为1时找上边界点为例,沿x方向从左到右将边界栅格平均划分为G个矩形,找出每个矩形内二维散乱点中y坐标最大的点后将该点存入二维边界点容器Edge_Vector_2D,边界标记值为2、3、4时找边界点以边界标记值为1时找上边界点为例;若边界标记为5-8,在每个栅格内找两次边界点,以边界标记值为5时找左上边界点为例,先仿照标志值为1时找出上边界点后再仿照标志值为3时找出左边界点后合在一起即为该栅格的边界点,边界标记值为6、7、8时找边界点以边界标记值为5时找左上边界点为例;
步骤4.3:待边缘栅格集合EMesh内所有元素都找到其中的边界点并存入二维边缘点容器Edge_Vector_2D后,根据步骤1中映射时得到的一一对应关系,找出Edge_Vector_2D对应的三维点,这些点即为散乱点云的边界点,将它们存入点云边界点容器Edge_Vector_3D后转至步骤5;
步骤5:将三维散乱点云Pri_PointCloud中的边界点去除,估算剩余三维点的曲率后利用模糊熵迭代法对剩余点进行相应比例稀释,将稀释剩余点与步骤4中得到的边界点合在一起构成简化点云Simp_PointCloud,具体步骤如下:
步骤5.1:从三维散乱点云Pri_PointCloud中将步骤4中得到的边界点去除,得到非边界点云nonedge_PCloud,统计nonedge_PCloud中点个数记为Number;
步骤5.2:对非边界点云nonedge_PCloud中任意一点p0,采用稳定性较好的抛物面拟合法来估算该点的曲率c,遍历nonedge_PCloud中所有点,进而得到非边界点曲率集合Cur;
步骤5.3:将非边界点曲率集合Cur中曲率值从大到小排列,得到曲率最大值MaxCur、最小值MinCur以及最大最小值之差CurDelta,以5%*CurDelta为划分阈值,从曲率最小值MinCur开始至曲率最大值终止,将曲率集合Cur分为20组,构成集合CurSet,计算出第j组中曲率个数Cnum[j]以及曲率均值ave_cur[j],其中1≤j≤20;
步骤5.4:将CurSet作为一个整体构建模糊集,计算出最小模糊熵,其对应组别的的曲率均值即作为最佳阈值T,非边界点云nonedge_PCloud中曲率值大于T的点存入到大曲率点集合BigCur,曲率值小于T的点则存入到小曲率点集合SmallCur;
步骤5.5:对于小曲率点集合SmallCur中的点,从首个点开始,每隔n个点选取一个三维点存入简化点云Simp_PointCloud中直至SmallCur的末尾;对于大曲率点集合BigCur,统计BigCur中点个数记为Bnum,若Bnum<(Number*1%),则直接将BigCur中所有点存入简化点云Simp_PointCloud中,否则跳转至步骤5.4后将BigCur作为一个整体继续执行直至满足要求;
步骤5.6:将点云边界点容器Edge_Vector_3D中所有点也存到简化点云Simp_PointCloud中;
步骤6:从二维散乱点集Pri_Dot中将简化点云Simp_PointCloud所对应的二维数据选取出来记为Simp_Dot2d后,利用基于Delaunay准则的优化算法进行二维三角剖分后映射回三维空间,具体步骤如下:
步骤6.1:根据步骤1中映射时得到的一一对应关系,将简化点云Simp_PointCloud所对应的二维坐标从二维散乱点集Pri_Dot中选取出来记为Simp_Dot2d;
步骤6.2:构造点表PList用于存储并管理Simp_Dot2d中的二维点,PList中储存二维点的坐标、序号及点边界标识,对PList中任意一点,若该点为边界点则点边界标识为1,否则为0,序号则表示该点在点表PList中的位置顺序;构造边表SList用于存储并管理构造的三角形的边,若构成边的两个顶点均为边界点,则称之为边界边,否则称为普通边,SList中储存已构建边的顶点在PList中的序号、边边界标识及其使用次数,当某一边被添加进三角网格后使用次数加1,边界边最大使用次数为一次,而普通边最大使用次数为两次,当一条边的使用次数达到最大使用次数时,就将该边从SList中删去;构建三角形表TList,用于存储构造的三角形的三个顶点的序号,TList初始为空,随着三角网格构建不断更新;
步骤6.3:从点表PList中任取一点Point1,遍历PList找出与Point1最临近的点Point2,连接这两点得到边s1并将之存入边表SList作为其初始值;
步骤6.4:从边表SList中选取一条边,从点表PList中找到符合Delaunay三角剖分准则的点,进而构造出三角形;若构造的三角形的顶点均为边界点,且存在一条边的长度大于
Figure BDA0000444814930000061
则判定该三角形无效,其中Gap为步骤2中分割最小包围盒使用正方形模板边长;否则就判定构造的三角形有效并将该它存入三角形表TList,更新点表PList和边表SList后将SList中达到最大使用次数的边删除;
步骤6.5:判断边表SList中边数量是否为零,若不是则跳转至步骤6.3继续构造三角形,否则跳至步骤6.6;
步骤6.6:二维空间内数据点Simp_Dot2d的三角网格化完成,根据步骤1中映射时得到的一一对应关系,三维简化点云Simp_PointCloud也得到相应的三角网格,三维散乱点云曲面重构完成。
本发明的有益效果是:本发明提出了一种带边界约束的散乱点云重构方法,所述方法首先将三维散乱点云映射到二维平面上,对获取的二维点集提取出二维边界点后通过映射关系得到三维散乱点云的边界点;将三维散乱点云中的边界点去除后利用基于模糊熵迭代的点云精简算法对剩余点云进行简化,将之与点云边界点合并后构成精简点云;利用基于Delaunay准则的优化算法对精简点云对应的二维点集进行三角剖分后将剖分结果映射到三维空间,最终实现三维散乱点云曲面重构。该方法可以简单有效地得到点云边界点,同时构造网格时简单快速,效率较高,构网准确。
附图说明
图1是本发明的一种带边界约束的散乱点云重构方法整体流程图。
图2是本发明使用的水壶点云模型。
图3是步骤4边界栅格内找边界点的流程图。
图4是步骤4中提取点云边界点的效果图。
图5是步骤5中点云简化之后的效果图。
图6是步骤6中基于Delaunay准则的三角网格化优化算法流程图。
图7是本发明的基于边界提取的三维点云曲面重构效果图。
具体实施方式
下面结合附图,对本发明提出的一种带边界约束的散乱点云重构方法进行详细说明:
本发明的一种带边界约束的散乱点云重构方法,在Windows操作系统中通过VS2010平台用C++编程语言实现带边界约束的散乱点云重构方法的全部过程。我们选取本实验室采用光栅投影三维测量技术所获得的水壶点云数据,点云模型如图2所示,以此作为实例,基于本发明提出的方法对三维散乱点云进行曲面重构,并检验其重构效果。图1是本发明方法整体流程图,具体步骤如下:
步骤1:利用圆柱面投影法,将原始三维散乱点云Pri_PointCloud映射到二维平面上,得到二维散乱点集Pri_Dot,建立起Pri_PointCloud和Pri_Dot之间的一一对应关系,圆柱面投影法具体步骤可参考文献“郑德华.三维激光扫描数据处理的理论与方法[D].上海:同济大学,2005:64-70”;
步骤2:找到二维散乱点集Pri_Dot的最小包围盒Box后,将最小包围盒以一定的间距划分成矩形栅格,具体步骤如下:
步骤2.1:遍历二维散乱点集Pri_Dot,分别得到Pri_Dot中横向和纵向最值,记为Xmax、Xmin、Ymax和Ymin;
步骤2.2:以点(Xmax,Ymax)、点(Xmin,Ymin)、点(Xmax,Ymin)和点(Xmin,Ymax)为顶点构成一个矩形,该矩形即为最小包围盒Box;
步骤2.3:以点(Xmin,Ymin)为起始顶点,从左到右自下而上将最小包围盒Box分割成m×n个正方形栅格,每个正方形栅格的边长为Gap,将每个栅格的顶点坐标信息和栅格序号按照分割生成顺序存入栅格集合Mesh中,此次栅格边长Gap的选取需要参考点云密度以及点云模型实际大小,此次经过实验我们选取Gap=12;
步骤2.4:根据坐标位置关系,将二维散乱点集Pri_Dot中所有点划分到对应的栅格中后统计每个栅格内是否含有Pri_Dot中的点,若栅格内含有散乱点,则定义该栅格为有效栅格,否则定义为无效栅格,最小包围盒外的部分均设置为无效栅格;
步骤3:对于每个有效栅格,判定其是否为边界栅格,具体步骤如下:
步骤3.1:统计每个有效栅格上下左右四个相邻栅格是否均为有效栅格;若是,则判定该栅格不是边界栅格,若否,则判定该栅格为边界栅格;
步骤3.2:对每个边界栅格,进一步确定它的边界标记;若它的左栅格为无效栅格,则该栅格为左边界栅格,若它的上栅格与左栅格均为无效栅格,则该栅格为左上边界栅格,依此类推;定义上边界栅格的标记为1,下边界栅格的标记为2,左边界栅格的标记为3,右边界栅格的标记为4,左上边界栅格的标记为5,左下边界栅格的标记为6,右上边界栅格的标记为7,右下边界栅格的标记为8;
步骤3.3:将每个边界栅格的坐标信息和其边界标记同时加入边界栅格集合EMesh;
步骤4:遍历边界栅格集合EMesh,找出每个边界栅格中的边界点后根据映射关系得到三维散乱点云中的边界点,寻找栅格中边界点方法的流程图如图3所示,具体步骤如下:
步骤4.1:构造一个二维边界点容器Edge_Vector_2D用于存放二维边界点和一个点云边界点容器Edge_Vector_3D用于存放散乱点云中的边界点;
步骤4.2:任取一个边界栅格,确定其边界标记,根据边界标记找出该栅格内边界点;若边界标记为1-4,根据边界标记的定义,说明该边界栅格只有一侧存在边界点,只需在每个栅格内找一次边界点,以边界标记值为1时找上边界点为例,沿x方向从左到右将边界栅格平均划分为G个矩形,找出每个矩形内二维散乱点中y坐标最大的点后将该点存入二维边界点容器Edge_Vector_2D,此处使用到的G一般选取步骤2.3中栅格边长Gap的1/3或1/4,这里我们选取G为4,边界标记值为2、3、4时找边界点以边界标记值为1时找上边界点为例;若边界标记为5-8,根据边界标记的定义,说明该边界栅格中有两侧存在边界点,则需要在每个栅格内找两次边界点,以边界标记值为5时找左上边界点为例,先仿照标志值为1时找出上边界点后再仿照标志值为3时找出左边界点后合在一起即为该栅格的边界点,边界标记值为6、7、8时找边界点以边界标记值为5时找左上边界点为例;
步骤4.3:待边缘栅格集合EMesh内所有元素都找到其中的边界点并存入二维边缘点容器Edge_Vector_2D后,根据步骤1中映射时得到的一一对应关系,找出Edge_Vector_2D对应的三维点,这些点即为散乱点云的边界点,将它们存入点云边界点容器Edge_Vector_3D后转至步骤5,寻找点云边界点的效果如图4所示;
步骤5:将三维散乱点云Pri_PointCloud中的边界点去除,估算剩余三维点的曲率后利用模糊熵迭代法对剩余点进行相应比例稀释,将稀释剩余点与步骤4中得到的边界点合在一起构成简化点云Simp_PointCloud,具体步骤如下:
步骤5.1:从三维散乱点云Pri_PointCloud中将步骤4中得到的边界点去除,得到非边界点云nonedge_PCloud,统计nonedge_PCloud中点个数记为Number;
步骤5.2:对非边界点云nonedge_PCloud中任意一点p0,采用稳定性较好的抛物面拟合法来估算该点的曲率c,遍历nonedge_PCloud中所有点,进而得到非边界点曲率集合Cur,抛物面拟合法具体步骤可参考文献“周绿,林亨,钟约先,袁朝龙.曲面重构中测量点云精简方法的研究[J].中国制造业信息化,2004,33(5):102-104”;
步骤5.3:将非边界点曲率集合Cur中曲率值从大到小排列,得到曲率最大值MaxCur、最小值MinCur以及最大最小值之差CurDelta,以5%*CurDelta为划分阈值,从曲率最小值MinCur开始至曲率最大值终止,将曲率集合Cur分为20组,构成集合CurSet,计算出第j组中曲率个数Cnum[j]以及曲率均值ave_cur[j],其中1≤j≤20;
步骤5.4:将CurSet作为一个整体构建模糊集,计算出最小模糊熵,其对应组别的的曲率均值即作为最佳阈值T,非边界点云nonedge_PCloud中曲率值大于T的点存入到大曲率点集合BigCur,曲率值小于T的点则存入到小曲率点集合SmallCur,此处模糊熵的计算可参考文献“陈璋雯,达飞鹏.基于模糊熵迭代的三维点云精简算法[J].光学学报,2013,33(8):0815001”;
步骤5.5:对于小曲率点集合SmallCur中的点,从首个点开始,每隔n个点选取一个三维点存入简化点云Simp_PointCloud中直至SmallCur的末尾;对于大曲率点集合BigCur,统计BigCur中点个数记为Bnum,若Bnum<(Number*1%),则直接将BigCur中所有点存入简化点云Simp_PointCloud中,否则跳转至步骤5.4后将BigCur作为一个整体继续执行直至满足要求,此处使用的n与我们选取的稀释比例di有关系,选取n=1di;
步骤5.6:将点云边界点容器Edge_Vector_3D中所有点也存到简化点云Simp_PointCloud中,简化点云的效果如图5所示;
步骤6:从二维散乱点集Pri_Dot中将简化点云Simp_PointCloud所对应的二维数据选取出来记为Simp_Dot2d后,利用基于Delaunay准则的优化算法进行二维三角剖分后映射回三维空间,二维三角剖分算法流程图如图6所示,具体步骤如下:
步骤6.1:根据步骤1中映射时得到的一一对应关系,将简化点云Simp_PointCloud所对应的二维坐标从二维散乱点集Pri_Dot中选取出来记为Simp_Dot2d;
步骤6.2:构造点表PList用于存储并管理Simp_Dot2d中的二维点,PList中储存二维点的坐标、序号及点边界标识,对PList中任意一点,若该点为边界点则点边界标识为1,否则为0,序号则表示该点在点表PList中的位置顺序;构造边表SList用于存储并管理构造的三角形的边,若构成边的两个顶点均为边界点,则称之为边界边,否则称为普通边,SList中储存已构建边的顶点在PList中的序号、边边界标识及其使用次数,当某一边被添加进三角网格后使用次数加1,边界边最大使用次数为一次,而普通边最大使用次数为两次,当一条边的使用次数达到最大使用次数时,就将该边从SList中删去;构建三角形表TList,用于存储构造的三角形的三个顶点的序号,TList初始为空,随着三角网格构建不断更新;
步骤6.3:从点表PList中任取一点Point1,遍历PList找出与Point1最临近的点Point2,连接这两点得到边s1并将之存入边表SList作为其初始值;
步骤6.4:从边表SList中选取一条边,从点表PList中找到符合Delaunay三角剖分准则的点,进而构造出三角形;此处使用的Delaunay准则主要包含最小角最大准则和空外接圆准则;所谓最小角最大准则,即在不出现奇异性的情况下,Delaunay三角剖分所形成的三角形中最小角之和大于任意非Delaunay三角剖分的最小角之和;空外接圆准则是指Delaunay三角剖分后任意的三角形的外接圆内不包含其他数据点;若构造的三角形的顶点均为边界点,且存在一条边的长度大于
Figure BDA0000444814930000131
则判定该三角形无效,其中Gap为步骤2中分割最小包围盒使用正方形模板边长;否则就判定构造的三角形有效并将该它存入三角形表TList,更新点表PList和边表SList后将SList中达到最大使用次数的边删除;
步骤6.5:判断边表SList中边数量是否为零,若不是则跳转至步骤6.3继续构造三角形,否则跳至步骤6.6;
步骤6.6:二维空间内数据点Simp_Dot2d的三角网格化完成,根据步骤1中映射时得到的一一对应关系,三维简化点云Simp_PointCloud也得到相应的三角网格,三维散乱点云曲面重构完成,重构效果如图7所示。
以上实施例只是对于本发明的部分功能进行描述,但实施例和附图并不是用来限定本发明的。在不脱离本发明之精神和范围内,所做的任何等效变化或润饰,同样属于本发明之保护范围,因此本发明的保护范围应当以本申请的权利要求所界定的内容为标准。

Claims (6)

1.一种带边界约束的散乱点云重构方法,其特征在于,其步骤如下:
步骤1:利用圆柱面投影法,将原始三维散乱点云Pri_PointCloud映射到二维平面上,得到二维散乱点集Pri_Dot,建立起Pri_PointCloud和Pri_Dot之间的一一对应关系;
步骤2:找到二维散乱点集Pri_Dot的最小包围盒Box后,将最小包围盒以一定的间距划分成矩形栅格;
步骤3:对于每个有效栅格,判定其是否为边界栅格;
步骤4:遍历边界栅格集合EMesh,找出每个边界栅格中的边界点后根据映射关系得到三维散乱点云中的边界点;
步骤5:将三维散乱点云Pri_PointCloud中的边界点去除,估算剩余三维点的曲率后利用模糊熵迭代法对剩余点进行相应比例稀释,将稀释剩余点与步骤4中得到的边界点合在一起构成简化点云Simp_PointCloud;
步骤6:从二维散乱点集Pri_Dot中将简化点云Simp_PointCloud所对应的二维数据选取出来记为Simp_Dot2d后,利用基于Delaunay准则的优化算法进行二维三角剖分后映射回三维空间。
2.根据权利要求1所述的带边界约束的散乱点云重构方法,其特征在于,步骤2的具体步骤如下:
步骤2.1:遍历二维散乱点集Pri_Dot,分别得到Pri_Dot中横向和纵向最值,记为Xmax、Xmin、Ymax和Ymin;
步骤2.2:以点(Xmax,Ymax)、点(Xmin,Ymin)、点(Xmax,Ymin)和点(Xmin,Ymax)为顶点构成一个矩形,该矩形即为最小包围盒Box;
步骤2.3:以点(Xmin,Ymin)为起始顶点,从左到右自下而上将最小包围盒Box分割成m×n个正方形栅格,每个正方形栅格的边长为Gap,将每个栅格的顶点坐标信息和栅格序号按照分割生成顺序存入栅格集合Mesh中;
步骤2.4:根据坐标位置关系,将二维散乱点集Pri_Dot中所有点划分到对应的栅格中后统计每个栅格内是否含有Pri_Dot中的点,若栅格内含有散乱点,则定义该栅格为有效栅格,否则定义为无效栅格,最小包围盒外的部分均设置为无效栅格。
3.根据权利要求1所述的带边界约束的散乱点云重构方法,其特征在于,步骤3的具体步骤如下:
步骤3.1:统计每个有效栅格上下左右四个相邻栅格是否均为有效栅格;若是,则判定该栅格不是边界栅格,若否,则判定该栅格为边界栅格;
步骤3.2:对每个边界栅格,进一步确定它的边界标记;若它的左栅格为无效栅格,则该栅格为左边界栅格,若它的上栅格与左栅格均为无效栅格,则该栅格为左上边界栅格,依此类推;定义上边界栅格的标记为1,下边界栅格的标记为2,左边界栅格的标记为3,右边界栅格的标记为4,左上边界栅格的标记为5,左下边界栅格的标记为6,右上边界栅格的标记为7,右下边界栅格的标记为8;
步骤3.3:将每个边界栅格的坐标信息和其边界标记同时加入边界栅格集合EMesh。
4.根据权利要求1所述的带边界约束的散乱点云重构方法,其特征在于,步骤4的具体步骤如下:
步骤4.1:构造一个二维边界点容器Edge_Vector_2D用于存放二维边界点和一个点云边界点容器Edge_Vector_3D用于存放散乱点云中的边界点;
步骤4.2:任取一个边界栅格,确定其边界标记,根据边界标记找出该栅格内边界点;若边界标记为1-4,在每个栅格内找一次边界点,以边界标记值为1时找上边界点为例,沿x方向从左到右将边界栅格平均划分为G个矩形,找出每个矩形内二维散乱点中y坐标最大的点后将该点存入二维边界点容器Edge_Vector_2D,边界标记值为2、3、4时找边界点以边界标记值为1时找上边界点为例;若边界标记为5-8,在每个栅格内找两次边界点,以边界标记值为5时找左上边界点为例,先仿照标志值为1时找出上边界点后再仿照标志值为3时找出左边界点后合在一起即为该栅格的边界点,边界标记值为6、7、8时找边界点以边界标记值为5时找左上边界点为例;
步骤4.3:待边缘栅格集合EMesh内所有元素都找到其中的边界点并存入二维边缘点容器Edge_Vector_2D后,根据步骤1中映射时得到的一一对应关系,找出Edge_Vector_2D对应的三维点,这些点即为散乱点云的边界点,将它们存入点云边界点容器Edge_Vector_3D后转至步骤5。
5.根据权利要求1所述的带边界约束的散乱点云重构方法,其特征在于,步骤5的具体步骤如下:
步骤5.1:从三维散乱点云Pri_PointCloud中将步骤4中得到的边界点去除,得到非边界点云nonedge_PCloud,统计nonedge_PCloud中点个数记为Number;
步骤5.2:对非边界点云nonedge_PCloud中任意一点p0,采用稳定性较好的抛物面拟合法来估算该点的曲率c,遍历nonedge_PCloud中所有点,进而得到非边界点曲率集合Cur;
步骤5.3:将非边界点曲率集合Cur中曲率值从大到小排列,得到曲率最大值MaxCur、最小值MinCur以及最大最小值之差CurDelta,以5%*CurDelta为划分阈值,从曲率最小值MinCur开始至曲率最大值终止,将曲率集合Cur分为20组,构成集合CurSet,计算出第j组中曲率个数Cnum[j]以及曲率均值ave_cur[j],其中1≤j≤20;
步骤5.4:将CurSet作为一个整体构建模糊集,计算出最小模糊熵,其对应组别的的曲率均值即作为最佳阈值T,非边界点云nonedge_PCloud中曲率值大于T的点存入到大曲率点集合BigCur,曲率值小于T的点则存入到小曲率点集合SmallCur;
步骤5.5:对于小曲率点集合SmallCur中的点,从首个点开始,每隔n个点选取一个三维点存入简化点云Simp_PointCloud中直至SmallCur的末尾;对于大曲率点集合BigCur,统计BigCur中点个数记为Bnum,若Bnum<(Number*1%),则直接将BigCur中所有点存入简化点云Simp_PointCloud中,否则跳转至步骤5.4后将BigCur作为一个整体继续执行直至满足要求;
步骤5.6:将点云边界点容器Edge_Vector_3D中所有点也存到简化点云Simp_PointCloud中。
6.根据权利要求6所述的带边界约束的散乱点云重构方法,其特征在于,步骤6的具体步骤如下:
步骤6.1:根据步骤1中映射时得到的一一对应关系,将简化点云Simp_PointCloud所对应的二维坐标从二维散乱点集Pri_Dot中选取出来记为Simp_Dot2d;
步骤6.2:构造点表PList用于存储并管理Simp_Dot2d中的二维点,PList中储存二维点的坐标、序号及点边界标识,对PList中任意一点,若该点为边界点则点边界标识为1,否则为0,序号则表示该点在点表PList中的位置顺序;构造边表SList用于存储并管理构造的三角形的边,若构成边的两个顶点均为边界点,则称之为边界边,否则称为普通边,SList中储存已构建边的顶点在PList中的序号、边边界标识及其使用次数,当某一边被添加进三角网格后使用次数加1,边界边最大使用次数为一次,而普通边最大使用次数为两次,当一条边的使用次数达到最大使用次数时,就将该边从SList中删去;构建三角形表TList,用于存储构造的三角形的三个顶点的序号,TList初始为空,随着三角网格构建不断更新;
步骤6.3:从点表PList中任取一点Point1,遍历PList找出与Point1最临近的点Point2,连接这两点得到边s1并将之存入边表SList作为其初始值;
步骤6.4:从边表SList中选取一条边,从点表PList中找到符合Delaunay三角剖分准则的点,进而构造出三角形;若构造的三角形的顶点均为边界点,且存在一条边的长度大于
Figure FDA0000444814920000041
则判定该三角形无效,其中Gap为步骤2中分割最小包围盒使用正方形模板边长;否则就判定构造的三角形有效并将该它存入三角形表TList,更新点表PList和边表SList后将SList中达到最大使用次数的边删除;
步骤6.5:判断边表SList中边数量是否为零,若不是则跳转至步骤6.3继续构造三角形,否则跳至步骤6.6;
步骤6.6:二维空间内数据点Simp_Dot2d的三角网格化完成,根据步骤1中映射时得到的一一对应关系,三维简化点云Simp_PointCloud也得到相应的三角网格,三维散乱点云曲面重构完成。
CN201310717328.0A 2013-12-24 2013-12-24 一种带边界约束的散乱点云重构方法 Expired - Fee Related CN103679807B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310717328.0A CN103679807B (zh) 2013-12-24 2013-12-24 一种带边界约束的散乱点云重构方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310717328.0A CN103679807B (zh) 2013-12-24 2013-12-24 一种带边界约束的散乱点云重构方法

Publications (2)

Publication Number Publication Date
CN103679807A true CN103679807A (zh) 2014-03-26
CN103679807B CN103679807B (zh) 2016-08-24

Family

ID=50317248

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310717328.0A Expired - Fee Related CN103679807B (zh) 2013-12-24 2013-12-24 一种带边界约束的散乱点云重构方法

Country Status (1)

Country Link
CN (1) CN103679807B (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104183021A (zh) * 2014-07-10 2014-12-03 北京建筑大学 一种利用可移动空间网格精简点云数据的方法
CN104616349A (zh) * 2015-01-30 2015-05-13 天津大学 基于局部曲面变化因子的散乱点云数据精简处理方法
CN105809615A (zh) * 2016-03-10 2016-07-27 广州欧科信息技术股份有限公司 点云数据影像化方法
CN106504328A (zh) * 2016-10-27 2017-03-15 电子科技大学 一种基于稀疏点云曲面重构的复杂地质构造建模方法
CN106910216A (zh) * 2017-03-03 2017-06-30 广东工业大学 一种基于船体外板点云数据的网格曲面确定方法及装置
CN107481274A (zh) * 2017-08-11 2017-12-15 武汉理工大学 一种三维作物点云的鲁棒性重构方法
CN107818292A (zh) * 2016-09-14 2018-03-20 中国石油化工股份有限公司 一种基于背散射扫描电镜的矿物颗粒识别方法及系统
CN108460837A (zh) * 2018-03-01 2018-08-28 国家海洋局第海洋研究所 面向采样不足散乱点集的三角网格曲面重建方法
CN110322464A (zh) * 2019-06-30 2019-10-11 华中科技大学 一种基于三维点云的小曲率薄壁零件边界提取方法
WO2020147379A1 (zh) * 2019-01-15 2020-07-23 华为技术有限公司 点云滤波方法、装置及存储介质
CN111882658A (zh) * 2020-07-02 2020-11-03 电子科技大学 一种针对核电厂房内核设施的自动重构方法
CN111999741A (zh) * 2020-01-17 2020-11-27 青岛慧拓智能机器有限公司 路侧激光雷达目标检测方法及装置
CN113412505A (zh) * 2019-03-22 2021-09-17 华为技术有限公司 用于对通过探测和测距传感器获得的点云进行有序表示和特征提取的系统和方法
CN113920275A (zh) * 2021-09-30 2022-01-11 广州极飞科技股份有限公司 三角网格构建方法、装置、电子设备及可读存储介质
CN115690359A (zh) * 2022-10-27 2023-02-03 科大讯飞股份有限公司 一种点云处理方法、装置、电子设备及存储介质
CN117689832A (zh) * 2024-02-04 2024-03-12 腾讯科技(深圳)有限公司 交通标牌生成方法、装置、设备和存储介质
CN117974747A (zh) * 2024-04-01 2024-05-03 北京理工大学长三角研究院(嘉兴) 360度点云2d深度盘三角剖分构图方法、装置及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070024620A1 (en) * 2005-08-01 2007-02-01 Muller-Fischer Matthias H Method of generating surface defined by boundary of three-dimensional point cloud
CN1967596A (zh) * 2006-08-14 2007-05-23 东南大学 三维扫描系统中三维散乱点集的三角剖分构造方法
CN102944174A (zh) * 2012-11-28 2013-02-27 北京矿冶研究总院 一种点云数据的处理方法及系统
CN103310481A (zh) * 2013-05-20 2013-09-18 东南大学 一种基于模糊熵迭代的点云精简方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070024620A1 (en) * 2005-08-01 2007-02-01 Muller-Fischer Matthias H Method of generating surface defined by boundary of three-dimensional point cloud
CN1967596A (zh) * 2006-08-14 2007-05-23 东南大学 三维扫描系统中三维散乱点集的三角剖分构造方法
CN102944174A (zh) * 2012-11-28 2013-02-27 北京矿冶研究总院 一种点云数据的处理方法及系统
CN103310481A (zh) * 2013-05-20 2013-09-18 东南大学 一种基于模糊熵迭代的点云精简方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
何丽等: "基于栅格的点云数据的边界探测方法", 《测绘工程》 *
何丽等: "基于栅格的点云数据的边界探测方法", 《测绘工程》, vol. 22, no. 3, 30 June 2013 (2013-06-30) *
唐琦: "平面散乱点集的Delaunay三角剖分算法", 《东南大学学报(自然科学版)》 *
唐琦: "平面散乱点集的Delaunay三角剖分算法", 《东南大学学报(自然科学版)》, vol. 36, 31 July 2006 (2006-07-31) *

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104183021B (zh) * 2014-07-10 2017-03-15 北京建筑大学 一种利用可移动空间网格精简点云数据的方法
CN104183021A (zh) * 2014-07-10 2014-12-03 北京建筑大学 一种利用可移动空间网格精简点云数据的方法
CN104616349A (zh) * 2015-01-30 2015-05-13 天津大学 基于局部曲面变化因子的散乱点云数据精简处理方法
CN104616349B (zh) * 2015-01-30 2017-07-28 天津大学 基于局部曲面变化因子的散乱点云数据精简处理方法
CN105809615A (zh) * 2016-03-10 2016-07-27 广州欧科信息技术股份有限公司 点云数据影像化方法
CN107818292A (zh) * 2016-09-14 2018-03-20 中国石油化工股份有限公司 一种基于背散射扫描电镜的矿物颗粒识别方法及系统
CN107818292B (zh) * 2016-09-14 2021-04-09 中国石油化工股份有限公司 一种基于背散射扫描电镜的矿物颗粒识别方法及系统
CN106504328A (zh) * 2016-10-27 2017-03-15 电子科技大学 一种基于稀疏点云曲面重构的复杂地质构造建模方法
CN106910216B (zh) * 2017-03-03 2018-08-03 广东工业大学 一种基于船体外板点云数据的网格曲面确定方法及装置
CN106910216A (zh) * 2017-03-03 2017-06-30 广东工业大学 一种基于船体外板点云数据的网格曲面确定方法及装置
CN107481274A (zh) * 2017-08-11 2017-12-15 武汉理工大学 一种三维作物点云的鲁棒性重构方法
CN108460837A (zh) * 2018-03-01 2018-08-28 国家海洋局第海洋研究所 面向采样不足散乱点集的三角网格曲面重建方法
WO2020147379A1 (zh) * 2019-01-15 2020-07-23 华为技术有限公司 点云滤波方法、装置及存储介质
US11556745B2 (en) 2019-03-22 2023-01-17 Huawei Technologies Co., Ltd. System and method for ordered representation and feature extraction for point clouds obtained by detection and ranging sensor
CN113412505B (zh) * 2019-03-22 2022-09-09 华为技术有限公司 用于对通过探测和测距传感器获得的点云进行有序表示和特征提取的处理单元和方法
CN113412505A (zh) * 2019-03-22 2021-09-17 华为技术有限公司 用于对通过探测和测距传感器获得的点云进行有序表示和特征提取的系统和方法
CN110322464A (zh) * 2019-06-30 2019-10-11 华中科技大学 一种基于三维点云的小曲率薄壁零件边界提取方法
CN110322464B (zh) * 2019-06-30 2021-07-02 华中科技大学 一种基于三维点云的小曲率薄壁零件边界提取方法
CN111999741A (zh) * 2020-01-17 2020-11-27 青岛慧拓智能机器有限公司 路侧激光雷达目标检测方法及装置
CN111999741B (zh) * 2020-01-17 2023-03-14 青岛慧拓智能机器有限公司 路侧激光雷达目标检测方法及装置
CN111882658A (zh) * 2020-07-02 2020-11-03 电子科技大学 一种针对核电厂房内核设施的自动重构方法
CN113920275A (zh) * 2021-09-30 2022-01-11 广州极飞科技股份有限公司 三角网格构建方法、装置、电子设备及可读存储介质
CN115690359A (zh) * 2022-10-27 2023-02-03 科大讯飞股份有限公司 一种点云处理方法、装置、电子设备及存储介质
CN115690359B (zh) * 2022-10-27 2023-12-15 科大讯飞股份有限公司 一种点云处理方法、装置、电子设备及存储介质
CN117689832A (zh) * 2024-02-04 2024-03-12 腾讯科技(深圳)有限公司 交通标牌生成方法、装置、设备和存储介质
CN117689832B (zh) * 2024-02-04 2024-05-17 腾讯科技(深圳)有限公司 交通标牌生成方法、装置、设备和存储介质
CN117974747A (zh) * 2024-04-01 2024-05-03 北京理工大学长三角研究院(嘉兴) 360度点云2d深度盘三角剖分构图方法、装置及系统
CN117974747B (zh) * 2024-04-01 2024-07-09 北京理工大学长三角研究院(嘉兴) 360度点云2d深度盘三角剖分构图方法、装置及系统

Also Published As

Publication number Publication date
CN103679807B (zh) 2016-08-24

Similar Documents

Publication Publication Date Title
CN103679807A (zh) 一种带边界约束的散乱点云重构方法
CN107025685B (zh) 拓扑感知下的机载建筑屋顶点云建模方法
Gao et al. Feature suppression based CAD mesh model simplification
CN107767453B (zh) 一种基于规则约束的建筑物lidar点云重构优化方法
CN103871102B (zh) 一种基于高程点和道路轮廓面的道路三维精细建模方法
CN100561523C (zh) 一种三维模型网格重建方法
CN104361632B (zh) 一种基于Hermite径向基函数的三角网格补洞方法
CA2846327C (en) Systems and methods for generating a large scale polygonal mesh
CN102509339B (zh) 一种带纹理约束的三维模型顶点聚类简化方法
CN103701466A (zh) 基于特征保留的散乱点云压缩算法
CN105354883A (zh) 基于点云的3ds Max快速精细三维建模方法及系统
CN105022865A (zh) 一种基于stl模型布尔运算的飞机油箱内表面模型提取方法
CN104966317A (zh) 一种基于矿体轮廓线的三维自动建模方法
CN106910216A (zh) 一种基于船体外板点云数据的网格曲面确定方法及装置
CN108986024A (zh) 一种基于网格的激光点云规则排列处理方法
CN115861571B (zh) 语义感知的三角网模型建筑物实体重建方法
CN102938165B (zh) 基于型面特征逼近的产品stl模型光顺方法
CN112819108B (zh) 一种多源异构模型的切片融合方法、系统及存储介质
Zhang et al. Research and implementation from point cloud to 3D model
CN117593485B (zh) 基于豪斯多夫距离感知的三维模型简化方法及系统
Guo et al. A 3D terrain meshing method based on discrete point cloud
Shaowen et al. Algorithm of 3D reconstruction based on point cloud segmentation denoising
Dong et al. A Quadtree Index Scheduling and Crack Elimination Algorithm of Massive City Models
Chi Design and implementation of image relief based on computer 3D modeling
Yu et al. A Feature Line Extraction Method for Building Roof Point Clouds Considering the Grid Center of Gravity Distribution

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160824