System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于改进四面体剖分法的体积计算方法技术_技高网

一种基于改进四面体剖分法的体积计算方法技术

技术编号:41737830 阅读:21 留言:0更新日期:2024-06-19 12:56
本发明专利技术提供一种基于改进四面体剖分法的体积计算方法,针对光栅投影测量过程中物体自遮挡或者本身缺陷等各种原因会导致点云可能会出现孔洞,孔洞的存在会使点云不能反映出真实物体的信息,给点云体积计算结果带来误差,本发明专利技术提出一种改进的四面体剖分法的体积计算方法。本发明专利技术在点云三角网格化的基础上,进行孔洞区域检测,对孔洞填充并进行了填充点合法性的检查,最后采用四面体剖分体积计算公式计算体积参数。实验结果表明,该方法可以保证对物体的体积计算误差可达0.37,有效地提高的数据测量的准确度。

【技术实现步骤摘要】

本专利技术涉及体积计算领域,具体为一种基于改进四面体剖分法的体积计算方法


技术介绍

1、当前在光栅投影测量中获取的最终整个物体表面点云一般以点云的方式呈现,对于点云的体积计算的研究,其主要方法有切片法、投影法、拟蒙特卡罗法、四面体剖分法等等。其中切片法适合计算形状简单,且要求较高精度的模型体积;投影法适合计算体积较大且精度要求较低的模型体积;拟蒙特卡罗法是对规则形状物品,或给定物体大致形状下的物品体积的测量,对任意形状物品不适用;四面体剖分体积算法则可实现对任意形状物品的体积计算,计算简单,结果精确,适合计算机计算。

2、剖分法的基本原理是将三维网格模型剖分为有一定拓扑结构的若干四面体单元,通过计算所有四面体体积得到模型体积。在实际应用中,胡晓彤等人提出了基于delaunay三角剖分的体积计算方法,通过构造delaunay准则的四面体网格,实现了不附带任何拓扑信息的体积计算方法。朱若岭等人则是将基于四面体的体积计算方法应用于计算不规则物体体积,先将获取的物体表面点云数据经过网格化重建后得到物体的三角网格模型,再引入有向四面体剖分法,求取物体体积。范山等人应用行列式及矢量理论推导出了三维空间中封闭的任意多面体体积的行列式计算公式,计算简单,结果精确,尤其利于计算机计算,但这种方法适用于表面较为规则的物体。

3、光栅体积测量中容易出现孔洞,进而影响体积测量结果准确性的问题,从实际应用出发,本专利技术从消除孔洞的角度对体积计算方法加以完善,给出了一种改进的四面体剖分法的点云体积计算方法。本专利技术首先对点云网格化,接着给出了孔洞检测的方法;其次对孔洞填充的算法进行阐述,内容包括填充点位置的计算、填充点位置合法性检查;接着给出了基于四面体的体积计算公式,最后得到体积结果。


技术实现思路

1、(一)解决的技术问题

2、针对现有技术的不足,本专利技术提供了一种基于改进四面体剖分法的体积计算方法,解决了上述
技术介绍
中提出的问题。

3、(二)技术方案

4、为实现以上目的,本专利技术通过以下技术方案予以实现:一种基于改进四面体剖分法的体积计算方法,包括:

5、s101、点云delaunay三角网格化,利用贪婪投影三角化算法(greedy projectiontriangulation)空间点云进行三角网格化处理,得到三角网格模型;

6、s102、三角网格孔洞检测,所述三角网格模型中所有无序边界边组成集合e,对所述集合e中的孔洞进行分类和排序,得到完整边界,对于单个孔洞边界的数据结构使用链表组织,对于多个孔洞边界的数据结构使用链表的链表;

7、s103、进行网格孔洞填充,填充方法如下,

8、s1031、读取任意孔洞的边界边ei,

9、s1032、根据所述边界边ei周围的三角形估计边界点法矢量nv,通过连接点pi+1和点pi-1补全所述边界边ei边界点pi周围缺失的三角形δpipi+1pi-1,所述边界点pi周围三角形法矢量的面积加权值即为所述边界点pi的法矢量nv,计算所述边界点pi法矢量nv的公式如下,

10、

11、其中,k表示所述边界点pi周围三角形的数量,ni表示所述边界点pi一环邻域的三角面片法矢量ni(i=1,2,...,k),si则表示所述三角面片的面积si(i=1,2,...,k),

12、s1033、根据所述法矢量nv计算边界夹角,每两个相邻的边界边之间存在内角β,设pi、pi+1和pi-1为孔洞多边形中相邻的三个边界点,则夹角α的值由顶点法矢量和矢量夹角决定,其中,

13、

14、孔洞边界夹角的计算方法如下,

15、

16、

17、

18、s1034、对最小边界夹角所在边界计算填充点位置,对计算出的边界角进行排序并找出最小边界角θi,最小边界角θi总是小于180度,通过以下方法计算出填充点位置,

19、当时,则直接连接pi-1pi+1,

20、当时,在∠pi-1pipi+1的平分线上产生新的点pnew,且|pipnew|=(|pi-1pi|+|pipi+1|)/2,

21、当时,位于∠pi-1pipi+1的三等分线上产生新的点pnew1和pnew2,且|pipnew1|=|pipnew2|=|pi-1pi|+|pipi+1|/2,

22、s1035、判断填充点位置合法性,

23、当新增填充点pnew和最接近的边界点pj的距离di小于avgdis时,使用边界点pj替代填充点pnew,则原孔洞多边形(p1…pi-1pipi+1…pj-1pjpj+1…pm)会形成两个新的多边形(pi-1pjpj+1…pj-2)和(p1…pj…pi+1…pm),具体做法如下,

24、计算填充点pnew和孔洞多边形中每个边界点pi的距离di,其中的最小值为dmin,及其对应点为p',如果dmin<avgdis,则填充点pnew为非法点,使用对应点p'取代原来的填充点pnew形成新的三角形填充孔洞,否则填充点为合法点,其中avgdis为设定值,所述设定值由下列公式计算所得,

25、

26、其中n代表边界点的个数,

27、当更新后的孔洞便捷多边形产生自交现象,将空间中的检测问题转换至局部平面坐标系上进行,对任意一个新增的填充点和相应的边界边求解边界边在原孔洞多边形特征面上的投影线段,之后计算投影线段是否和特征多边形相交,若相交则新增填充点位置不合法,删除新增填充点,若不相交则新增填充点合法,

28、s1036、生成三角形后更新边界边,并判断孔洞边界边集合是否为空,若为空则完成一个孔洞的填充跳出,否则转到s1031;

29、s104、基于四面体的体积计算方式,假设所述三角网格模型表面有n个三角形面片组成,则所述三角网络模型的体积计算公式如下,

30、

31、其中,所述三角网格模型外侧面第i个三角形顶点为a(x1i,y1i,z1i),b(x2i,y2i,z2i)和c(x3i,y3i,z3i),

32、若顶点顺序按曲面外侧逆时针方向排列,则以远点为顶点的四面体体积用行列式表示为,

33、

34、若在oa方向上的单位向量为n,δabc按曲面外侧逆时针方向排列时的单位向量为nabc,当(n,nabc)>0,四面体体积为正,否则为负。

35、优选的,所述s101具体包括:

36、s1011、将点邻域内的三维点云通过所述点的法线投影至二维平面;

37、s1012、对投影到平面上的点云采用基于delaunay的空间区域增长算法在平面区域内三角化处理;

38、s1013、依据投影平面上的点云连接关系对应到空间三维点之间的拓扑关系,获得所述三角网格模型。

39、优选的,所述s102具体包括:<本文档来自技高网...

【技术保护点】

1.一种基于改进四面体剖分法的体积计算方法,其特征在于,包括:

2.根据权利要求1所述的一种基于改进四面体剖分法的体积计算方法,其特征在于,所述S101具体包括:

3.根据权利要求1所述的一种基于改进四面体剖分法的体积计算方法,其特征在于,所述S102具体包括:

【技术特征摘要】

1.一种基于改进四面体剖分法的体积计算方法,其特征在于,包括:

2.根据权利要求1所述的一种基于改进四面体剖分法的体积计算方法,其特...

【专利技术属性】
技术研发人员:蔡青青傅彬王健刘凯顾春霞杨芳圆邵志豪
申请(专利权)人:绍兴职业技术学院
类型:发明
国别省市:

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

1