【技术实现步骤摘要】
基于重心Voronoi剖分的点云均一化方法
本专利技术涉及三维点云,尤其是涉及基于重心Voronoi剖分的点云均一化方法。
技术介绍
点云是大量点的集合,随着扫描技术的日益发展,我们能利用扫描仪获取不规则物体的点云表达从而重构出该物体的网格信息,而后实现3D图像显示乃至3D打印等。随着技术的发展,相关科技的成熟,Kinect、Sense等消费级扫描仪出现在了人们面前,人们可以在家就实现对物体的扫描,从而将物体转化为计算机上的模型。但是鉴于消费级的价格要求,设备的精度相对较低,扫描出来的点云存在分布过于密集、结构缺失、噪音等缺点。扫描仪程序一般会不会对扫描出的点云进行更多更好地优化,并且用户通常没有简单、快速和有效的办法对扫描点云进行处理,往往是扫描即所得。但是点云的分布情况直接影响了模型的好坏,最终影响了整个渲染显示的效果,所以对扫描信息的二次处理是十分必要和有意义的。网格重构领域的重心Voronoi剖分方法,是将一个输入的初始网格进行重构,优化点的位置以得到一个性质更好的网格。但是该方法是建立在网格基础之上的一种方法,不适用于以点云为基础的数据。
技术实现思路
本专 ...
【技术保护点】
基于重心Voronoi剖分的点云均一化方法,其特征在于包括以下步骤:1)对所有的输入点建立kd‑tree,再查找k近邻,所述查找k近邻是给定一个坐标,查找与该坐标最接近的k个点的坐标;2)对点云数据进行权值的赋值工作,具体方法如下:首先进行5次拉普拉斯光顺,每一次普拉斯光顺的具体办法是:对每一个输入点,由步骤1)中提前建立的kd‑tree求出距离kd‑tree最近的10个输入点,然后将该点的曲率与这10个输入点的曲率求平均值,将该平均值作为该输入点的新权重;其次进行幂处理,即把每个输入点的权重再做一个实数的幂运算;3)用户指定一个所需要的输出点的数量n,然后根据权重在输入点 ...
【技术特征摘要】
1.基于重心Voronoi剖分的点云均一化方法,其特征在于包括以下步骤:1)对所有的输入点建立kd-tree,再查找k近邻,所述查找k近邻是给定一个坐标,查找与该坐标最接近的k个点的坐标;2)对点云数据进行权值的赋值工作,具体方法如下:首先进行5次拉普拉斯光顺,每一次普拉斯光顺的具体办法是:对每一个输入点,由步骤1)中提前建立的kd-tree求出距离kd-tree最近的10个输入点,然后将该点的曲率与这10个输入点的曲率求平均值,将该平均值作为该输入点的新权重;其次进行幂处理,即把每个输入点的权重再做一个实数的幂运算;3)用户指定一个所需要的输出点的数量n,然后根据权重在输入点集上进行点的采样,得到n个采样点;4)对采样点中的每一个点利用步骤1)中建立的kd-tree,查找该采样点在输入点中的k近邻,利用k近邻和该采样点计算最小二乘平面S,将该采样点投影到平面S上得到一个投影q*,以这个投影q*为中心,在平面S上生成一个正六边形的三角网格M,中心q*到正六边形的6个顶点的距离称为半径r,所述半径r的计算公式为:r=2(VB-Box/n)1/3其中,VB-Box为输入点云的包围盒体积,n为输出点个数,该正六边形网格被称作估计平面,那么每一个采样点对应一个正六边形的三角网格,记一个点-网格对为<q*,M>;5)如果点云模型没有边界,那么跳过此步骤;如果点云模型有边界,那么利用PointCloudLibrary这个开源的代码库将边界提取出来,该边界称为外边界;6)利用步骤4)中求出的所有点-网格对<q*,M>及步骤5)中提取的外边界计算Voronoi图,对于每一个点q*都将拥有一个Voronoi单元,Voronoi单元中含有其它点的网格,在计算Voronoi图时不需要考虑其它点的网格,仅需要考虑自己的网格,外边界只用于Voronoi单元的计算,其Voronoi单元中不需要计算多边形网格;7)计算出Voronoi图后,对于每一个Voronoi单元中的多边形网格进行三角化操作,三角化操作是将网格中的多边形分解成多个三角形,三角化的目的在于计算不规则多边形的重心;8)对每一个Voronoi单元,计算Voronoi单元的重心P,然后以该重心P作为采样点的新位置,重心P的计算公式如下:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。