CN103679807A - 一种带边界约束的散乱点云重构方法 - Google Patents
一种带边界约束的散乱点云重构方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000013507 mapping Methods 0.000 claims abstract description 7
- 239000006185 dispersion Substances 0.000 claims description 43
- 239000003550 marker Substances 0.000 claims description 38
- 238000000151 deposition Methods 0.000 claims description 15
- 238000010790 dilution Methods 0.000 claims description 7
- 239000012895 dilution Substances 0.000 claims description 7
- FNMKZDDKPDBYJM-UHFFFAOYSA-N 3-(1,3-benzodioxol-5-yl)-7-(3-methylbut-2-enoxy)chromen-4-one Chemical compound C1=C2OCOC2=CC(C2=COC=3C(C2=O)=CC=C(C=3)OCC=C(C)C)=C1 FNMKZDDKPDBYJM-UHFFFAOYSA-N 0.000 claims description 3
- 102100037060 Forkhead box protein D3 Human genes 0.000 claims description 3
- 101001029308 Homo sapiens Forkhead box protein D3 Proteins 0.000 claims description 3
- 230000015572 biosynthetic process Effects 0.000 claims description 3
- 238000010276 construction Methods 0.000 claims description 3
- 238000005520 cutting process Methods 0.000 claims description 3
- 230000009191 jumping Effects 0.000 claims description 3
- 238000003860 storage Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000011960 computer-aided design Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
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三角剖分准则的点,进而构造出三角形;若构造的三角形的顶点均为边界点,且存在一条边的长度大于则判定该三角形无效,其中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三角剖分后任意的三角形的外接圆内不包含其他数据点;若构造的三角形的顶点均为边界点,且存在一条边的长度大于则判定该三角形无效,其中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三角剖分准则的点,进而构造出三角形;若构造的三角形的顶点均为边界点,且存在一条边的长度大于则判定该三角形无效,其中Gap为步骤2中分割最小包围盒使用正方形模板边长;否则就判定构造的三角形有效并将该它存入三角形表TList,更新点表PList和边表SList后将SList中达到最大使用次数的边删除;
步骤6.5:判断边表SList中边数量是否为零,若不是则跳转至步骤6.3继续构造三角形,否则跳至步骤6.6;
步骤6.6:二维空间内数据点Simp_Dot2d的三角网格化完成,根据步骤1中映射时得到的一一对应关系,三维简化点云Simp_PointCloud也得到相应的三角网格,三维散乱点云曲面重构完成。
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)
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)
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 | 东南大学 | 一种基于模糊熵迭代的点云精简方法 |
-
2013
- 2013-12-24 CN CN201310717328.0A patent/CN103679807B/zh not_active Expired - Fee Related
Patent Citations (4)
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)
Title |
---|
何丽等: "基于栅格的点云数据的边界探测方法", 《测绘工程》 * |
何丽等: "基于栅格的点云数据的边界探测方法", 《测绘工程》, vol. 22, no. 3, 30 June 2013 (2013-06-30) * |
唐琦: "平面散乱点集的Delaunay三角剖分算法", 《东南大学学报(自然科学版)》 * |
唐琦: "平面散乱点集的Delaunay三角剖分算法", 《东南大学学报(自然科学版)》, vol. 36, 31 July 2006 (2006-07-31) * |
Cited By (28)
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 |